We are doing software development for about 60 years now. We have come a long way since. Or did we?
One aspect that we are not able to reach the same page for is how to deliver software as a team and at scale.
We use words like Agile, DevOps, Scrum etc. but when we start asking people what they mean to say with the words, we might get 10 different answers from 10 different people.
We know that we have ideas that we want to materialize and deliver to our customers, but ...
- Who are "We"?
- How do "we" work together?
- What is A, B, C and D?
- What is the time between A and B and C and D?
- Is that the whole alphabet?
- What are those question marks in between?
There are many moving parts, the parts are changing, parts are added and removed and the answer to "what is currently relevant" is changing constantly. All that is seemingly making our equation for success pretty complicated, blurry and unknown.
Is there an equation or are there only different approaches and recommendations at different points in time?
As you guessed it, there is no straight forward answer or solution to the problem. Even though we have improved over time, I think there is still a lot more progress to be made.
There is one thing that we know does not work. It's trying to predict the future, trying to plan for everything in advance and then release our product in a year. This is a great recipe for grandiose failure.
If you want to get some ideas about the different approaches, experiments and research findings regarding the problem of software delivery, I would recommend following books:
You will find great ideas and recommendations in these books. Unfortunately, you will probably have more questions than answers in the end.
I am also keeping a list of factors influencing success of software organizations that might be interesting.
There is no silver bullet but we, as an industry, gathered a great amount of experience and success stories. We should leverage that collective experience, pick and try the parts that might help us at our stage of the journey. I would also remind us again that there is so much more progress to be made. We should stay aware of the problem and continually improve, bit by bit.