YOUR FEEDBACK
Jeremy Geelan wrote: In response to inquiries and suggestions from readers this lexicon has recently...


2008 East
DIAMOND SPONSOR:
Data Direct
Frontiers in Data Access: The Coming Wave in Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
Intel
Virtualization – Path to Predictive Enterprise
Green Hills
IT Security in a Hostile World
JBoss / freedom oss
Practical SOA Approach
GOLD SPONSORS:
Software AG
The Art & Science of SOA: How Governance Enables Adoption
PlateSpin
Effective Planning for Virtual Infrastructure Growth
Fujitsu
Automated Business Process Discovery & Virtualization Service
Ceedo
Workspace Virtualization
Click For 2007 West
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts
SYS-CON.TV
TOP THREE LINKS YOU MUST CLICK ON


Why Is Agile Development Hard?
Why Is Agile Development Hard?

I bet you thought agile development was supposed to be easier than a traditional, prescriptive process! That I would wax evangelical that agile development is the answer to everything, and it simplifies your life. Yeah, just like UML and model-driven architecture and XML and SOA and Web services are silver bullets. Uh-huh, r-i-g-h-t.

If you aren't familiar with agile development, you can check out our manifesto here: www.agilemanifesto.org/. You can also learn more here: http://en.wikipedia.org/wiki/Agile_software_development. The difficulty with "agile development" is that it is "in the eye of the beholder." That is, even a highly regulated, constrained application can be conducted in an agile manner. That manner will be radically different from the way a five-member team might approach building a small desktop software product that they want to sell. Both projects can be agile, and therein lies some of the issues that make agile seem "hard."

Why, then, is agile development hard?

It might not be so much that agile development is hard, per se, depending on your perspective. The reason I give for agile development being more of a challenge for many teams is simple:

YOU HAVE TO USE YOUR BRAIN!

No, I don't mean to infer that you don't normally use your brain. However, in a highly prescriptive process, it is easy to fall into a trap of doing an activity because... well, just because! Typical reasons are that a specific set of steps are mandated by a process, possibly making sense in some projects, not in others. But often, the process grows old, people no longer remember why they are doing a specific task, but do it anyway. Folks get comfortable building some document without ever asking the recipient if it is enough, too much, useless, perfect.
- Don't Mistake Activity for Progress

Developers often jump into the fray by "cherry-picking" specific fun stories and sometimes missing the big picture. For an app that needs to message another app and then do some crunching, I have seen developers working on everything but the core system development needs: the messaging or shelling out of one app to speak to another app. When I asked if they got the basics working yet and are now discussing the pretty frills, they looked around, kind of sheepishly. "No, we don't have the parent app able to message our part yet." If you use your brain and step back a bit, you can see that nothing else matters.

Despite making progress on "stories" they actually had no meaningful progress. Remember, if you can't see it working, it doesn't exist!
- Show Me Working Features

Yeah, yeah, yeah, I know, someone didn't prioritize the stories properly. But, you certainly cannot expect a "customer" to figure out that some weird technical messaging thingy had to be in place first. The customers better only talk about the business and features that are (generally) devoid of technology words.

Development teams have to think more broadly than just coding. If a team understands that the client needs to know about some aspects of the technology that have to be implemented before anything else matters, this should be brought to their attention.

Development teams also need to help with the project management aspects. Yes, that's right. You need to learn how to say "No!" - in a gentle manner, of course.

"So, can we add some more features to this iteration?"

"Uh, since we are three days to iteration 'pencil's down,' let me think. NO! It has to wait until the next iteration."

After all, if you know in your gut that there is no way for a disruptive request to be accomplished, why bother trying? You should always maintain your iteration delivery schedule, slipping features instead of dates. You should always maintain your good habits. Someone has to be the adult ;=)
- Learn to Say "No"

In agile development, you (and everyone else) are charged with the rather difficult responsibility of always challenging yourself to ensure you are doing the smartest thing possible that will bring about the best solution for the current project (and within its context).

You need to set up your agile team for "running fast" through each iteration's features. To start with, I like to model the problem domain to enough of a level of understanding from which:

  • Requirements/features can be written using a consistent language
  • Enough of an object model exists to anchor the coding
  • Enough complexity has been uncovered to make the cost/time estimate defensible
