June 2006 – Objecta win contract with BP to supply consultancy analysis services for BP Shipping’s global marine assurance clearing project. Objecta introduce use-case driven development process to drive forward development.
Author: Rick
-
Agile in practice
Over the years I’ve practiced various flavours of IT development in projects with emphasis on use case driven approaches to guide requirements capture. Not all companies work this way and for many creation of a lengthy functional requirements document is the norm. Without an FRD / PRD / ReqDoc or whatever the in-house term used, the functional requirements are often fragmented and hierarchical with lashings of must haves, should haves and could haves. And in many of my projects the use case has successfully challenged this status quo with an improved way to cluster and manage requirement complexity.
Some projects along the use case migration road have not been so successful and there seems to be a trend to these types. A bad smell may begin with endless reviews in which more detail is added and more critique ensues. Business won’t sign-off and development is stalled and eventually the project misses its window of opportunity and is canned. Or the number of use cases seems to keep increasing with ever more elaborate techniques to package, include and extend them. The Business becomes frightened to read or review and loose faith in use case salvation. Or the estimates raise eyebrows and a new project manager is called in to tame the beast. The PM brings along new metrics in Excel; an impressive plan in Project and development begins, milestones come and go. The first use case never reaches QA for test. The project takes a vacation.
So what’s going wrong and can an agile approach help? Clues left behind by failed or failing IT development projects are useful forensic evidence. Larger companies may have resource to carry out their own post mortem as post implementation reviews. I’ve witnessed two recurring themes from these reviews. First killer is complexity and can be reduced and controlled by user stories. Second killer is lack of iteration borne out of waterfall mindset and this requires enlightened confident management.
Complexity just happens. It’s often not intentional, use case specification just get longer and more detailed. What starts as a simple happy day with a few sentences becomes a heavyweight monster, detailing a multitude of alternatives and exception scenarios. All parties agree these are important. But the project plan has a single task for the whole use case – there so many use cases so we can’t have separate activities for each one can we? The developers wrestle with the monster use case and may get some scenarios working but there’s never enough complete to make it past QA. One way to avoid the monster is to focus only on the happy day and perhaps one or two alternatives. The use case is manageable and can progress through analysis, design dev and test. Success? Not necessarily as those missing alternatives and exceptions are identified during release testing and requires further iterations to fix the defects. But this is ok, the dev team have been through the build cycle and the team can cope so long as release dates are flexible. Success depends on not getting bogged down during requirements definition and producing something that demonstrates delivery is possible. Agility wins the day by accommodating change – the requirements we skipped over at the start get fixed after some code is working.
So was the use case to blame? Maybe. Use cases have become collections of scenarios all working towards a common goal – something of benefit to the business. But just as use cases are collections of related functional requirements, scenarios add another dimension and complexity is multiplied. Think about it; with five requirements related to registering new user, if 4 scenarios are identified that’s twenty requirements that need developing and testing. The use case is overloaded and may hide underlying complexity. An eight person-day estimate to code the use case for one scenario may translate to 32 days when all scenarios are included. If early happy day estimates are used to construct the project plan budgets are soon blown.
A user story helps avoid overloaded by keeping the scenarios separate. The story captures one or two tightly bound scenarios with a crucial constraint – it must be possible to code the story in a short time, say a maximum of 1 week. The agile approach does not allow story bloat. Yes more stories are needed to capture all the scenarios but there’s no insistence that they must all be identified before a line of code is written. Complexity is still there but never all at once. Each iteration builds towards complete functionality covering more scenarios but never all at once. The story becomes the unit of planning instead of a use case that may contain dozens of stories.
Agile methods talk about story velocity and it’s an important concept. The velocity is the number of stories coded per unit of time, typically in person days. For example, our current team has a velocity of 5 stories per day. Perhaps story inertia is an even more useful term. Consider the effort in getting a development team moving. The larger the story, the more inertia and effort needed in getting it moving but once moving it’s easy to add more stories and get working code out the other end. An agile process starts by keeping initial requirements concise and simple in a few stories so development can get moving – low inertia. Then stories for the alternatives and exceptions are added, refactoring where necessary. Another benefit: later stories don’t need as much detail as the initial story has already defined the main pathway and show the way.
Contrast this with a full use case driven development in which as many scenarios are analysed and detailed before any coding begins. Picking any use case to start development brings along all its scenarios in one chunk of code. High inertia, a big flywheel to get moving.
-

