We are developing a relatively straightforward Windows software application, and the question has arisen of whether it makes sense to outsource to a four-person development team (Project Manager, Architect, Developer, Tester) or rather to a single highly competent developer.
I can see the pros and cons of both options, but the enormous expense and luxury of paying for 4-people on an hourly basis as opposed to one person makes me wonder whether it is worth it. From a testing perspective, we could always have the software tested independently in any case with many of the great online testing platforms.
Has anyone had experience with this kind of scenario? Your insight would be appreciated.
The option with 4 people would be viable if the software requires a very high degree of expertise in multiple fields of IT. This way, it's viable to outsource it to e.g. India, and works very well, as in India there is a lot of experts in various fields.
On the other hand, in Europe and US there is considerable higher number of talented developers with less expertise, but with wider experience, as IT was popular there for long time.
So, if your developer has 20 or 15 yrs of experience, it is equal to 4 people with 5-7yrs experience.
Then, figure out what is your developer really good at and if it is fit for the project e.g.:
This depends on anyone on your staff having the expertise and the time to find and manage the one great developer. You can start on that path, but you may find this to be very difficult.
I resently finished a couple of rooms in my basement. I got some quotes from general contractors and felt they were too high (Like your 4 man team.). Luckily, I have a relative who is a carpenter. I was able to trust him to not only do some of the work, but also provide a lot of advice on hiring, scheduling and managing some of the other work. It required a lot of my time since I had to purchase materials in some cases, do parts of the work, and wait until different people were available. Maybe I could have found a handy-man to to all of this as well (like your single great programmer), but I don't think I would have gotten the quality of work in all areas (The electrical work was more extensive since my current panel was not large enough).
There is no such thing as a "relatively straightforward Windows software application."
In my experience as a software project management consultant I have seen corporations with internal teams as well as outsourced.
I don't know your background and familiarity of software development, but my idea of ideal team composition is a little different. Developers should work in pairs, and for every pair there should be a QA analyst, a UX designer, and a creative web/graphics designer. Every project should have a project manager that is considered a stakeholder in the project and knows the goals and path of the project. Larger projects may have multiple teams of similar compositions under the project manager.
An architect doesn't necessarily need to be project specific. Sure, very large projects may require a dedicated architect, but in my experience architects are involved in the project planning and become unnecessary for the development operations aside from occasional guidance at major milestones.
I think in all cases you need at least one individual who is very qualified in software development that can oversee a project in progress. This may be an internal employee overseeing outsourced development projects, or an individual collaborating with your project managers to translate your requirements into functional components in a logical development path.