Continuing with the 100 Things You Must Know to Be Effective In Software Development
This blog is also in preparation for a webinar I am doing this Wednesday called: How to Start an Agile Implementation.
I wrote a blog about a year ago called Why Scrum Works and How This Tells Us When It Won’t it was a follow up to a blog now more than 6 years old Challenging why (not if) Scrum works. I have long held that Scrum was an incomplete manifestation of Lean-Thinking and I have to say it is nice to see thought leaders in the Scrum community finally coming around to this thinking as well.
However, Scrum still provides little insights into how to create teams when they are not present and are difficult to form. The notion that the development group is comprised of generalists is simplistic (see Specialization Exists – Honor It). While the espoused Scrum model is clearly the most efficient, it is not always the most cost-effective, or even an achievable approach in many situations.
This blog will focus on why teams are so important. In a follow up blog I’ll talk about different ways of achieving them. Let’s consider the seven wastes of software development:
- Partially done work
- Task switching
- Handoffs
- Defects
- Delays
- Relearning
- Extra features
It not a coincidence that cross-functional teams can help eliminate each of these when they focus on doing iterative development. This is best achieved when the teams understand Lean-Flow and that it implies they should work on the fewest number of features they can – this allows for quick completion of the work with few items in play.
Partially done work. With a team focusing on getting work done, this won’t happen much. Start something, finish it. Stop starting and start finishing works for Scrum teams as much as it does for those doing Kanban.
Task Switching. If we focus working on one story, completing it before going on to the next, there will be little task switching. Pull an item, swarm on it, finish it, go to the next one. No task switching. Nice.
Handoffs. Part of the way to complete stories quickly is getting all of the folks you need work on it. This also eliminates handoffs.
Defects. Swarming as described above means coders and testers will be working together (pairing even?). This will lower the number of defects and enable their quick elimination when they do occur.
Delays. Delays are the cause of extra work, but, by avoiding the above, there will be few delays and overall waste is eliminated.
Relearning. This will be reduced by folks working together.
Extra Features. By building stories incrementally and getting feedback on how the system is manifesting value, we can avoid building things we don’t need. This, of course, requires us to build the most important items first.
Teams are also powerful because they provide for synergy, building camaraderie, creative ideas, higher morale and just plain fun.
Teams are good, work towards having them.
And, of course, if you don’t see how to do that, drop me a line – I’ll be happy to talk to you about how to do that.
Al Shalloway
CEO, Net Objectives
Did you like this? Please tweet by clicking on twitter icon below.