Has the thought of developing a custom application to support a business process ever crossed your mind? If so, have you felt discouraged by the fact that you have never managed a software development team before or that you don’t even have a team of developers for the task? If so, let me tell you that you are not alone. In fact, the process to figure out how to make that custom application a reality is less complicated than you might think.
Evaluating Your Options for Software Development
You will basically have two options: either you develop the application yourself or you hire a company to do it; that’s clear, but what’s in for each one of those options?
Developing the application by yourself will have many downsides (This is experience talking.) First, you must make sure that you have enough experience in the software development field to manage a group of developers with very different personalities and have them work as a team to develop the application. Then, you must evaluate if you have the time to manage this. If you do not, you should have someone within the organization with enough experience managing teams of software developers to take care of the project for you.
When this is solved, you are almost done (not really); make sure to have the necessary equipment:
- The licenses
- The code repositories
- The proper communication tools
- A development environment
- A testing environment
- A staging environment
- Hire a team of developers and testers.
Custom software development companies are, among other things, very good to develop custom software, and they exist in enormous numbers all around the world. They not only know how to develop your application but also, normally have everything that is needed to do it, including the right developers.
It is now time to talk about the engagement model before quotes start reaching your inbox.
The Fixed Budget Engagement Model
You should consider this type of engagement model if you answer negatively to one or more of the following questions:
- Does your company develop software as its main business?
- Does your company develop software to support its main business processes?
- Does your company have any project manager that can be assigned to the development process?
- Does your company have any business analysts to gather requirements from the users and stakeholders?
- Does your company have all the assets needed to develop software?
- Does your company have developers and testers that can be assigned to the task?
- Is your company aware of what a software development life cycle is?
If you answered “no” to more than one of the previous questions, you should be considering a fixed budget engagement. Don’t be fooled, many software development companies take advantage of people that are not used to developing software solutions on a regular basis to push them to accept engagement models that provide them with a full team of dedicated developers, project managers, testers, and business analysts for fixed periods of time leaving all the risk on the client’s side and making sure to receive a monthly payment.
Of course, we love team augmentation engagements, but if you don’t plan to keep on developing software for a period longer than a year, it just makes no sense to adopt a different alternative to a fixed budget.
The Team Augmentation Engagement Model
If your company develops software on a regular basis as its main business or to support its main business, you will be more than accustomed to managing teams of software developers and will probably have a PMO (project management office), which in turn means that you would answer “yes” to most of the following questions:
- You have the capabilities within your company to develop software because you do it all the time either because it’s your business or because you need it to support the business.
- You have everything needed to develop software, including an existing team, project managers, team leaders, QA, testers, repositories, infrastructure, and the list can go on.
- You have plenty of development work to do, and by development work, I mean designing, implementing, and improving software, not only bug fixing and maintaining.
- You require talented developers that can hit the ground running and can add value to their projects.
- You plan to retain the developers for a period of at least a year (This is not always true, but the intention is what counts.)
- You are comfortable managing software development projects.
- You have the knowledge and can manage a determined software development life cycle.
If you answered “yes” to most of the previous questions, it means that you have it all covered. You probably only need more hands (brains, that is) to deliver the work. It would be a good idea to be entitled to a team augmentation engagement.
The Build Operate Transfer Engagement Model
Sometimes, it makes sense to integrate a process directly inside your company instead of outsourcing it because it could be a very sensitive process. Such as investigation and development, or the development of a very sensitive tool or service for the company.
The lack of talented professionals or the limited experience of the company in an area such as software development adds too much risk to the operation.
If that is the case, it would be very important to have a strategic partner with enough experience in the matter to rely on their experience to start your project and then after a period long enough to make the business interesting for your partner to transfer the operation back to you.
If this calls your attention, you are probably looking for a BOT kind of engagement.
There are many more engagement models that can be used for software development. We have just scratched the surface of this subject and mentioned just some of the more common ways to engage in software development projects.
If you have questions or suggestions regarding this post, please be sure to drop us a line in the comments area or on the contact page, and we will get back to you as soon as possible.