As best as we can, we cannot predict our future or the behavior of our end-users. Software has never been about predicting the future. Capital-A Agile, no estimates, estimates, SAFe are more about office management than quality software.
Estimates are like a weather forecast. They help you—leaders—commit to the most likely weather. This also makes them foolish risk management.
Agility is how little you can commit to to still make progress without leaving your area of certainty. Teams design and analyse, then execute until design is proven wrong.
Probably the best elevator pitch of what Agile offers I’ve come across lately.- From our reader, Mart.
Because the requirements are invariably wrong! The opposite of the weather forecast.
This is where a stuck team struggles
Boldly or naïvely claiming the plan is correct, complete and accurate with an ego-attachment is the ticket to bankruptcy. The first falling domino in a series of cutting corners and creating incentives to not follow modern continuous delivery or even extreme programming practices—like Test-driven development.
Such environments when left unchecked create cost-centre engineering cultures.
Software Teams are not factories. They do not build thousand items of the same things to spec. Software Teams are mapping an endless pool of uncertainty and undesirable outcomes. The mission is to Continuously minimise the amount of waste generated in order to find the next valuable piece. Much like gold mining.
Be The Leader — Make the difficult decisions
Learn to say No.
Learn to say No to features that have no evidence of market demand.
Learn to say No without inviting being bullied or pressured to give a Yes.
Learn to say No and continue the conversation to a non-binary question.
The Modern Fundamentals
Integration Pipelines
The cloud era has made this simple. All modern version control systems integrate into powerful CI, CD or CI/CD tooling. Leverage them.
Feature Flags
Separate Deploys from Releases Branch by abstraction is a good starting point.
Developer Tooling for standard operating procedures
Have developers pair on any manual procedure that is painful. If it’s painful, do it more often. Write down what’s happening and try to create a tool for the most mundane buttons and clicks. Automate it once the script is reliable without human intervention.
If you don’t know where to start, ask modern AI tools to give you pointers.
Encourage Early Discovery
Help your team come up with questions that facilitate quick releases.
Collaborate with Engineers
The ideal review process is being with the dev live during the writing process. Not all the time — just during the important parts. The messy parts. If you have long-aged PRs, minimize them and do pairing instead. The next person who needs to fix a bug will spend more time than the current person building. It’s just that this person now has the illusion of being in a hurry.
Educate Refactoring
No one builds software well the first time. The maturity of high-quality software is the byproduct of refactoring, not building.Your code will change. Change is a factor of two skills: knowing what to change it to and knowing how to change it well. Refactoring covers both. Touch-up, re-architecting and tidying up during refactoring is 80/20 tool you’ve been looking for that facilitate high-level, clean design.
Collaborate with the Business
Do roadmap planning together. Host Event Storming or Modeling exercises to discuss business understanding and UI needs.
Focus on onboarding
Do a full reinstall on dev machines regularly to find issues in onboarding quickly. Needless complexity in legacy systems and bad onboarding are the mine factor that drive people away from your company. Budget for making this a priority, or you’ll constantly face lethargy and churn.
And your best people are likely the first ones to leave.
Bonus Tip: Make it Fun
We’re in an industry that focuses on deadlines and deliverables, but that mindset is only useful for the economics of your process and the lines of code. It’s a quite harmful strategy for your mindset, for your own mental health. If you think you’re hustling and there’s fulfilment at the end of the rainbow, you’re in for a shocking surprise.
Sometimes you might be tempted to throw relationships with your team members or family plans under the bus to reach a deadline. And sometimes you might even consider doing it for some semblance of the “greater good.”
But I can guarantee you the aspect of your work that’ll shape the future of your career and your memories of the journey is how you were treated along the ride and how the relationships with your team members unfolded.
You’ll make friends for life, and you’ll burn some bridges. Focus on being the person who brings a certain humane joy for the art and the work you’re sharing, and avoid the pitfall of being the jerk on your team. You don’t need to be a hero, but you certainly don’t want to be the star of a horror movie.
The best advice I can give you on this particular subject is to imagine how you’d want your co-workers to feel by working with you today and help them achieve that regardless of the bliss or storm you’re going through.
Having a coach and mentor is You taking control of Your Growth. In my two decades in the tech industry my biggest learning moments were my biggest mistakes and investment. Making mistakes is easy. Maximizing learning is the hard part.
This is where a coach can help you most.
👉 Are you a Software Developer on your Journey to become a Senior?
👉 Are you an aspiring Tech Lead struggling with the burden of Leadership?
I have been there; I have done that–let’s have a chat 🤝
I got your back. Book a call.