Sprint to Survive
Clive Beavis
Ex-Meta and 40 years of Software Development Management focused on Engineering Efficiency, now hands-on with compilers again.
Until successful? {
? Monday? - feedback from sales
Tuesday ? - re-prioritize
Wednesday - develop the code
Thursday ?- develop the code
Friday? ? - build the next iteration of product
}
These product iterations were built on 3-? inch floppy disks and shipped to sales and customers on a weekly basis.
35 years ago building enterprise products for Fortune 500 companies our start up company practiced this process.? Without knowing it we were doing 1 week sprints. That start-up is now the second largest software company in Europe and famous worldwide. This grounding in an iterative process has stayed with me throughout my career.?
Cool new names - same fundamentals
Iterative development now has many cool names in the software industry.??
Agile, Kanban, Extreme! etc.? Cool names with ardent supporters for each.? Though in my experience most teams are not religious in following the strict rules of any and implement some kind of iterative development.? Iterative development is my preferred name for the process. In 35+ years of software development I have always used some kind of iterative development. Though it has never been exactly the same in any instance. It has to be adjusted for factors such as age of product, type of product, team size, team motivations etc.
Why does it work? There are several fundamentals to the? iterative processes.
Communication
????90% of software engineers are INTJs.? Introverts tend to communicate less than others. We have all seen the three rope swing analogy of software development.? I have lost count of how many times I have heard “this is not what I was expecting” from customers, product managers and even other engineers.
Flexibility, or is it agility ??
??The expectation should be that plans are going to change.? If you're still on plan after 6 months you might want to check your plan because the world has changed around you..
Goals
??Short term goals that, ideally, deliver some kind of product value. The magic of iterations is they provide small goals that are set by the engineers themselves.? Rather than some lofty goal set by a manager who is not close enough to understand the reality.? They also deliver some amount of concrete product value, even if it is just insight into what doesn’t work.
“We don’t do sprints”
I worked with an engineering team once that was adamant that they did not do sprints. They had a bad name for some reason and I was not even allowed to use the word.? So I implemented monthly demos where we also set the goal for the following month.
In this scenario were two main teams with a large pond in between, the Atlantic.? The two teams were just not aligned or on the same page about core aspects of the project or strategy and had not been for months, possibly years before I joined the org. ? The very first monthly demo was like magic as it cut through a huge amount of miss-communication. With one team finally understanding what the other team was trying to achieve.
Show and tell not demos
If I could only pick one aspect of iterative development it would be “end of sprint demos”
Though I try to avoid the word demo as it set the wrong expectation with the team. Everyone should show what they did and tell us about it.? No Powerpoints or prior prep needed.? It does not have to be polished or complete. It's better if it is not. Maybe it's the unit tests you built this week.?
Side note the worst mistake you, in any position, can make is to assume your manager knows what you are doing in any level of detail at all. They don’t they are largely in the dark and too busy “keeping plates spinning” elsewhere. I should know I was a manager for more years than I care to remember and went out of my way to understand my engineers and their work.? I never appreciated the details without "show and tell". And I also fell foul of not keeping my manager informed on my efforts.? "Show and tell" solves this problem for engineers.
领英推荐
Big bang theory
“Let's just rewrite this from the ground up now we understand things better”. ? I have watched many big projects fail by being too ambitious and not iterative.
Rewrites are a classic.?
Some recent examples I have observed from other teams include
In contrast, one very successful company that I worked for set expectations that everyone would provide some impact on the business on a 6 monthly basis. They were rewarded on impact.? This led to projects, even large ones, to be broken down into smaller iterations and streams that would each contribute independently to the business.? This way there was continuous upside to the business even if some aspects of the project did not come to fruition.
Notice that with this approach management is much less likely to simply abandon a project after multiple man years of development. Which is not untypical in a big bang scenario where all that leadership can see are the costs.
Shoot for the moon
You can’t iterate in a vacuum, you have to have a goal to aim at. My analogy is the 1960s moon landing.? “Put a man on the moon and bring him back safely before the end of the decade”
That was the goal.? Very clear and measurable. This was broken down early into a series of stages e.g..
I know this is not a complete list though what it shows are shorter term goals that have to be reached before moving on to the next.? Note this is not the same as waterfall development
Within each goal there are multiple substreams
Each of which iterated towards their own goals.
If it can work for the moon landing it can work for your project too.? Plan your destination and broadly the steps to get there.? Now iterate.? Don’t expect a straight line more a zig zag towards the goal.? To torture my moon analogy further by the time you have got off the ground the moon will have moved.? Unlike the moon your goal is likely less predictable so you need to be agile.
Iterations for Product Managers
When working with product managers I have always looked for ways to push back on complex ideas in favor of a series of iterations.
?An example from my web days was a PM who wanted us to build a feature for higher paying customers.? They would follow a link from an existing page to a series of new pages that were backed with specialized data.? This data required DB design and approaches for batch updates and handling stale data. It was 6 month work for a couple of engineers minimum.
We encouraged the PM to first test out the link.? Would visitors to the first page actually follow the link?? If not, the rest was academic, and an expensive waste of engineering effort.
Conclusion
Don’t do one large project, find multiple short iterations and learn something at every step.
?To use a sailing analogy, it is safer to keep the shoreline insight or you can quickly lose your way.