You can see how AI can serve your business, and let‘s now see how to estimate a software development project to create an AI solution. This involves the following steps:
1. Setting expectations from this estimation exercise
You would work out your exact business requirements for developing an AI solution, moreover, a part of the cost will be the development manpower cost. In fact, this is one of the largest factors contributing to the overall cost to develop an AI solution. The business requirements will drive the consumption of resources like IT infrastructure.
This estimation exercise will provide you with a framework to build a cost estimate, subsequently, you need to input the variables like the number of features, labor rate, etc. The framework explained here doesn‘t arrive at an exact dollar figure since we don‘t know the number of features and labor rate at this point.
2. Understanding the estimation variables
Our estimation exercise will use the following estimation variables:
- Number of features: You will need to input;
- Manpower: The framework will help you to work out a range in person-months;
- Labor rate: You will need to input;
- IT infrastructure cost: The framework will show how to derive an estimate based on your consumption;
- Tools cost: The framework will explain how to derive an estimate based on your requirements;
- Administrative cost: You will need to input.
If you need help in deriving a budget-quality estimate from this framework after you have finalized your requirements, we at DevTeam.Space can help you with our robust data-driven processes.
3. Choosing an SDLC model
You are likely considering AI for a strategic transformation in your business. Such projects typically have a well-defined set of requirements, moreover, projects like these require thorough reviews after key milestones.
Waterfall SDLC model works well for such projects since it stresses on baselining the requirements as well as reviews after every phase. The phases are as follows:
- Requirements analysis;
Read more about the Waterfall SDLC model in “What is software development life cycle and what you plan for?”. This estimation exercise will cover post-deployment and warranty support sub-phases with the maintenance phase, and not the long-term ongoing maintenance. Keep this in mind when budgeting the cost to develop an AI solution for your business.
4. Determining the AI capabilities you need
You need to identify the functional features of the proposed AI solution. Reviewing popular AI apps could help with this, therefore, I suggest you read “10 best AI apps of 2019”.
For the estimation purpose, you also need to determine the AI capabilities you need. I recommend that you plan to include the following broad AI capabilities:
Hire expert developers for your next project
- Machine Learning (ML), which could include deep learning, supervised learning, and unsupervised learning;
- Natural Language Processing (NLP), for answering questions, generating texts, etc.;
- Vision, e.g., image recognition;
- Speech, e.g., text-to-speech and speech-to-text.
Read more about these capabilities in “Artificial intelligence: definition, types, examples, technologies”.
5. Choose the right team composition
Your team for this project should have the following roles:
- A project manager (PM);
- An IT architect;
- Business analysts;
- UI designers;
- AI developers, covering capabilities like ML, NLP, vision, and speech;
- Web, Android, and iOS developers assuming you will offer the AI app on web and mobile;
- DevOps engineers.
If you are weighing between hiring freelancers vs a field expert development team, I recommend a field expert development team, given the project complexities. I have explained this decision-making process earlier in “Freelance app development team vs. field expert software development teams”.
6. Document the estimation assumptions
I make the following assumptions for the estimation exercise:
- You will use a Platform-as-a-Service (PaaS) platform for developing the web app.
- This project will utilize a Mobile-Backend-as-a-Service (MBaaS) platform for mobile app development.
- You will use application programming interfaces (APIs) to implement key AI capabilities.
- The team will use reputed tools and frameworks like IDEs and test automation frameworks during this project.
Using platforms and tools can expedite the project, and I have explained this earlier in “What is the best development approach to guarantee the success of your app?”.
7. Estimate the development manpower
I will now describe the manpower estimation by phases, and I will show the split of effort across roles. This estimation is as follows:
7a. Requirements phase
The estimate for this phase is 6-8 person-months, and the effort should be split across the roles in the following manner:
- PM: 25%;
- IT architect: 25%;
- Business analysts: 50%.
7b. Design phase
The design phase will require 24-30 person-months, and the role-wise effort distribution is as follows:
- PM: 8%;
- IT architect: 8%;
- Business analysts: 8%;
- UI designers: 8%;
- AI developers: 36%;
- Web developers: 8%;
- Android developers: 8%;
- iOS developers: 8%;
- Testers: 8%;
- DevOps engineers: 8%.
7c. Development phase
The estimate for the development phase is 39-46 person-months, with the role-based effort distribution as the following:
- PM: 7%;
- IT architect: 7%;
- UI designers: 14%;
- AI developers: 30%;
- Web developers: 10%;
- Mobile developers: 18%;
- Testers: 7%;
- DevOps engineers: 7%.
7d. Testing phase
The testing phase requires 26-33 person-months, and the effort distribution across the roles is as follows:
- PM: 5%;
- IT architect: 5%;
- UI designers: 5%;
- AI developers: 15%;
- Web developers: 5%;
- Mobile developers: 10%;
- Testers: 50%;
- DevOps engineers: 5%.
7e. Deployment phase
This phase requires 2-3 person-months, and the following is the effort distribution across the roles:
- PM: 10%;
- IT architect: 10%;
- DevOps engineers: 80%.
7f. Post-deployment and warranty support phase
This phase requires 42 person-months, assuming a 3-months warranty period. The role-based effort distribution is as follows:
- PM: 7%;
- IT architect: 7%;
- UI designers: 7%;
- AI developers: 28%;
- Web developers: 7%;
- Mobile developers: 14%;
- Testers: 23%;
- DevOps engineers: 7%.
8. Estimate the PaaS platform cost
I recommend that you use AWS Elastic Beanstalk for developing and deploying the web app. Elastic Beanstalk is the PaaS offering from AWS, and this offers several benefits, e.g.:
- You don‘t need to manage cloud infrastructure since Elastic Beanstalk manages it.
- It also manages the operating system, middleware, and runtime environment, therefore, you can focus on development.
- Elastic Beanstalk makes it easy for you to use database resources, moreover, you can easily integrate 3rd party APIs.
- It‘s easy to use the AWS DevOps toolset, moreover, you can easily scale the web app using the autos-scaling solutions offered by AWS.
You can find the pricing plans for Elastic Beanstalk here, and your architect needs to arrive at a computing resource consumption profile for your app.
9. Estimate the MBaaS platform cost
AWS Amplify is the MBaaS platform offered by AWS, and I recommend that you use it for mobile app development. You get various advantages, e.g.:
- Amplify manages the cloud infrastructure, therefore, you don‘t need to build and manage the mobile backend.
- You can easily implement key mobile app features like user management, security, and push notifications when you use Amplify.
- Integrating 3rd party APIs is easy with Amplify, furthermore, you can easily scale the mobile app with it.
You can check out the AWS pricing plans here.
Hire expert developers for your next project
1,200 top developers
us since 2016
10. Estimate the cost for AI/ML APIs
You can expedite the project by using APIs for core AI and ML capabilities, and Google offers APIs for these. These APIs are as follows:
10a. Google‘s Vision AI
Google‘s Vision AI APIs can help you to incorporate AI vision capabilities e.g., image recognition. Your app can detect objects automatically with the help of this API, moreover, it can gain intelligence from the images.
10b. Google‘s Speech AI
Google offers text-to-speech APIs, and you can access it here. With this API, your app can convert text to human-like speech in over 100 voices, and the API covers over 20 languages.
The Google text-to-speech API documentation is here. For its pricing plan, you need to contact the Google Cloud sales team.
You can find Google‘s speech-to-text APIs here, and this API can recognize 120 languages. The API uses neural network models to convert audio to text. You can find the documentation for Google‘s speech-to-text API here, and you need to contact the Google Cloud sales team for the pricing information.
10c. Google Cloud ML Engine
Google offers a managed service for ML, and it‘s called the Google Cloud ML Engine. It‘s a part of Google‘s AI platform, and you can build ML projects using it.
It offers several features, e.g., distributed ML training of computers, portable models using the open-source TensorFlow SDK, etc. You can find its documentation on its webpage, and you need to contact the Google Cloud sales team to obtain the pricing information.
10d. Google Natural Language Processing (NLP) API
Google has an NLP API, and you can access it here. This API enables your app to analyze text, moreover, it offers the following capabilities:
- Sentiment analysis;
- Entity analysis;
- Entity sentiment analysis;
- Content classification;
- Syntax analysis.
It‘s a REST API, therefore, accessing it is easy. You can find its pricing guide here, however, you will need to contact the Google Cloud sales team to procure it. Your team can access its extensive documentation here.
11. Estimate the cost of other tools
While IDEs like Eclipse, IntelliJ IDEA, Android Studio, or Xcode have no additional cost, you might incur costs for other tools, e.g.:
- You need a test automation aid to test your web app against a wide range of browsers. It should also help you to test your mobile app against a large number of devices, and Experitest offers its Mobile Device & Browser Lab on the cloud for this. You can find the Experitest pricing plans here.
- A robust project management tool is important in this project, therefore, I recommend that you use Wrike. You can find its pricing plan here.
12. Estimate other costs to develop an AI solution
Take the example of the hiring cost. You will likely hire Python developers, moreover, you need to consider the AI capabilities that you need, e.g., ML.
Remember that AI is a niche area. Depending on your local labor market, you could find it hard to hire AI developers. As you know, the more the hiring lead times are, the higher is your project risk!
As a rule of thumb, when you deal with niche technologies, you should plan for a higher contingency budget. You should do that for this project too.
Wondering how to hire AI developers? We at DevTeam.Space can help you! Check out our guide “How to find a good software developer” to learn more about our capabilities.
Hire expert developers for your next project
How your development approach impacts the cost of AI
How do you plan to approach the development project? This impacts your the cost to develop an AI solution also. Let’s consider a few influencing factors, which are as follows:
- Your choice of the IT architecture pattern can impact your development as well as maintenance costs.
- If you’re developing AI-powered mobile apps, then what kind of apps are you building? While native apps deliver the best “user experience” (UX) and performance, they cost more to develop and maintain than hybrid apps.
- How would you test your AI-powered mobile app against a wide range of mobile devices? You need a mobile device lab on the cloud, e.g., the Experitest mobile device & browser lab. You need to budget for this.
I have earlier referred to our guide to formulate an effective development approach, and you can consult it for more insights.
Application security and its impact on the cost of AI development
You will likely use AI for a strategic, high-profile use case, wouldn’t you? Naturally, you need to secure your AI-powered app from cyber-attacks.
How would you do that? You need to follow development and project management best practices, however, you also need to invest in security solutions.
You need to consider the following in your estimation:
- The development and project management effort to mitigate top application security vulnerabilities like injection, broken authentication, using outdated software components, etc.;
- The cost for security solutions like next-generation firewall, antivirus, and real-time threat intelligence;
- The cost to implement multi-factor authentication (MFA) and encryption;
- The development effort to secure the APIs you develop using techniques like digital signature, authentication token, etc.;
- The testing and DevOps effort to include security and compliance testing in your CI/CD pipeline.
Do you need help to secure your AI app? Our guide “How to secure your Fintech app” is just what you need.
Consider reviews while estimating AI software cost
I once again remind you that you are likely undertaking an AI development project for a high-visibility use case. You need success in this project, don’t you?
Well, software quality plays a big part in your success! You need to implement sound verification and validation. We already addressed validation when we talked about testing.
Verification involves review, and you need to budget how this will increase the cost to develop an AI solution. You need experienced reviewers to ensure the quality of your requirements, design, test plans, test cases, and code.
How do you find experienced reviewers? We at DevTeam.Space can help, as I have explained in “Why choosing DevTeam.Space to review your code can ensure your software product is a success”.
Planning to develop an AI solution for your company?
I have just demonstrated how you can estimate the cost to develop an AI Solution for your company, however, executing the project is a different ball-game. AI skills are niche, therefore, this will likely be a complex project.
You should consider engaging a reputed software development company for projects like this. Read our guide “How to find the best software development company?” to find such a development partner.
Frequently Asked Questions
AI stands for artificial intelligence. It is the ability of a computer program of system to learn and understand complex notions such as emotions etc.
AI is different from ML in that artificial intelligence is a far more advanced version of machine learning. The lowest forms of AI will be able to understand such things as emotion as well as being capable of high levels of machine learning.
If you are looking for expert artificial intelligence developers then head to DevTeam.Space. The platform has experience creating sophisticated AI and ML solutions.