Have ever the thought of developing a custom application to support a business process crossed your mind? if so, have you feel discouraged by the fact that you never managed a Software Development team before or 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, lets 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 and you know that this process can be improved with the introduction of a custom application that will lower the process cost in worked hours and would increase efficiency. This will free the personnel giving them more time available to attend 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 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 equipment necessary, the licenses, the code repositories, the proper communication tools, a development environment, a testing environment, a staging environment and of course, 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 for you. But 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 normally they 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 hand full 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 negative 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 Analyst 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 is a Software Development Life Cycle?

If you answer ‘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 develop software solutions in a regular base to push them to accept engagement models that provides them with a full team of dedicated developers, project managers, testers and business analysts for fixed periods of time leaving all the risk on your 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 Fixed Budget.

Read more about this engagement model here

The Team Augmentation Engagement Model

If your company develop 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:

  1. 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.
  2. 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.
  3. You have plenty of development work to do. And by development work I mean design, implement and improve Software, not only bug fixing and maintaining.
  4. You require talented developers that can hit the ground running and can add value to their projects.
  5. You plan to retain the developers for a period of at least a year (not always true but the intention is what counts).
  6. You are comfortable managing Software Development Projects.
  7. You have 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. You are entitled for a Team Augmentation engagement

Read more about this engagement model here

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 sensible process such as investigation and development, or development of a very sensible 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 ads 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 relay on his experience to start your project and then after a period of time long enough to make the business interesting for your partner 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

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 the contact page and we will get back to you as soon as possible.