The old approach to developing software is broken. Time to stop talking about what you want and start viewing what's possible.
Although I'd been through a classical IT education--discover the requirements, write a functional spec, get the software built, and then deal with the fallout--in my first company we made it a practice to build rapid prototypes based on a whiteboard discussion. We didn't write functional specs; we sat around a table with a business team, talked about the work they did, drew some pictures on the whiteboard, and then went away and built a first iteration of the application. Then we'd come back the next day with the skeleton of the system and the core functionality, and discuss fit and alignment with the team again.
That first iteration was the specification. Based on the client being able to see what the words they'd said the day before looked like as software components, we would add or remove things in real time during the design meeting. I remember one client in New Zealand who hired me to build a suite of interconnected Lotus Notes applications. He and I did the design as described above, and within four weeks I had built (logging 80-hour weeks, mind you) 18 applications. When I asked why he hadn't hired a local firm, he said dismissively, "Because they would have taken six weeks to write a functional specification. You built the system in four."
Based on a recent conversation I had with iRise, a maker of simulation software for designing business software, the approach we took was ahead of the curve.
iRise wants to change the way companies build software. The old waterfall development paradigm has failed so frequently that a new approach is needed. In the view of iRise, the problem is that words are insufficient to describe what business people want.
Business people describe, as best as they can, the system they can see in their mind's eye, and a business analyst captures and documents what he hears. In doing so, the business analyst filters the words through his worldview and then gives them to a developer (who will then re-interpret them according to her understanding).
Months or years later, the system "that the business wanted" is finally delivered. But in addition to being late, it's nothing like what the business wanted at all. Into such a situation we could introduce paper mockups or wireframe diagrams, but iRise has a better idea. That is, because the whole approach is broken, let's start again.
What if, instead of talking about and modeling what the system would look like once it's built, an iRise-trained business analyst turned up for a design workshop. With the iRise software, he has the ability to create a simulated prototype for the system as the business users talk about the system they need.
Screens are designed during the workshop. Buttons are positioned. Sample data is entered. Logic is crafted. The business people get to "see" what their system would look like during the design meeting, and observe the flow and logic behavior as well.
When working with a new client (iRise customers include UPS, General Motors, and BP), an iRise consultant will often call for a two-day workshop with one of the business teams, and using a rapid simulation approach, get through six iterations of the new software within the two-day window. At the end of the two days, the business has a working simulation that can be handed to the IT developers, with the instructions to "build me one of these, please."
Clearly, I'm oversimplifying, but the change is profound. Actually, a next step for iRise is to support automatic code generation for the final application--not at a 100% level, but enough to give the developers a good start. And with the rise of Apple OS X and iOS in the enterprise, iRise has recently extended its simulation software for the development of Apple-based mobile applications.
iRise simulation software is easy enough for non-technical people to use, and the savings in time and money are dramatic. Based on customer use, iRise says it sees typical project cost reductions of 50%, with an equal decrease in time to market. Just as important, by facilitating collaboration between IT and business stakeholders, iRise helps meet the huge and growing demand for "consumer-like" business applications that are elegant to look at and easy to use.
The software is pricey--it's generally for large enterprises. But if you're involved in developing great software at your enterprise, I encourage you to check out a different way of "capturing business requirements" (a phrase I hate, by the way). Rather than using words on paper, run a design workshop with iRise. Use the iRise simulation software to intricately link the expression of desired system attributes with a visualization of what they would look like, in real time.
Michael Sampson is a collaboration strategist and author. You can reach him at firstname.lastname@example.org or +64 3 317 9484 (New Zealand).
The evolution of virtualization has exposed complexities in application distribution and management that we couldn't have imagined in the days of disposable disk images. Our Application Virtualization report will help you get started. (Free registration required.)