Agile Principles in Design
Why has Agile SW development been so successful? Because it really works. Why does it work so well? Because Agile development methods focuses the team on shipping quality software that solves real use cases. Let’s decompose this:
- Focuses the team
- Ship quality software
- Solves real problems
Focuses the team. Agile/Scrum methods focuses the team by several means, but most importantly the daily standup meetings where the team gets clear about what it would like to accomplish that day. Not a wasted moment, all in sync and communication that is clear about what needs to be done – and be done that day.
Ships quality software. Too many times we work on coding up blocks only to later discover that they were not in the code that gets built and tested. Why? Maybe it did not meet user needs. Maybe it was too buggy. Maybe it was not part of the go forward architecture. What ever the reason, Agile can help. From the focus on testing every sprint, to ensuring that the team stays focused on solving real use cases, Agile has robust mechanisms to ensure that quality work gets out the door.
Solves real problems. Although engineers like to think that they understand the customer, especially when the target market is similar to the coder, in fact they rarely truly understand the customer’s needs. As a result they make assumptions that often miss the mark. Most typically they miss the mark in the most obvious ways in not supporting good principles in user centered design. However, just as frequently, they put in features that customers don’t care about, and often leave out features that are required.
Agile methods really work because they bring forward three essential principles that result in shipping quality software. Agile may not be the fastest, nor most efficient method out there, but it certainly does help team deliver products that matter.