If there’s one thing we have learned at Mosaic Software, it’s that our clients have great taste in consultants! At least we think so, but all kidding aside, we want to help you find the right consultant for your business. When it comes to choosing a consultant, it comes down to more than their expertise and how they work. To give you more insights into selecting the right consultant, Matt Brinton, Business Unit Manager at Mosaic Software, provides some thoughtful answers below.
Q: What are the most important criteria for selecting a software consultant?
There are many factors in finding a great software consultant. You’re looking for someone who will deliver high quality work that meets all of your requirements on time and within your budget. Most consultants will promise to accomplish all of this. The big question is around trust. When you pursue custom software work, you’re likely pursuing a large investment that is important to your business. The work of the consultant is likely to reflect directly on you. How do you know that the consultant will deliver on their promises?
Here’s what I suggest:
Q: What is a typical process for working with a software consultant?
At a high level, the process is to define requirements, develop the software, release it and maintain it. Depending on your project this process may be linear or iterative. Agile methodologies allow some detailed decisions to be deferred until some development has been completed, but don’t mistake Agile for “winging it”. A software consultant needs enough requirements up front to create a good architecture that will support the range of decisions that will be made later.
Start by making the foundational decisions. Define your business objectives, identify your users and clarify your use cases. If your project involves a user interface, create a storyboard or mock-up to make sure everyone has a common vision. Even sketches help ensure everyone is moving in the same direction and will elicit some good questions and discussion. Other considerations at this point are to ensure that your consultant has access to data and systems required to do the expected work.
With the big decisions made, you should expect your consultant to come back with a recommended software design including technologies. Even if you don’t understand the details, take time to discuss these recommendations to confirm that you and your consultant are in sync. If your consultant wants to dive in and start writing code, insist on this review first. It’s an investment that will pay big dividends down the line.
As development proceeds, plan regular intervals to answer questions, review progress and see a demo. This might mean participating in sprint planning and review meetings that are part of the agile process, or maybe it’s just a regular check-in. Either way, regular communication and reviews are important to make sure you end up with the results you expect.
Additional steps will include testing, deployment, and maintenance. Each step requires some planning, so start discussions about these topics early in the development process.
Q: What if my project involves creating innovative software? How do I find the right consultant for that work?
Creating a website to market your company or loading customer data into a database are well understood problems that many consultants or off-shore developers could handle without an issue. Innovation is a different story. Innovation involves creating new approaches and solutions to bring new ideas to market. Innovation is often an iterative and collaborative process that involves close and frequent communication between subject matter experts, business leaders and software consultants. For these reasons, off-shore or specialty consultants who focus on developing a limited range of solutions with a fixed approach are unlikely to be a good fit for developing innovative software.
Successfully developing innovative software requires a process of staged development where essential information is obtained with minimal time and expense. Information about the viability of a core technical approach or the performance of a machine learning algorithm supports critical decisions related to technical direction, financial investment, and marketing plans. Obtaining this information quickly allows a company to rapidly innovate and bring new technologies to market. The process for obtaining this essential information typically involves creating proof of concepts, prototypes, beta versions, minimum viable products and additional releases. Clear communication with the software consultants is critical with these types of projects.
Q: How can a great software consultant help me develop the right software?
Not all software consultants are created equal, but a really good consultant can be a very valuable partner through your efforts to create and deploy new software, whether the software runs internally or as part of a new product. You should expect a great consultant to take time to understand your goals, objectives and use cases. They should ask the right questions to ensure that they understand your needs, and they should have the communication skills to discuss those questions clearly with both the technical and non-technical members of your team. A great consultant will consider critical issues like security, performance, integration, scalability, deployment and maintenance from the beginning of your project. They will provide a plan that addresses all of these issues with a clear cost and schedule, and they will engage in productive dialog about adjustments necessary to fit the project into your budget and timeline. Once you have agreed on a plan, they will deliver high quality software according to the budget and schedule that was discussed.
Hiring a software consultant can be a somewhat daunting effort due to the trust you are placing in them. By having appropriate expectations and asking the right questions, you can find a great software consultant that will become a valuable member of your team. They can help you achieve the success you are seeking, even under constraints of time and money.
Leave a comment below if you agree or have advice others could benefit from too!