The #1 key to the success of custom software projects, in my humble opinion, is open communication. If the developer and the customer aren’t openly communicating on any number of levels, the project will fail. The only question then is how severe will the failure be.
There are a few areas I think are extremely important for open communication:
- Customer is completely open about their needs, requirements for the software, etc
- Customer is completely open about their expectations for the project’s budget and schedule, and other areas of the project.
- Developer openly communicates about his capability to do the project given his/her/their abilities and exist schedule of commitments
- Developer openly communicates throughout the project about progress on the software application.
To address each briefly:
Customer open about needs – The customer needs to spend some time on their own working out thoughts on what they need the custom software to do, how it work work for them, what objectives the software will help them attain. The developer cannot understand what to create, and why it needs to be created without getting inside the head of the customer.
Customer open about expectations – The customer should let the developer know when they hope the application needs to be done for their business. And let the developer know the general budget. This will help the developer quickly determine and communicate back whether the customer’s expectations are realistic. If they aren’t, then the two can quickly work to adjust the requirements to fit the schedule and budget, or vice versa.
Developer open about capabilities – Is the developer too busy to realistically take on the project? Does the developer have the experience to create a site with AJAX when they’ve only ever done desktop applications? If the developer can’t do the project for whatever reason, they are doing neither the customer nor themselves any good.
Developer communicates progress – When the developer creates a plan for milestones, or at least status reports and shows evidence of the progress in the project, then trust is built up with the customer. That will make the customer happy. And we all want happy customers.
These items are not in any specific order. Nor are they new ideas. I will admit that they are fairly broad statements.
Regardless, they are areas where the customer and the custom software developer need to talk with each other, be open with each other. If it doesn’t happen one party will misunderstand the other party and it’ll all go south.
I know this from experience watching other projects, and from painful mistakes I’ve made. But life is much better now that I don’t make those mistakes anymore. We also have so much more business now because customers trust us and refer us to other potential customers. So, open communication makes everyone happy.