There seems to be a de-facto mentality throughout the industry within organizations that lack an established strategy to achieve and maintain quality. I call it quality by being careful and it is the simplistic comprehension that you can achieve quality and reduce defects simply by being careful enough. My concern is not that people use it as a principle, but rather that people use it as a base for the assumptions that guide their choice of process strategies. Although there is clear value in being mindful about your code, I will argue that this mentality in its pure form is incomplete, doesn’t scale, and can be downright counterproductive in the context of legacy systems or projects where inferior test coverage and lacking requirements is the norm.
Inspired by Stefan Sagmesiter, Rick Hickey and Richard Hamming, I decided to try a software sabbatical and devote one full month of unpaid leave to simply ponder on the wider puzzles of our software industry. Even though the practical results were meager, it gave me an opportunity to concretize some of my visions and I learned a lot about my own needs for creativity. This article will be a summary of this way too short journey, along with some thoughts on the process of innovation itself and what attitude we should have towards it.
Starting today, I’m taking one month of unpaid leave to do some studying, experimentation and personal research. The plan is to take a step back from the constraints of corporate software development and dedicate this one month to concentrate fully on the problems I’m passionate about. It will be a lifestyle experiment as well as an opportunity to learn new things.
Contracted as a Technical Tester to help them test, verify and evaluate public services and infrastructure related to Swedish eHealth. Responsibilites include test automation, development and maintenance of internal testing tools and frameworks, and solving problems related to quality assurance.
Contracted to help them develop, automate and maintain test frameworks for the evaluation and certification of 3rd party provided hardware, to be used in a Software-Defined Infrastructure product in the context of large-scale data centers. I also focused on infrastructure and the team's CI solutions.
Comordo TechnologiesSoftware Developer
Feb 2017 - Feb 2019
Contracted on a variable basis in a startup environment to help them with product development and setting up internal routines for revision control, testing and continuous deployment with focus on stability and scalability. Comordo was specialized in the analytics and processing of large data sets for development and tuning of their recommendation systems, and I developed the infrastructure for their computing pipeline.
Contracted to help them implement and evaluate a proof-of-concept feature in a larger system as part of a feasibility study. I also worked as an advisor in regards of build systems and revision control, and helped them with setup and education of new tools and routines.
Contracted to help them improve their software development processes in terms of revision control, documentation and automation with focus on long-term cost reduction and quality sustainability. Most of the development has been in the context of HMI frameworks.
Contracted as an additional resource in the final stages of a project to help them port legacy HMI system to a new platform. Key factor for success was to dive into legacy code and get productive fast.
As a developer on the Opera Mini team, I have thorough experience developing mobile software integrated on a multitude of platforms with high constraints on footprint, performance and usability. I was mostly developing frameworks for UI and testing, and as part of a very international environment where personal initiative and commitment was required and expected, I have learned from and been surrounded by extremely talented people from most parts of the world.
Software development consultant for various customers, mostly related to IMS and Connected Home. Assignments included software development and occasionally preparing educational material, but most work was related to managing build systems and porting projects to new hardware platforms.
My responsibilities included tutoring, supervising and grading student papers and conducting occasional lectures and group exercises. Courses covered Java programming, systems programming in C, operating systems, communication and network.