I was talking to a friend, Dave, at a party this summer. He told me how the company he worked for (we’ll call it ABC Corp.) was working on a contract for another firm (we’ll call them OtherComp). ABC spent a great deal of time working on the database and software design for this very large project. They wanted to be sure that they got it right. However, 6 months into the contract, a competitor (EnemyCorp) approached OtherComp and said they could do the job better and quicker. OtherComp looked at what ABC had produced so far, mostly design documents, and decided that they’d see what EnemyCorp could do. EnemyCorp dived right in and started coding. They produced prototypes and according to my friend were definitely not doing a great job on the whole project. He suspected that after a while, ABC would be called in to clean up the mess that OtherComp bought from EnemyCorp.
I told Dave that this sounded pretty typical and wasn’t in the least bit surprising, actually. You have to feel out your customers to see what they’re looking for. This customer wanted to see something. Not a document. A working application. Something they could look at and “touch” to determine how they liked it. Something they could point to and comment on. Tangible progress.
With any large project, there’s a need for solid design work. However, some customers don’t have the patience to wait months or years to see the real thing. Plus there’s no guarantee that your design will be perfect either. For some projects, perhaps a prototype that goes along with the design work (or as some of the design work) would be more appropriate. This could go a long way to convince your customer that you’re really making progress and keep them from getting distracted by another company. Watching out for your customer’s best interests should be at the forefront of your activitites, but that might mean watching out for your own interests as well.