Can successful custom software development projects be developed outside the customer site? I not only think they can, I think they should always be developed outside the customer site.
The first reason I believe a custom software development should be done offsite is to control scope. A project developed on site is prone to constant scope changes due to the proximity of the software developers to the project stakeholders and end users. It is so easy for a customer to walk down the hall and have an informal meeting with one of the project’s developer. A lot of times these informal meetings trigger an informal scope change that bypasses the project change control structure and is noticed by the Project Manager when it is too late. Some may argue this is defective Project Management. I believe this is onsite software development reality. Customers commit to requirements better when the work is done offsite.
In my experience most offsite custom software developments are delivered on time. Again, it is so easy to simply tell a customer down the hall that the project is going to be late, “but you know we are working hard and we stay late everyday”. Offsite teams do not have the luxury of having the customer see how hard they work or how late they are staying or how complicate the logic really is. Consequently, offsite teams need to demonstrate the customer how hard they work by delivering quality software on time without excuses.
Usually, the offsite location is a more relax place for developers to work and a more relax software developer produces higher quality code. Software Developers have special needs. Software Development is as much art as science. Thus, to be more productive Software Developers need a working space that permits their creativity to flow in their own terms. This can be no dress code, flexible working hours, all you can drink coffee, or even a no questions ask thinking sofa. I have yet to see a customer site that offers contract software developers an office space where they can feel relax and not stress out that the customer is watching how they are working.
Sure there are downfalls to working offsite. For example, communication between the software development team and the customer can flow a little bit slower. The customer might think the work being performed is easier than what is the reality and thus, wants the project to be complete on a shorter time frame. But the truth is a good Project Manager can handle these “shortfalls” as normal project risks and deliver an improved customer experience with an offsite software development team.
I urge you to try out your next custom software development offsite. You will be impressed with your results.