In addition, you need to understand the architectural approach (not to mention coding guidelines). You can slowly arrive at the ultimate architecture and call it refactoring. But at what cost? I like to get the bulk of the architecture design/building work out of the way before starting the first iteration. Of course, for some apps, you may already have the architecture style predetermined.

I like to ensure the team can hit the ground running with a list of features in hand, architecture, coding guidelines, automated build scripts, and a domain model from which to hang code.

Sure you can discover all of this piecemeal as you go along, but that is usually slower and less efficient than doing some work up-front to lay the groundwork. No, I am not talking about "Big Stuff Up Front" (BDUF/BRUF) type of an approach. I am talking about using your brain. Do enough up-front work to enable running fast (even with scissors). Maybe: Just Enuf Design Up-front (JEDI - if I substitute "Initially" <g>).
- You Must Lay the Proper Groundwork to Be Agile

By a few iterations in, if you are not ripping through the feature list/user stories almost faster than they can be compiled, you are not yet performing at a truly agile level. If it is "disruptive" that a customer changes the stories scheduled for the next iteration because of changing priorities, you are not yet performing at a truly agile level. If you and your team are not constantly using your brains, you are not yet in the agile state of mind.
- Agile Is a State of Mind!

Post any comments on my blog: www.compuware.com/blogs/jkern/

About Jon Kern
Outspoken software engineering evangelist, Agile Manifesto co-author, speaker, and author, Jon's experience is wide-ranging across varied problem domains and technology platforms. From jet engine R&D (he's an aerospace engineer, after all) to real-time flight simulator design and development, from TogetherSoft's and OptimalJ's commercially successful modeling tools to building IBM's Manufacturing Execution System software - Jon has seen and done a lot in his 20 years. Peter Coad recruited Jon in September 1999, to help launch TogetherSoft. Jon was a driving force behind the success of the company and its products prior to its sale to Borland. Jon's a nut when it comes to modeling effectively (focused on the business), building and architecting consistently, and doing it in an agile manner to deliver results. If a team ignores these best practices, it invites the peril of building up Technical Debt, as he likes to refer to it. Jon is a speaker that engages the audience and has fun doing it.

