|
 |
| 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
|