It takes a change in mindset to do it, but Agile Architecture speeds-up development and innovation. The co-creator of Scrum, Jeff Sutherland, and the founder of Team WIKISPEED, Joe Justice, two of the industry’s thought leaders in this area, explain how it all works in this on-line course.
Upon completion you will:
Agile Architecture Overview:
A key practice in Scrum is to deliver small slices of functionality each Sprint. These slices need to encompass every layer of a system, from what the customer sees to the darkest corners of the backend. This even includes the architecture itself. For architects used to working in a waterfall context this can seem impossible. “How can you develop architecture piece-by-piece? The entire purpose of architecture is to design the way the whole system hangs together. You can’t do that in iterations.”
View and Download Class Slides
Subsumptive Architecture and Emergent Behavior
In the course Jeff tells the story of the moment he realized the implications of Subsumptive Architecture. He was running a company near Kendall Square in Cambridge, MA. A MIT professor asked if he could rent some space for a new startup that was outgrowing the Artificial Intelligence Lab.That professor was Rodney Brooks, and that startup was iRobot. Jeff shares the story of what happened next in his book Scrum: The Art of Doing Twice the Work in Half the Time.
What’s interesting, Brooks said is that each time you turn on the robot, it learns to walk for the first time. There is no database of where everything is in the room. Instead the world is its database. It figures everything out for the first time each time it is switched on. It bumps into things and figures things out based on the actual surroundings, which means it can adapt to any environment.
“Let me show you,” he said as he took me over to their lab. He popped a blank neural chip into one of these insectoid robots and I watched it wobble to life. Hesitantly at first, it stumbled around the room like a fawn picking itself up on its legs for the first time. With each step it became more and more assured. The legs quickly learned to collaborate and work together. Within a few minutes the robot was racing around the room. Nothing was stored or programmed about how to walk, instead a few simple rules kept these components working together. These legs didn’t think; they just did. I was blown away by the ingenuity and simplicity of the system. . . .
“What would happen,” I asked Brooks, “if we could come up with a simple instruction set for teams of people to work together just like those legs? They would self-organize and self-optimize, just like that robot.”
“I don’t know,” he replied. “Why don’t you try it and let me know how it works out?”
What the robot was doing was displaying emergent behavior based on Brooks' Subsumptive Architecture. The. Individual pieces reacted independently and reacted to the world as it is, rather than relying a database of static information. Brooks designed the system to solve problems from the ground-up, rather than from the top-down. This is how architects have to think in an Agile context.
Papers and Patterns
J. Sutherland, ACM StandardView, vol. 6, pp. 4-13, March 1998.