From a client’s perspective, the most important criteria when developing any new software is that it adds some ‘value’ to his company. Every software application has some financial and some intangible value attached with it. Without it there would be no reason for a client to invest in developing new software or for that matter, upgrading an existing one. The client has some financial goals in his mind when he proposes to develop some software. He plans to make some profit (financial or otherwise) from the development of the software. Whether the financial gains are immediate or peripheral is a different matter.
But it is a complete different scene at the typical software development house. Developers are usually in the dark about the value aspects of the software they are developing. This most often, but not always, leads to a restrained and blithe attitude of developers. Not to squarely put the blame on the developers or management only, many times the fault also lies with the client, who fails to communicate the ‘expected value’ of the proposed software clearly.
As a small reminder, below are six of the most important expectations the client has from the developed software, every other thing hinges on these:
1. Revenue generation from the new application
2. Cost reductions from the new application or upgrade
3. Indirect revenue generation
4. Increase in exiting user base due to some new features
5. Increase in market share
6. Revenue increase in companion application
The points raised above may come as common-sense; but how many times when developing for a client, have you given thought to these matters. We developers and usually busy thinking about the best way to structure the application, the best way to run a SQL query, the best MVC framework; leaving the business and value aspects of the proposed software to the management; who usually do not find it prudent to enlighten the developers’ in that matter. It’s not that the technical issues are not important; what is wrong is the predominant focus on technical issues.
Taking the business and value aspects into consideration during development enables you to view the project from the clients perspective. This in itself makes taking decisions regarding certain technical issues easier. It is even more important for you to take the business issues into consideration if you are a freelance developer, where you are solely responsible for bad project outcome, unlike a company where you can play the blame game and walk away from the mess unscathed.
In a nutshell, a client does not care if you have used the latest MVC framework, or used your expert programming skills to design that perfect algorithm. What they truly care is whether the developed software will garner them some intrinsic value more then what they paid for, which in business parlance we know as ROI. Everything else is just details.
Consider those matters when developing your next project and you will have a win/win project in your hands with a satisfied and smiling client as a bonus.