DevNewz News Archives About Us Feedback

Recent Articles

Exporting From CFGRID In Coldfusion 8
A user asked me today if it was possible to export data from the new HTML-based grid in ColdFusion 8. While there is no direct support, you can roll your own. Let's take a look at one solution to this problem.

Interesting Bug With Query Columns
An interesting bug (not a ColdFusion bug, but a user bug) cropped up in a discussion last week in the ColdFusion IRC channel. Unfortunately I don't remember his IRC name, but after we worked together on this...

Vista, IIS7 & BlueDragon
I'm trying to set up a full-blown development environment on Vista, just to see how I get on and to compare it with my regular development environment on OS X. Having beaten SQL Server Express into...

ASP.NET - Trackback Spam Fighting
Recently, I joined the Subkismet project which is an open source stand-alone comment spam filtering library for ASP.NET web applications founded by Phil Haack. My task is to write mechanisms for fighting trackback and...

Preventing Direct Access To A CFC
Chad asks: I am using a CFC for an AJAX-based shopping cart and it works great. But along comes a customer who is behind a proxy. The proxy is trying to request the CFC through a GET request (instead...

Testing Your Code
I was asked to write a post about my views on unit testing because it is a hot subject at the moment. I'm very ambivalent about unit testing and always have been for many different reasons. Although testing is...



Recent WebProNews Articles

Google AdSense For Mobile Arrives
There’s no such thing as a portable La-Z-Boy, but there are comfortable camping chairs. And although a 42-inch LCD might be ideal, pocket-sized video devices are also popular. Now, with the formal launch of AdSense...

Google Presents PowerPoint Alternative
The rumored arrival of a Google option for creating and viewing slide-based presentations became fact with the debut of its newest feature on Google Docs. You'll see something different when clicking New in Google...

How CBS Blew Up My Puff Piece
It was bloggers who forced CBS Evening News anchor Dan Rather into early retirement, and yet CBS – at least somebody there – is still being condescending towards the new media. This story began in pursuit of an...

Yahoo Opens Mash, Exhibits Facebook Envy
Invitations to join Yahoo Mash and test out Yahoo's newest experiment in social networking have been landing in a few inboxes. Once upon a time in the Terry Semel era at Yahoo, the company made a play..

AjaxNinja Whips Shurikens Into Digg
If you've been in a situation like Lee Odden was this year, on the outs with social media site Digg, you've probably wondered if there are better places to try and get a site noticed. AjaxNinja doesn't have a cheeky...

Prince Pops Off At YouTube, eBay
The pint-sized popster Prince has lawsuits planned for YouTube, eBay, and Swedish torrent search site The Pirate Bay over unauthorized uses of his music. Throughout his long-running battles with the...


09.19.07


Feature-Driven Development

By James Taylor

At the IASA ITARC event in Atlanta I listened to Don Browning, Principal Architect at Turner Broadcasting, talk about Feature Driven Development.

Turner considered XP, SCRUM and FDD sometime ago and found that FDD fit their waterfall-based mindset. Don started by talking about how problems with project schedules, with poor analysis, QA problems and user acceptance all roll downhill to developers. He had four main points

• Agile (especially FDD) does not mean abandoning architecture

• Agile can work on large projects

• Agile need not be risky "fly by the seat of the pants"

• A solid development methodology bring repeatability and predictability

Agile methodologies are numerous but all match up to the agile manifesto's four concepts. I have written about rules and agile before for InfoQ - Agile Business Rules (Deborah Hartmann also wrote a nice introduction When and How to Formalize Business Rules) and had a conversation with Scott Ambler on this topic. He particularly emphasized the aspect of responding to change because things never get cast in stone. The rate of change in software projects remains very high and drives many project failures (as discussed here). Agile projects make it easier to be successful by delivering smaller projects more often - expectations are managed differently.

Don started by discussing how FDD is not XP.

• FDD uses UML documentation where XP discourages documentation.

• FDD has an overall system model which XP lacks

• XP uses pair programming and test-first where FDD does not


FDD Principles (with my comments)

• Working software is the primary measure of progress

Yup. Works for me.

• Deliver working software frequently, iterations never last more than 3 weeks (smaller projects use shorter ones, customers do not necessarily get every release)

With rules you can iterate as often as you like, certainly 3 weeks is very reasonable

• Business people and developers working together

Well they aren't going to manage that if the only thing they can both look at is a set of code!

• Embrace changing requirements

Changing requirements is one thing, changing rules are another

FDD has five phases which seem both sensible and a good fit for rules:

1. Develop an overall model (once)

A domain model to think about the system as a whole. The objects of the system, their interactions.

Constantly updated during subsequent phases.

2. Build a feature list (once)

Set of areas, set of activities within that, each step is a feature. User story or <action> <result> <object>

3. Plan by feature (once)

Rough estimate for each in terms of days from 0.5 to 8 but break up features that estimate at more than that. Find the sequence and assign to iterations.

Note that some iterations are light to allow for bug resolution and this is built into the schedule

4. Design by feature (many)

Constant refinement of original domain model.

Three steps - walk through domain with users, design each feature (could use UML) and validate and review the design.

Typically 4 days at start of iteration.

5. Build by feature (many)

Typically 10 days of coding ending with a build before a final day of planning for the next phase.

Implement classes, code inspection and peer review, promote fully tested code.

Each step represents an approximate percentage of completeness for a feature

I could not help feeling that using business rules to manage logic in steps 4 and 5 would keep the users more engaged, reduce errors and deliver functionality that could be subsequently evolved by users alone.

Couple of final comments. I like the way FDD separates the architect role on the team from the development manager from the project manager. Don's team found that a change control process became important in later iterations - it was OK for it to flex a lot early on but not later. I also liked the ability of the FDD model to quickly identify periods when progress stopped.

Comments


About the Author:
VP of Product Marketing with a passion for the technologies of decision automation. 15 years designing, developing, releasing and marketing advanced enterprise software platforms and development tools. Across the board experience in software development, engineering and product management and product marketing.

http://www.edmblog.com


About DevNewz
DevNewz has assembled experts around the world to deliver helpful advice to application developers. Our in-house news staff focuses on keeping you updated with the latest new software and trends in application development. DevNewz provides Knowlege For Application Developers.

DevNewz is brought to you by:

SecurityConfig.com NetworkingFiles.com
NetworkNewz.com WebProASP.com
DatabaseProNews.com SQLProNews.com
ITcertificationNews.com SysAdminNews.com
LinuxProNews.com WirelessProNews.com
CProgrammingTrends.com ITmanagementNews.com


-- DevNewz is an iEntry, Inc. publication --
iEntry, Inc. 2549 Richmond Rd. Lexington KY, 40509
2007 iEntry, Inc.  All Rights Reserved  Privacy Policy  Legal

archives | advertising info | news headlines | free newsletters | comments/feedback | submit article


Knowlege For Application Developers DevNewz Home Page About Article Archive News Downloads WebProWorld Forums Jayde iEntry Advertise Contact