When to Approach a Software Consultant
Software development is a maze of technologies, risks, and budget considerations.
When your goals are clear but you're not sure how to get there, a software consultant might be your best bet.
What is software consulting?
In its most watered-down definition, consulting is paying someone for their opinion. But opinions are only as good as the business value they bring.
Software consulting means providing an expert opinion that will:
- Verify assumptions that can lead to profit or wasted investment.
- Determine if the software or a feature is profitable.
- Increase software security.
- Anticipate changes so that software keeps bringing revenue and remains secure years after it is built
Consulting can be a standalone service. You can hire an individual specifically for this job.
It can also be part of the software development service. When you start a project with a software development company, they will connect you with a software consultant.
By working with a software consultant, you will increase the chance of project success and minimize the risks of failure.
What does a software consultant do?
There are software professionals who work solely as consultants. In our software development model, a chief technology officer (CTO) performs the role of a consultant. A CTO is an expert in technology and business, the two things that spell software success.
Simplify information
Some consultants will present more information than a client can read. A good consultant takes care of the stuff that is hard to read.
When working with non-technical founders, their job is to bring all the technical stuff to the table -- in a language that everyone understands.
Present technical details
As a developer with hands-on experience, a consultant can work with technical business owners.
Different levels of experiences
The most successful software consultants are software engineers who have amassed a significant amount of experience. They have spent years acquiring experiences and working with different technology trends. This gives them the intuition to suggest solutions that make the most sense for a project.
Who is software consulting for?
Companies that make money off of software products.
EdTech, e-commerce, and software as a service (SAAS) companies make money directly off of their software.
Let's imagine a scenario where an EdTech company wants to launch a new product that gathers student input so that teachers can create an effective remote curriculum. Many questions go into implementing this new feature.
Business-side questions:
How does a new feature add value to the product?
Will it add a competitive edge?
Who are the intended users?
Will the feature put the product in a new market?
How many human hours are needed to complete the feature?
Technical questions:
What technologies are needed to complete the feature?
Are your existing developers capable of developing the feature?
Will the product acquire technical debt to meet the target deadline? If yes, how will it be corrected in the future?
If external help is needed, how will it be integrated into the internal team?
What aspects of the development will be outsourced?
What measures should be taken so that the new feature will integrate seamlessly?
Businesses that rely heavily on custom software for operation
Investing in custom software brings unique advantages to a business. The downside? Custom software can be neglected. With an "If it's not broken, don't fix it" attitude, it is easy to push updates to a later date. Custom software can accumulate massive technical debts that can lead to serious performance and security issues.
Custom software running on outdated programming languages is difficult to maintain. It can be just as hard to find developers who can work on those languages.
When updating old software, a consultant will help:
- Identify what needs to be worked on immediately.
- Identify the right tech stack to use for the context of each problem.
- Create a plan to bring the software up-to-date without causing downtimes.
- Create a plan to distribute work efforts over a reasonable amount of time.
Individuals or businesses who want to build new software
"I have an idea for an app!" is a sentence that rarely leads to a great product. A software consultant can help you work out some of the most difficult questions when building a new app:
Are there similar apps in the market? How can you differentiate your app from theirs?
Who are your intended users?
How will your app make money?
How do you go about building the app?
Who are the people you need?
From idea and inspiration, there is a slippery slope to discouragement. A software consultant will shed some light on the most critical aspects of building software.
Software consultancy in the different stages of development
When is the right time to get software consulting? As always, it comes down to context.
The Idea Phase
In the idea phase, no code has been written yet. No business plan, no funding, just an idea that may or may not work.
In this phase, a software consultant will work with you to put into words your assumptions about what the app might do. They will turn these assumptions into software requirements. These are technical descriptions that will guide developers into building the software as intended.
This is also a phase to think of what other things an app can do.
The MVP Phase
After the idea is turned into software requirements, it is time to build working software. In this phase, a consultant will guide you into building working software in the shortest amount of time, with the least number of hands, and a minimum set of features.
Welcome to the MVP phase.
A Minimum Viable Product puts an idea to test at the lowest cost. The role of a consultant in this phase is to help you create software that shows the core value of your product. This is where their business acumen and hard technical skills come into play.
You will find out that your users will use the product in ways that you did not imagine before. You will see ideas that you thought were gold go into the trash bin.
But you will also see the software's potential for greatness.
This phase will set the direction to take as software development moves along.
Production Phase
Continuous delivery has been making headlines in software development. It should not be confused with continuous deployment, the phase when new releases are rolled out to end users. Continuous delivery is where new updates are constantly prepared for release.
During production, there are some questions that need to be answered to meet your goals and work with your restraints:
What features should be worked on first?
How will new features affect existing ones?
How often should you release new updates?
Is it a good idea to release multiple versions of the same app?
What marketing advantage do you get by releasing a feature? When is the most ideal time to release a feature?
A software consultant can help you answer these and many other questions.
Retiring/Decommissioning
Software systems do not exist in isolation. Retiring software requires careful strategizing so that it does not affect current systems and end users.
There are some aspects of retiring software that a consultant can help you strategize how to:
Migrate users to new systems
Choose migration tools
Update existing documentation
Archive existing data, code, and documentation
Rework connected systems (so that they are not affected by the retired software)
Enhancing workflows
A software consultant does not always necessarily work on a product. They can provide valuable insight into helping a team become more productive. For example, a software consultant can help a team structure how to automate their back-end operations.
A software consultant may also provide expertise in specific languages. For example, a project may require a .NET application design for a certain phase. A consultant can jump in until the success criteria are met.
Misconception about software consulting
Myth: Hiring an external software consultant means that an in-house development team cannot do their job.
Fact: Consultants bring a new way of thinking to a team. Out-of-the-box thinking often leads to innovation.
Myth: Consultants swoop in to solve problems.
Fact: While consultants are equipped with extraordinary problem-solving skills, they are there to rethink the problem. They give options that work best in the context of the problem they are trying to solve. They engage business owners and in-house development teams in working out the solution. This way, consultants are not just patching holes in the roof. They help businesses learn the know-how of doing it themselves.
Myth: Software consulting is only for big enterprises.
Fact: Small businesses can also benefit from consulting. First, it can reduce the time to market. This reduces the cost of development. It also shortens the time from when an app is started to the time it starts generating revenue.
Myth: Working with an external consultant compromises data security.
Fact: A reputable software company will proactively put non-disclosure and privacy agreements in place before starting work with your company.
What makes an excellent software consultant?
Knows how to write good code. Software consulting is a technical skill. A good consultant is bilingual in the language of business owners and developers.
Understands the business side of software. This comes from experience in strategizing software products. Work with a consultant who has records of making software products profitable.
Possesses project management skills. The day-to-day management of a project goes to the project manager. But the software consultant takes care of the bigger project -- the business itself. They need to possess the skills to:
Mitigate risks
Set goals
Identify timelines for releases
Manage teams
Manage budgets
Can manage deadlines. With so many moving parts, software development rarely meets deadlines. A consultant anticipates blockers, dependencies, employee churns, and other unknown unknowns.