Client Versus Software Developer
In every business, everyone has different concerns. The concern will determine their target and attitude. So is the IT world. Client and developer sometimes will differ for the job that client assigns to developer.
I want to share my research about the outlook of client and developer when I am working as Project Manager in a IT company.
Client and developer will start the agreement by creating timeline. What is timeline in the outlook of client and developer? Client will see the timeline as a time to see when the system will be done and released, while developer will see it as an estimation to finish it, not the exact time . Why developer see timeline like that? Because when the development is running, the unpredictable issue can arise. So, actually developer cannot give the exact time when the system will be delivered perfectly.
Everyone don’t like bug (on system), so do client and developer. But, the reality is “bug free is a myth”. Client will complaint to developer if the bug is exist because they see bug as unfinished feature. Unfortunately, developer cannot guarantee that the system they built is bug free because they see a bug as a part of the system. They know that if today they don’t find any bug in the finished, someday the bug can be appear.
Developer hates new request in the mid of development cycle. Why? Because when new request come, it will interfere the development cycle, i.e. timeline, deadline, on-progress feature. But, most of client like to give new request in the mid of development process. They think that their idea will accomplish the system. For them, new request means one step closer to perfection.
Payment is a form of commitment from client to developer. Developer will receive amount of money if they finish the system. Client will see that their main target is the system finished, and the payment is the consequence of getting good system. But, developer will see that the payment is their main target. How do we know that it is the main target or not? We will know it if we remove it (the payment). If we remove “payment” from the procedure, client will happy because the will get the system without any payment. But, the system will not be done by developer if client don’t make any payment.
So, what is the win-win solution for getting and delivering good system?
- Make a timeline with an enough buffer. I mean if the system is big, give more time buffer for unpredictable issue.
- Client and developer must agree that the system is potentially have bug(s). But, the developer also must agree to minimize the possibility of the bug to arise.
- Consider about version 1, 2, 3, etc. instead of change the running development process.
- Give the appropriate payment to developer, and developer must commit with their job then.