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, this is a very common scenario, and the process to figure out how to make that custom application a reality is less complicated than you might think.
Back to our example, let’s imagine for a moment that one of your company’s departments is struggling to keep up to date with a very manual and time-consuming process. You know that this process can be improved with the introduction of a custom application that will lower the process cost in work hours and increase efficiency. This will free the person, giving them more available time to attend to other tasks. In other words, this application will pay for itself and will make you look like Gandalf to the rest of the company.
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. After this is solved, you are almost done (not really); you must make sure to have the necessary equipment: the licenses, the code repositories, the proper communication tools, a development environment, a testing environment, and a staging environment, and of course, you must hire a team of developers and testers.
If you have read this far and you have realized that you don’t have many of the previously mentioned needs, you might be sensing that this option is probably not the right one for you, but you are still convinced that the application is needed, and thank God there is another option.
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 they normally have everything that is needed to do it, including the right developers. That is a good starting point, and let’s assume that after some research, you finally narrowed a huge list to a handful of potential providers. 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:
1. Does your company develop software as its main business?
2. Does your company develop software to support its main business processes?
3. Does your company have any project manager that can be assigned to the development process?
4. Does your company have any business analysts to gather requirements from the users and stakeholders?
5. Does your company have all the assets needed to develop software?
6. Does your company have developers and testers that can be assigned to the task?
7. 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. Read more about this engagement model here.
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:
8. 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.
9. 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.
10. 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.
11. You require talented developers that can hit the ground running and can add value to their projects.
12. 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.)
13. You are comfortable managing software development projects.
14. 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 is entitled to a team augmentation engagement. Read more about this engagement model here.
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, but 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 of time long enough to make the business interesting for your partner to transfer the operation back to you.
If this case calls your attention, you are probably looking for a BOT kind of engagement. Read more about this engagement model here.
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 the contact page, and we will get back to you as soon as possible.