On a daily basis, Ben Kittrell translates the jargon-filled world of technology for clients of his tech consultancy. The Words that Frustrate (WTF) series aims to offer readers some clarity in an industry dominated by techies’ confusing argot.
In the stone age of software development, there was one way to manage projects, and we called it “Waterfall.”
You took a couple of months to define every aspect of the application on paper, then shoved the developers in a closet for six months until they delivered the finished product sight unseen. It made sense at the time …
But at some point we started to realize that these projects were taking way too long, costing way too much money and, worst of all, they just weren’t right. Then along came “Agile Software Development.” The overall goal was to value human interaction and working software rather than processes and documentation.
The main problem is that you can’t judge a piece of software until you use it — no matter how much time you spent planning it. The flow between screens and complex interactions are what makes software valuable. This cannot be represented in screenshots and Word documents. That’s why one of the major tenets of agile is “Iterative Software Development,” which encourages frequent interactivity between developers and clients. By limiting the developers’ closet time to one or two weeks, the stakeholders are able to give feedback right away.
There are several different Agile systems, and one of the more popular is “scrum.” For more on this, I asked my friend and client Adam England, director of engineering at Red Nova Labs.
“Scrum encourages teams to plan weeks or months at a time, instead of years and to deliver software to customers every step of the way,” he said. “Ideally, this lowers the risk of the project going bust and lowers the overall cost to get to a release date. It may seem obvious, but the software industry ignored the fact that fast iteration lowered risk for a long time.”
Another Agile software development system is called “Kanban” and was created by an industrial engineer at Toyota. Again, I’ll let England explain.
“Kanban is actually an older system than scrum, originating from the manufacturing industry,” England said. “It does away with a lot of the ceremony of scrum and instead focuses on lowering time to delivery and minimizing work in progress. The brilliant part of this is that when you only work on one thing at a time and get it done fast. You accomplish the same fast delivery and lower risk that you get in scrum, with a lot of fewer meetings.”
Which system is the best?
Most teams don’t strictly follow any one methodology, but use the elements they like. This is another aspect of agile — adaptability.
“We use whatever is right for the job, England added. “Established projects are often better suited to kanban and projects with a lot of risk and change are better with scrum. Ideally, though, I prefer to not use either — nothing beats a team sitting in a room together and planning out their work on a whiteboard.”
Now that’s agile.