To document or not
Few people really like documentation. Given the option most would rather try to figure out what to do without reading the manual. Even quick reference guide is hurriedly tossed aside to tryout the latest gadget. It’s probably masculine pride and could account for the agile manifesto’s preference for face-to-face communication over written documentation. I’m not saying the agile manifesto favours masculine traits but it’s true the initiators were all male (http://agilemanifesto.org/).When a new member joins an agile project face-to-face communication is essential to gain understanding of the system its foibles and its characteristics. There’s likely to be little or no documentation to read. Agile modellers may have left behind some light weight foot prints in the form of iPhone whiteboard snaps or maybe a few diagrams, most likely rendered in HTML and accessible only via a browser. But these are rarely up to date, refactoring and continuous delivery will have seen to that. So to return to the question often debated by projects embarking on an agile course, “Should we produce any documentation or not?” Well, it depends…
Given a stable agile project team there’s little benefit in documenting much before coding. Simple user stores capture outline requirements sufficient to continue conversations between developers and business specialists. The story’s success criteria keep QA busy with enough to write test cases and outline scripts. After several iterations and releases all the team are in sync so there’s little perceived benefit in retro documentation and the overhead associated in keeping it in sync. Inevitably team members wax and wane and new requirements challenge the agile approach. The Business, flushed with success of early versions may see new opportunities for additional features way beyond the original requirements. These aspects stress an agile project. Without documentation new members must spend time with experienced team players but those left are over utilised in responding to change requests and bug fixes and can spare little time for the newbies. Without a high-level architectural schematic it’s difficult to discuss the brittle points for the new requirements and the developers talk code rather than packages. (Code has its place but not usually at meetings between the business, architects and project managers discussing the latest marketing ideas for product offerings.)
Documentation helps support the frailty of human memory and schematic models can focus and simplify discussions so that all are on the same page. In the truest agile way these can be generated from a model or created on a whiteboard and don’t have to be lengthy tombs. I’ve found a few core diagrams can be extremely helpful. For example, in a message based order processing application, a state diagram showing the states of an order with its associated events can form the basis for planning development, partitioning stories and organising test cases. While a high-level block schematic can define architectural boundaries and help allocate development teams and identify message interface owners. There’s often little need for pages of descriptive prose or endless sequence diagrams. But one or two physical data models depicting the cardinality between major entities can again focus discussions and ultimately speed development.
-
Blog launched
May 2006 – Objecta launches Blog! Yes, after several requests you can now read Objecta’s blog. [This is now archived].
Yes, it’s true. Objecta have finally gone with the flow and have a blog. After various blogger backlashes and blog-a-away frenzy we’ve decided a simple content friendly blog will suffice.
Objecta will add posts on various IT process and methodology related subjects whenever there’s a need to spark discussion or raise a comment. Topics will include:
- Use Stories, Use Cases and functional specifications – a report from agile Hammersmith.
- The rise and fall of the MDA – what do you mean you thought they were dead, smart phones and PDAs have converged and fit the pocket.
- Streaming Media and Music – some background on how a rich media portal can showcase a mega star (well he’s quite famous)
Keep a watch (but not too frequently). If you’re an RSS hungry predator look elsewhere…
-
AOL added to Objecta’s client
October 2005 – Objecta signs contract with AOL to supply technical analysis services for AOL’s Talk order capture and management systems. Our consulants also help the company look at social network applications.
-
BT Rich Media contract renewed
February 2005 – Objecta wins another contract with BT Rich Media to supply analysis and design services for digital download / subscription based digital assets with major UK artist.
-
Digital photography services added to portfolio
January 2005 – Objecta announce digital photography service for web and print media. Objecta can provide a range of mobile lighting packs to compliment their digital image capture services.
-
Data recovery services announced
November 2004 – Objecta launch data recovery service targeted at the increasing number of laptop hard drive failures. Objecta are looking at server based storage solutions to backup crucial data using full encryption for security.
-
Exhibition artwork catalogued by Objecta
July 2004 – Objecta designers photograph and catalogue artwork for Japanese calligraphy exhibition and produce catalogue containing over 80 pieces of artwork along with an artist’s profile.
-
Exciting venture with BT Rich Media
May 2004 – Objecta wins contract with BT Rich Media to supply business analysis and system analysis consultancy. Objecta bring analysis modelling and UML expertise to BT’s Rich Media joint venture between BT Retail and BT Wholesale. Objecta will work with a specialist core team to scope projects and define requirements for digital asset management and digital rights management applications running on BT Rich Media platforms. This includes package customisation and integration of components from Real Networks and DMDSecure.
