Agile methods and custom projects don’t mix, according to conventional wisdom. Clients expect fixed deliverables on a fixed date. How do we unhook them from a fixed specification and get them closer to what they really need? We wrote about this in using agile methods to deliver on a fixed price, fixed time commitment, and now we have proven results from an Assembla customer.
Gravity Jack, a software design studio based in Washington State, eliminates the “I know that’s what we said, but it’s not what we want” conversations by offering a fixed effort/flexible requirements business model.
Gravity Jack creates web sites, designs mobile applications for iPhones, Android phones, and other devices, and produces “Augmented Reality” software. Clients include Boeing, NASA, Nasdaq, MTV and Showtime Networks.
At previous companies Gravity Jack’s leaders had suffered through fixed price, fixed schedule client projects. Delivered software never met the client’s real needs, clients were unhappy, the firms often lost money, and everyone was stressed.
Gravity Jack’s brainstorm: Let clients hire a fixed amount of effort (for example, two developers per month for three months) and give them the tools to observe progress and adjust requirements each month.
This was essentially applying the core tenants of the Agile development methodology: short iterations, regular input from product owners, and the flexibility to reprioritize tasks quickly.
Now, “We never fight with clients,” says Terry Hoy, Vice President at Gravity Jack. “They have a realistic view of what is being accomplished. Every month they can change their priorities. They never feel like we are nickel-and-diming them. Most importantly, they get the web site or application that they really wanted, even if they didn’t know what that was when they started.”
But there are prerequisites to implementing this type of business model. First, you have to be very good at estimating the effort required for each requirement or feature. Second, you need really good communication with the client.
Gravity Jack sets up an Assembla project workspace for each client. All code is checked into a Subversion repository. All requirements files and design documents are stored in the workspace. Key information is kept in a Wiki. And clients receive email alerts whenever code or a document is checked in or some other significant event occurs. The client sees work being competed each day, and can access key documents at any time. Regular communication builds a sense of trust and encourages clients to keep their requirements current.
A big bonus: clients perceive lower risk. If for some reason one wants to walk away from Gravity Jack at the end of a month, they can take over the Assembla project workspace with all of the code, documents, wikis and emails.
Finally, “We never have to say ‘that’s not in the spec.’” says Hoy. “Everything is in the spec. Customers can see the trade-offs and revise their priorities every month based on realistic options. At first we didn’t know if this approach would work, but customers have really jumped on board. The stress level is much lower and everyone is much happier.”
You can find more information about Gravity Jack at http://gravityjack.com/
Check out their unique Augmented Reality concept: http://gravityjack.com/augmented-reality-application-development