Software development companies have long been abuzz with talk of agile development. Its virtues have been extolled and significant gains in productivity promised, but not very often do we talk about how hard it is to make the transition to agile development. There are compromises that can come so easily when we face processes and pressures that are difficult to transition away from. Old habits are so welcoming and progress can seem so far away. At Adaptive we experienced the same growing pains. Over the past year and a half we have seen a lot of success from our efforts and it hasn’t been easy. But it’s been worth it. We’ve been able to set more accurate timelines, and the accuracy of those timelines has been available sooner. Each release we have been able to move ahead with confidence that we can scope out the relevant functionality completely with user stories. We’ve been able to target our hiring to bring on the specialists we know that we need to have success. And we’ve been able to plan future features more fairly, having a better understanding of the customer needs we’re addressing and how long it will take to deliver value in each feature.
How does this translate to our product? We’re seeing higher quality, faster performance, longer uptimes, more scalability and more fully rounded-out features. Higher quality comes as feature is subjected to longer durations of targeting testing because we spend less of our release cycle in a no-man’s land between completed features. Performance, uptime and scalability are the result of deeper dives into specific user stories and their impact on the system and its components. Each of our new features is more fully thought out and executed as we have taken more time to examine mainstream and edge customer use cases.
In the end, we’re confident that the investment we’ve made in improving our agile development process has produced the most valuable version of Moab we’ve released, and we expect even better versions in the future!
I’ve had a couple rough days sliding between tactical and strategic worries as we work to complete a release while planning ahead for the next one. I just drew this up on a whiteboard to provide some context for my concerns. I was surprised by where it ended up so I’ve decided to spend a few more minutes on it and share it.
While the visibility from the top down and from the bottom up is absolutely critical, you can’t really expect to have all that loaded in your head at the same time. This is aggravated by the size of your organization and certainly becomes unmanageable at different points depending on your mental fortitude and your organization’s setup. Most companies address this problem by creating a hierarchy so that those at the top, your C-levels and other executives, worry about those things at the top of the list, and your middle managers take the middle, and so forth all the way down the list. This can work, but I’m an advocate for dynamic approaches that can quickly compensate for different needs at different times. But I digress. My point here is that when it comes down to it, you can’t really do it all, and there are only two things that can make you feel better about that:
- Transparency – it should be simple for someone to take a look at a dashboard or a blog or even a posted printout and see how things are going in an area and where things are headed in the future.
- Trust – if you can’t trust (often through delegation) those that are heading up areas of the business then you will never be satisfied that things are running well.
I don’t have all the answers here, but I hope that this helps you to reconsider where you’re at like I have, and I’m glad I did because today (two days later) I’m feeling pretty good.
This can happen to you too, but only if you are:
- Emotionally attached to old equipment
- Only moderately adequate with power tools
- Understand just enough about electronics to be dangerous
- Passionate about music
The result in my case? The FrankenAmp ghetto box – a 350 watt horizontal plane of sound awesomeness.