YOUR FEEDBACK
Mandan Misra wrote: The pop up add which comes up on opening of your site is very disturbing. I had gone back from your site many times because of same. Why you try to irritate your user showing that. You have good website with good information. So pl. remove that. Thanks & Regards Mandan
SYS-CON Australia News Desk wrote: SYS-CON Media announced today the results of its 10th annual 'Readers' Choice Awards' for best products and tools for the SOA, Web Services, Java and XML technologies. Winners and three finalists were announced today in 21 categories by SOA Web Services Journal. Java Developer's Journal also announced winners and finalists in 26 distinct product and tool categories.
SYS-CON Netherlands News Desk wrote: SYS-CON Media announced today the results of its 10th annual 'Readers' Choice Awards' for best products and tools for the SOA, Web Services, Java and XML technologies. Winners and three finalists were announced today in 21 categories by SOA Web Services Journal. Java Developer's Journal also announced winners and finalists in 26 distinct product and tool categories.
SYS-CON Brazil News Desk wrote: SYS-CON Media announced today the results of its 10th annual 'Readers' Choice Awards' for best products and tools for the SOA, Web Services, Java and XML technologies. Winners and three finalists were announced today in 21 categories by SOA Web Services Journal. Java Developer's Journal also announced winners and finalists in 26 distinct product and tool categories.
SYS-CON Italy News Desk wrote: SYS-CON Media announced today the results of its 10th annual 'Readers' Choice Awards' for best products and tools for the SOA, Web Services, Java and XML technologies. Winners and three finalists were announced today in 21 categories by SOA Web Services Journal. Java Developer's Journal also announced winners and finalists in 26 distinct product and tool categories.
SYS-CON Australia News Desk wrote: SYS-CON Media announced today the results of its 10th annual 'Readers' Choice Awards' for best products and tools for the SOA, Web Services, Java and XML technologies. Winners and three finalists were announced today in 21 categories by SOA Web Services Journal. Java Developer's Journal also announced winners and finalists in 26 distinct product and tool categories.
SYS-CON Brazil News Desk wrote: SYS-CON Media announced today the results of its 10th annual 'Readers' Choice Awards' for best products and tools for the SOA, Web Services, Java and XML technologies. Winners and three finalists were announced today in 21 categories by SOA Web Services Journal. Java Developer's Journal also announced winners and finalists in 26 distinct product and tool categories.
SYS-CON Belgium News Desk wrote: SYS-CON Media announced today the results of its 10th annual 'Readers' Choice Awards' for best products and tools for the SOA, Web Services, Java and XML technologies. Winners and three finalists were announced today in 21 categories by SOA Web Services Journal. Java Developer's Journal also announced winners and finalists in 26 distinct product and tool categories.
SYS-CON Australia News Desk wrote: SYS-CON Media announced today the results of its 10th annual 'Readers' Choice Awards' for best products and tools for the SOA, Web Services, Java and XML technologies. Winners and three finalists were announced today in 21 categories by SOA Web Services Journal. Java Developer's Journal also announced winners and finalists in 26 distinct product and tool categories.
JDJ News Desk wrote: SYS-CON Media announced today the results of its 10th annual 'Readers' Choice Awards' for best products and tools for the SOA, Web Services, Java and XML technologies. Winners and three finalists were announced today in 21 categories by SOA Web Services Journal. Java Developer's Journal also announced winners and finalists in 26 distinct product and tool categories.
SOA Web Services Journal News Desk wrote: SYS-CON Media announced today the results of its 10th annual 'Readers' Choice Awards' for best products and tools for the SOA, Web Services, Java and XML technologies. Winners and three finalists were announced today in 21 categories by SOA Web Services Journal. Java Developer's Journal also announced winners and finalists in 26 distinct product and tool categories.
LATEST JAVA STORIES & POSTS
What's the key to team and individual developer productivity in maintaining and extending a large application? Let’s start by making the following assertions: A developer's knowledge of an application code base is likely the single biggest factor of individual productivity. Cor...
An applet, a Java program that runs in a browser, often has to access the client resources. However, the security manager prevents an applet from accessing client resources. To access client resources, the applet has to have the proper permission. With this permission the applet ...
Three-letter acronyms (TLAs) are hardly new in Information Technology: EAI, ESB, SOA, BPM, BAM, ETL, MDM; the list goes on and on. This article is about yet another three-letter acronym, EDA, which stands for Event-Driven Architecture. EDA is not a brand new technology, but rathe...
Furthering its dedication to providing Java developers productivity with choice, Oracle announced the Oracle Enterprise Pack for Eclipse, a new component of Oracle Fusion Middleware. This release marks the first free Eclipse 3.4 environment to support Oracle WebLogic Server 10g R...
Two of the biggest launches in Rich Internet Application history took place in 2007/2008 when Adobe launched AIR 1.0 in February '08 and Microsoft launched Silverlight (September '07). At the 6th International AJAXWorld RIA Conference & Expo in October SYS-CON Events is delighted...
Red Hat CTO Brian Stevens, Citrix CTO Simon Crosby, Egenera CTO Pete Manca, Allen Stewart, Group Manager, Windows Virtualization at Microsoft, and Brian Duckering, Sr. Director of Products and Alliances at Symantec were the top industry executives who joined Jeremy Geelan in the ...
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


SYS-CON FEATURED WHITEPAPERS

SPONSORED BY INFRAGISTICS
There are many forces that influence technological evolution. After a decade of building enterprise ...
2008 is going to be an important year for Rich Internet Applications. Most organizations are deliver...
The OpenAjax Alliance is developing an Ajax industry wishlist for future browsers, using a dedicated...
In every field of design one of the first things students do is learn from the work of others. They ...
Infragistics announced the availability of two Community Technology Preview (CTP) User Interface (UI...
The YUI development team has released version 2.5.2; you can download the new release from SourceFor...
ADS BY GOOGLE
BREAKING JAVA NEWS

SpringSource, a leading provider of infrastructure software and the company behind ...