As a client who hires a vendor for purposes of software development, it is very essential to get a detailed proposal or quotation from the vendor for the proposed application. After getting the detailed proposal, it is equally important to understand the various elements of the proposal so as to make sense of the work needed, the hours estimated and the charges proposed.
These above mentioned two steps will make sure that the client is paying just enough for the quanta of work needed by them for developing their software and not something excessive as per the over-the-top estimations of the vendor.
Sometimes vendors have legitimate estimations of the number of man hours and the number of modules that need to be developed for an application, but many times, these numbers are overestimated to account for slack, change in requirement, bugs, testing and project management.
The overestimation hurts the pocket of the client as vendors will never return the money even if they actually did take fewer hours than proposed to get the work done.
Here are a few tips on getting a detailed quotation:
- The proposal should list all modules needed to make the software.
- Modules should ideally be divided into the following categories:
* project management
* interface graphic design
* frontend components
* controller logic
* backend components
* testing
* resolving bugs
* documentation
* demo
* final deployment. - Each such module should contain list of functionality and features needed. Each such functionality or feature should contain the total man hours proposed by the vendor for doing the task.
Here is an example of a fairly standard list of features to be seen for making an e-commerce and photo intensive online store.Interface Graphic Design
* Overall Template design like header, footer and stylesheet for all pages – 8 hours
* Editing of images using photoshop – 4 hours
* Form elements look and feel – e.g. Buttons/Arrows/Dropdowns/selections etc – 2 hours
Frontend Design
* User Control flow – Overall navigation – 10 hours
* Data Listing – 2 hours
* Prefetching of large images for faster access – 5 hours
* User login – add/edit/delete users – 8 hours
* Forms for enquiries/submissions/data retrieval – 3 hours
* Client side browser processing for various actions like slideshow, events, generating text etc. – 5 hours
* Payment Gateway incorporation – 15 hours
* Secure Transaction signatures – 12 hours
* Generating reports – 14 hours
Controller Logic
* ORM mapping betweeb backend and frontend – 20 hours
* Calculations or complicated algorithms for sorting data items as per price, quantity etc – 20 hours
Backend Components
* Database design for storing items, storing prices, storing user accounts – 50 hours
* Data Archival and Manipulation – 12 hours
Project Management – 40 hours
*Design of application SRS
*Design of application DFD
*Design of application engineering architecture
*Monitoring of the overall development
Testing
* Browser compatibility of interface across many standard browsers like IE, Mozilla, FF, Opera, Chrome – 3 hours
* Tests for controller logic – 10 hours
* Software QA od database and frontend components – 10 hours
* Design of an intuitive interface – 15 hours
* Mocks and Feedback from engineers and client. – 5 hours - Each module must also contain the technologies proposed by the vendor for software implementation. e.g. Ruby on Rails, PHP, clearsilver for tempolates, MySql vs. MsSql etc.
- Furthermore, the vendor must attched detailed Data flow diagrams and engineering architecture diagram to better help the client understand the application control flow
- There should be delivery milestones set in place for each module along with demo dates and final delivery timeline.
- The invoice payments must be broken as per delivery milestone and should Not be upfront upon finalization of order.
Understanding the detailed Proposal/Quotation
It is best advised to seek the help of a professional software/IT consultant to understand a vendor’s proposal.
- Study your software requirements and make sure that the list of functionality/features mentioned in the modules matches the same. There should not be extra features. If so, you can get them removed and reduce the total hours of work needed.
- Look at the technologies proposed for implementation of the modules and confirm with an IT consultant if these are scalable, viable and practical given your software needs. Outdated and old technologies take longer to develop on and are not dependable in the long run. Switching to newer technologoes e.g. switching to ruby on rails from asp.net or from php will save atleast 20% frontend development time for the client.
- Look at the project management hours – The vendors charge this for purposes of fully understanding your requirement and making a list of features needed by you. Save on these as follows:
- Show the number of man hours proposed for each feature to a 3rd party unbiased IT consultant – Seek their advice and understand is the time peoposed is legitimate for that quanta of work. Very often consultants will give you justification for why the time should be reduced saving you vauable money from the vendor.
- Make sure the vendor covers tests for all modules mentioned in the proposal.
- Calculate the price being charged per hour by the vendor and see if it makes sense given your industry and size of business.
Consulting firms and professional IT consultants will often work with you to reduce the vendor’s proposed project management hours and the overall man hours estimated for various modules by as much as 40%. This can lead to huge savings in total price to be paid to the vendor.
Most often, consulting firms charge nothing for initial primary consultation. So always seen their 3rd party, unbiased advice and benefit for this valued service.