We at Inverted Software hear this often: “I hired a consulting company to do work for me. They charged me a certain amount. How do I know if I got a good deal?”
The simple answer is: If you think the work that has been done was worth the money that you paid for it, it was a good deal.
If a consulting company said they will charge you a certain amount, ran late, over budget or delivered a poor quality product, you might want to read on in order to understand how to pick your next software consulting company.
The first rule of picking a consulting company is:
Avoid any software consulting company that rents you developers by the hour!
Developers alone cannot deliver a product.
Sure, they know how to code, but coding is just a part of the process.
Renting developers by the hour and expecting deliverables is like going to a car dealership for a car and only buying an engine. Without wheels, a body and a steering wheel you will not get very far.
A good company will build a team around your project.
A team can include a product manager, project manager developers, QA, DevOps and a Software Architect.
Each of the above team members have a part in the deliverables:
- The product manager will gather the requirements and document the product.
- The project manager will plan the development tasks, sprints and act as a SCRUM Master (More on SCRUM in a later blog post).
- The architect will design the system and oversee the technical development.
- QA will test the code and insure it is bug free at any point.
- DevOps will prepare the development, QA, Staging and production environments, deploy the application and monitor uptime and security.
Assembling a team around your product will insure a successful delivery.
There are three main types of software outsourcing:
Local teams will work from your office, they will interact daily with your staff and existing systems and infrastructure, be a part of your company’s culture and operate as employees for the duration of the project.
Before picking this option, be sure to set up the correct logistics to support staff augmentation.
Remote teams by definition operate offsite. They can reside in the US, offshore or both. When utilizing a remote team, it is a good idea to make sure they speak your language and that the management can correctly capture and understand the requirements.
There should also be some sort daily communication to make sure the project is progressing according to the timelines.
Mixed teams will have the product manager residing locally while the rest of the team is offsite.
This is a great solution for complex projects. Having the product manager interacting daily with your staff while gathering the requirements will insure nothing is overlooked.
You can also start with a mixed team and when you feel the majority of the requirements have been collected, move to a remote team while keeping the lines of communication open between the product manager and your local staff.
Keeping the cost of development down
Once you have chosen a team, how can you still keep the cost down without effecting the project’s success rate?
Clear and defined Requirements
Good requirements are key in the development process. Without them, the development team might have to guess or even develop the same feature multiple times.
To streamline the development process, you can make sure features that have been already developed, won’t change.
Any late change in requirements might compromise the system’s quality, as modifying code is a time consuming task.
Correct sprint planning will help you utilize development time for efficiency.
Inverted Software’s expert project managers are experienced at agile development and can plan sprints for your development team.
Each task must be correctly estimated in order to find its way into the sprint. It is up to the development team to work together with the technical architect in order to estimate tasks length and follow up with the project manager immediately in case of any delays.
If your project has a timeline and a fixed number of sprints, all tasks must fit into the planned sprints.
“The bitterness of poor quality remains long after the sweetness of low price is forgotten” – Benjamin Franklin
When choosing to outsource your software to a consulting company, ask them for a development team that includes product and project managers, QA, DevOps, Architects and developers.
If they cannot provide you with all of the above, you are probably overpaying for under-utilized developers.
Need a quote for your next project?
Call us at 818.262.8552