Sunday, January 02, 2022

Experience - where is it? [take 1]

I have been thinking: where is my cumulative knowledge from ~26 years in my field stored? 

I am less capable of writing code into our current code base then any of the developers. I am also less capable with managing our infrastructure then anyone on the devops team. I have never been good at UI work. Done project management on a need to do basis: I know how to conduct meetings, have some proficiency in managing Scrum teams, incl. the backlog, daily-s, stand-ups and retro-s. But not strong in budgeting and planning. Basically, for any one capability I can probably point to someone that is better at it than me. But still I have always been busy reading up on the aspects that I have had to tackle at work: people, process, technology. So where has this knowledge gone?

I guess the answer is that I have gradually gained increased scope (w.r.t. the software life cycle), better sense for what works when (and pitfalls), and more options when solving a given problem. I hope.


  

Optimizing in software development

What is the most efficient way of reaching business goals? We have three major parameters to play with: technology, processes and people. Of course it is best to be proficient on optimizing for all three at the same time, but it can be tricky to do. A simpler optimization problem is keeping two parameters fixed and optimize for the 3rd, but which one should you to start with?

The intention here is to be best prepared to solve any business goal, there are three parameters we could start with (keeping the others fixed).

  1. Hire the best people and create powerful teams. Make sure that they have a clear goal and the fewest obstacles possible to reach them (servant leadership). 
  2. Setup best practice processes and infrastructure. Focus on lean principles to identify process improvements.
  3. Use the best possible technical design and keep the technology continuously up to date.

Probably depends on where you are presently at with these parameters where you start. But of the three it is probably most costly to get 3) back into the optimal zone, so I would recommend optimizing for that first.

It can be helpful to look at this is as a regulation problem, where you regulate for the most important parameter first, then the others. This adds a constraint as to how far you go in optimizing for the first parameter before you go onto optimizing for the next one.