Closing Thoughts
Final thoughts of an already long article.
That's the core of agile development business and planning practices. It's been quite the journey. Thanks for sticking through it! I have a few final thoughts on some topics that didn't fit into the page flow or that are not worth the time for the basic reader. You may want to skim the topics below and see if any peak your interest. Otherwise, best of luck on your agile development endeavors! If you have any comments or critiques of this article, feel free to harass me.
Deadlines
Inevitably, someone (maybe even yourself) is going to be utilizing agile development as a method for combating deadline management. And, to some extent, it is. However, agile development will not help you through unrealistic deadlines that are fast approaching. Instead, I have an article for other solutions to deadline management that may or may not be helpful.
Topics I ignored
There are several Agile or Scrum topics that I didn't touch on. Mostly because I either don't think they provide significant value or that they are best melded into already mentioned concepts. If you want my opinion on each one, well, here you go.
Purpose > measures > method
There is an ideology known as Systems thinking (or the Vanguard method) that I'm going to attempt to summarize without butchering it. In essence, people tend to start with methods, which then define their data (and therefore their measurements), which shape their outcomes, which–in turn–shape their purpose. This is backwards. If you let methodology shape your business then you aren't solving true customer needs. It's tradition for tradition's sake. It's best to start with what your purpose is, what your mission is, and the value is that you bring to your customers. Let that define what you should measure and shape your outcomes. Then build methods around it to support the purpose and measures.
I agree with that. Yet, I just spent the last several pages teaching you method instead of purpose. In fact, this is one of the greatest arguments against agile development: it's applied with broad strokes to all software businesses. So why did I teach you method instead of purpose?
For one, there's already an incredible resource that goes into purpose. Clean Agile. Read it, please! Second, there is a competing ideology known as the Dreyfus model that I think trumps the Vanguard method in this case. That is, when we're learning something new, we start by learning the rules. Once we know how to apply the rules, we start experimenting with them, customizing them, and pulling them into contexts as needed. Only after following, applying, and experimenting with the rules do we understand how they can be adapted to our needs.
If you are already deeply familiar with agile development, you are not my target reader. My target reader needs to have tools, methods, and rules given to them to even start the process. Once you have a firm grasp of the tools, then you should take a step back, revisit your purpose, and see what still fits and what needs to be altered or discarded.
Choose your own adventure
I tend to write very deliberately and it may seem like I think there is a strict way to apply agile development. In fact, it's just the opposite. I hope the topics I covered are a great starting point. I hope that you take what you learned here and alter it to fit your own team's needs and culture.
The biggest pitfall regarding agile development is assuming there is a single "correct" way. If you forget about the higher-level vision of what the agile methodology provides, then it becomes work for the sake of work rather than an actual benefit to your engineering teams. You should talk with your engineers frequently to ensure whatever method you employ works for them. Feel free to alter your agile processes across different teams. Yes, it's best to keep consistency across an org–as engineers tend to move between teams and will also need to collaborate across teams–but it's also true that every engineering team has different problem spaces and may need different tooling or methods for optimal efficiency in that space.
Last updated