News on Monday
more>>
SharePoint Tech Report
more>>


   

 
 
Download Current Issue
ISSUE 2/1/2010 PDF

Need Back Issues?
DOWNLOAD HERE

Receive the print Edition?


 
blogs tab
Is Microsoft eyeing Office subscription pricing?
Microsoft may be preparing to offer a new Office pricing option called "union," which charges the same for cloud as on-premises.
02/01/2010 09:38 AM EST

Facebook rewrites PHP runtime
Facebook is about to open source its own PHP runtime, written from scratch for speed.
01/30/2010 08:53 PM EST

There WILL be a JavaOne this year
JavaOne will happen in 2010, as a co-located event with Oracle's OpenWorld, on Sept. 19-23 in San Francisco.
01/27/2010 01:02 PM EST

 

Events calendar tab
2/9/2010 to 2/13/2010
San Francisco
IDG World Expo

2/10/2010 to 2/12/2010
San Francisco
BZ Media

2/17/2010 to 2/25/2010
Atlanta
Python Software Foundation

2/19/2010 to 2/20/2010
Los Angeles
SCALE

2/21/2010 to 2/24/2010
Las Vegas
IBM


 
Most Read Latest News Blog Resources

Integration Watch: Lost in the divide: Agile architecture




December 1, 2009 — 
The agile movement, as most readers know, was founded in response to the perceived need for an approach to software development that could easily accommodate change. It was designed in opposition to the so-called waterfall model, which favored an extensive design cycle that imposed fairly unchanging requirements and designs. It often delivered products to customers that were out of sync with the users' needs due to the evolution of those needs during the development period.

At its inception, the movement was not about techniques, but about principles. However, extreme programming (XP) was one of the most established agile practices of the time, and for many years XP practices and agile approaches shared a great deal of overlap. In fact, it would be fair to say that XP provided the body of practices with which agile could come into being. XP and agile would later on become more distinct, but early on they were essentially congruent.

XP, as the P implies, is focused on low-level work. There are 12 core practices in XP. Seven of them are exclusively about coding-related work: pair programming, test-driven development (TDD), refactoring, small releases, coding standards, collective code ownership, and system metaphors. The remaining five barely hover over this low level: planning game (weekly iteration planning), whole team, continuous integration (building the code repeatedly), simple design (use Occam’s razor, where possible), and sustainable pace. This makes XP a great solution if only your coding/implementation pipeline is faulty. But experience tells me that often sites with faulty processes suffer from problems far further up the pipeline than what can be addressed by TDD or CI.

For these problems, you need to go to a different branch of agility: the one that focuses on process, design and team interaction. This higher branch is characterized by lean development, kanban and to some extent Scrum. (Scrum is sort of a wobbler; it can be viewed as high-level or low-level, but lean is a genuine systematic attempt to bring agility to the larger process flows where development teams first become bollixed up.)

Lean development derives from a just-in-time manufacturing approach used at Toyota. It was adapted to software development and described in the classic “Lean Software Development” by Mary and Tom Poppendieck. It relies on seven precepts, not one of which deals directly with code, although being true guiding principles, they can be applied to coding.

While this higher level is undeniably agile, the term agile increasingly refers to a set of coding practices that are low-level and stay down at the bits and bytes. The best summary of them, by far, is Robert “Uncle Bob” Martin’s “Agile Software Development,” which came out in 2002. To speak of, every agile book that has appeared since then has simply expanded on what Martin put into this work. It’s that comprehensive.

The book perfectly illustrates the “in the small” aspect of agile. While the subtitle states “Principles, Patterns, and Practices,” it is mostly filled with diagrams and code. The Poppendiecks’ book (whose name differs by one word), in contrast, does not contain a single line of code.

The problem caused by this split is that the issues agile has been neglecting are not being addressed by the coder community due to its own low-level focus, nor by the process gurus due to their high-level focus. I am talking about a level that should ride between lean and agile coding: architecture and design. Agile design: Those are two words you rarely see together. Why is that?

Here is another rarely heard pair: agile architecture. Of the 27 presentations at the just-completed Agile Vancouver conclave, not a single one contained the word architecture in its title. Yet, as Mary Poppendieck avers, “[project] architecture must support incremental development.”

How is this architecture developed? Gosh knows. The Poppendieck book has no entry for architecture in its index. And Martin’s 500-page work has a short 10-page section in an Appendix, most of it dedicated to explaining UML notation. Clearly, architecture is a glaring omission of the agile approach.

Many enterprises don’t buy into the whole agile message. Despite my high esteem for agility, this esteem comes with a certain prudence. Agile has gaps. Agile does not understand architecture and minimally understands design—two practices crucial to enterprises. Moreover, there is no substantial track record of agile methods of any kind working well with large teams.

Because of these gaps, enterprises are better off weaving agile with other familiar methodologies and finding a blend that works for them rather than upending their processes to adopt an approach that, while commendably good at many tasks, still has holes to fill.

Andrew Binstock is the principal analyst at Pacific Data Works. Read his blog at binstock.blogspot.com.



Related Search Term(s): agile


Share this link: http://www.sdtimes.com/link/33956
 

Add comment


Name*
Email*  
Country     


  • Comment
  • Preview
Loading