I’m a developer who has taken the step into management. As such, I know about code quality, the challenges of testability, and what it takes to get continuous delivery rolling. I’m also comfortable working in a management team, recruiting, and developing co-workers and teams.
My primary area of expertise in software development is software quality and neighboring areas such as devops and architecture. When it comes to soft skills, I’d pick recruitment and interviewing as my top skills.
I’m often a driving force in a team; be it a development or management team. I point at the elephant in the room and declare that we can do better. I constantly seek new ways, approaches, and tools to make work more effective and enjoyable. I also operate with a longer time horizon and not just in the now. I used to be the developer who made a refactoring that would enable something important in 6-12 months. As a manager, I’ve kept this trait, and it has served me well so far.
Versatility is my superpower. Driven by my curiosity, I’ve shouldered several different roles throughout my 20 years in the industry, and I’m comfortable in all of them; preferably in a mix.
Manager and Scrum Master
My primary management experience comes from running an IT department as CIO/CTO for 2½ years. I’ve also been a Scrum Master from time to time.
In a leadership role, I strive to maintain integrity above all. The effect is that I come out as authentic, although I’m careful with such labels, because they can easily be turned into buzzwords. Aa a manager, I see owning the vision for the group or department as my primary task: Who are we? What are we doing? Where should we be in the future? And I spend a lot of my time talking to my staff or driving the ongoing recruitment processes.
As a developer, I’m the one who concentrates on the team’s ability to deliver in the long run. Many people get stressed by, often arbitrary, deadlines, and yes, they may be important, but there’s also a day after the deadline. Thus, I’ve often been the one to introduce continuous delivery, test automation, dockerization, and alike to the team. Given my experience as a trainer, I gladly put on the mentoring hat.
Operations and Devops person
My very first job required everybody to understand Unix and how to deploy things on such machines and how to maintain them. I’ve also explicitly had an operations role, and since I like tinkering with configuration, I’ve often been the one to do it when I was on a development team. I also try to stay relatively up to date in the field of computer and network security.
Understanding the hardware, operating system, and the network stack is something I think every developer should do. Personally, my stack starts at the virtual machine level or the bare metal. Deployment and operations, in my mind, are too important to be left to a separate team, and it should stay in the team, and I’m happy to facilitate that, or get my hands dirty. Setting up a team’s first CD pipeline is very rewarding.
I’m the author of Developer Testing – Building Quality into Software. I’ve spent quite a few years doing research for that book while working with developer aspects of testing on a daily basis. The book is meant to bridge the gap between development and testing and to teach developers the drivers of testability and fundamental testing techniques.
If you have a problem with defects or you don’t know what and how much to test, my book may just be what you need.
The book has a companion site called www.developertesting.rocks.
Public Speaker and Trainer
Throughout the years I’ve spoken at several conferences and user group meetings and meetups, including Jfokus, Øredev, Agile Testing Days, XP Days, SAST, Javaforum, and Swenug.
I love sharing what I’ve learned with colleagues and peers. I’m especially passionate about sharing various insights about testing, code quality, and good engineering practices, but being a student of psychology and sociology, I’ve touched on topics related to leadership too. I’ve also run numerous trainings in topics like:
- Developer Testing
- Agile Testing
- Test-driven development
- Web application testing with Selenium WebDriver
- Behavior-driven development
I’m still available to do them.