Building incredible software for your customers starts with having a good feeling.
Motivation is easy to find when a system is new and engineers are excited to work on it. Who doesn’t love a greenfield project?
Things get more complicated once a system is live and requires support. Decisions made during the creation of a system often work against how we want to support it – and these decisions can be seen as a type of technical debt.
As the debt increases, the load on the supporting teams increases too.
How we respond to that increased load on our teams speaks of our organisational culture as well as our organisational setup.
To improve a culture, you don’t just send everyone on a training course, or run a survey, or give everyone a pay rise.
Yes, some of those things can help temporarily but what you really need to ask yourself is – how do we organise our software and our teams to minimise our support burden and maximise value for our customer?
By examining the systems and processes we have in place and removing impediments to fast flow, as well as reorganising for effectiveness, we can bring that good feeling back to a software engineering effort.
I use the principles of team organisation and alignment from many sources as a model of how modern software development should be done.