How to Choose a Software Development Partner for Critical Business ProcessesCy Naumenko
You need software to run a critical business process in your firm and have decided a custom solution is right for you. You’ve thought through your needs and the business problem you need to solve. Now, how do you select a software development firm that can deliver exactly the right software?
Do you want to go with a large IT company or a smaller firm? Do they have experience in similar projects? What are their technological expertise? These questions are important to address because the answers will have a big impact on the outcome of your project. After all, your project is critical to your business, it will be solely designed to support your daily operations. It must be able to run seamlessly, particularly when your business functionality will be dependent on it.
First off, realize that selecting a custom software company is about creating a long term relationship that will grow over time. The right firm will come to understand your business processes as well as you do and will become an important trusted advisor. They can be your window to a world of expertise that you don’t have. They see what other firms are doing successfully with their software and can make critical strategic recommendations.
Next, explicitly think about what success really means for this project. After all, you’re building software for a particular purpose. It’s a tool to solve a particular business problem. Perhaps success means increasing your top-line revenue. Perhaps it’s about reducing a particular line item in the cost section of your financial statements. Or maybe it’s about reducing risk in a particular business process. Understand what success means, and understand what objective metrics demonstrate that success.
Now think about the partner you need to achieve that success. Proof that they consistently deliver on-time and on-budget is of course essential. But look at their portfolio and consider the following.
- Enterprise Level Software Developers: Select a firm that develops “enterprise level” software. This is a software that has a high level of robustness, quality, feature set, scalability and ability to integrate into other enterprise systems. This is a critical business process that your software needs to facilitate and a lot depends on it. This is not the place to cut corners. Developers of websites or small applications for small firms are not likely to have the insights, experience or systems to develop enterprise level software.
- Full Solution Providers: A firm that can develop a full solution from requirements, design, development, quality assurance, deployment and ongoing support. For example, a firm that only did the software development would then require you to hire an alternative firm or have you be accountable for the remainder.
- Specialists in Right Size of Projects: The systems and processes used by a software development firm are optimized for a particular project size. One software development firm may be optimized for website projects in the 100 person-hour range, and be really great at that. And another firm may have fantastic success with large software development projects in the 10,000 person-hour range. But both of these firms would add risk to a 1,000 person-hour project – the small-project firm because of their necessarily less sophisticated project management processes and oversight, and the larger one could bury the project in bureaucracy.
- Care About your Project: The best relationship you will have in a software development project is with a company that truly cares about your business. What this means in practice is a firm that is not so large that you are just another client to them. The best motivation you will receive is where the success of the project is just as important to them. What you’re probably looking for here is the ability to escalate issues to the executive level of the firm to make sure critical problems are addressed. Also appreciate a process that makes sure the executive interacts with your own project oversight. This assures attention to the long term relationship and success, not just the current project.
- Know your Industry / Culture: At many points in a software development project the development team must make judgments about details. There are far too many details to ask for clarification about every one, and only limited detail can be provided in written requirements or design documents. So the judgment of the people on the ground is essential. If your software development team has experience in your industry, culture or development methodology this can significantly increase the chance of success.
- Long Term Relationship: Your immediate development project may last for a few months, so most firms can keep their development team together for that period. But what about when you need to do some enhancements in three years’ time? The best firm will have long-term staff and have the same team around, individuals that are already familiar with your business processes and your code. As a predictor of longevity, you will want to work with a company that has been around for a long time, and has a great track record of many long-term clients.
- Tightly Integrated with Your Team: While significant portions of the work will be delegated, you will want to retain tight oversight of the details and may even want to do some parts of the project in-house when you have staff availability. You may want to regularly meet with the project managers, analysts, and probably from time to time with the developers, database administrators, and other technical staff to clarify on certain deliverables. A firm that is willing and able to give you direct access to their developers and other technical staff is a must.
- Ability to Ramp Up and Ramp Down: There will undoubtedly be times during a longer project that you need multiple teams working all hands on deck. There will be other time where there will be a lull in development. You want a firm that does regular project work so they are able to accommodate those ups and downs and have other projects to fit into the gaps. You don’t have to pay to keep your dev team on standby with a firm like this, that comes for free, and they keep getting better by working on other projects in the meantime.
- Proven Process for Project Success: The firm you hire must have a team that has worked together for a long time, where everyone know their role and are held responsible for their commitments. The accountability you need will come from a firm that tracks project progress (e.g. weekly comparison of earned value against budget), quality (e.g. number and severity of issues by phase), and continuous improvement (e.g. mid project check-ins, end of project debriefs, etc.). Ensure you are aware about their systems and processes so that they can prove the projects are on track or at risk, and objectively demonstrate their history of success.
- Be A Trusted Advisor: What this means is a team you can turn to for any IT questions and solutions. If they can’t provide the answer, they know someone who can. This is a firm that you can give instructions to, and then not give the matter a second thought because you know the right solution will be delivered. This is perhaps the hardest characteristic to quantify. But references for past projects are an excellent start.
Picking the right enterprise level software company is difficult. But spend the time to do this right. It is one of the most important factors for the success of your project.