Documentation is a very important part of your whole project and it’s going to be critical long term. Many developers do a really good at managing new features while they are engrossed in the project, however as soon as you have any time break between development most or all that information is forgotten. So when developers return to add new features or make changes they have to look back to understand how everything is organized again. Also when moving from one developer to another developer documentation is absolutely critical.
The purpose of documentation is so that others can easily understand what is going on and carry-on development or make changes as needed.
Outsourcing – Their main concern is the end product, in order to have you sign off on it. This type of hiring almost always leads to absolutely no documentation. The biggest problem with this is that you really don’t understand what is going on and if you have any bugs or problems it takes time to think through and find those.
–> [bottom line] You are going to have to create the expectations and ensure the documentation is updated on a daily basis.
–>[pitfalls] You do not know the technical requirements needed and there is going to be a lot of critical information missing.
In-House – Their main concern is usually quality, and their documentation comes in two different types. Either way too little and not informative, or much too detailed and confusing for others. They will be focused on what they require and not what others require.
–> [bottom line] You will be responsible for controlling the documentation, and somehow knowing what is missing.
–> [pitfalls] Most developers are not used to working in teams and thus make low quality documentation.
Contracting – Their concern is with your end product. Most of the time they run the project fully in-house which means that their teams communicate on a daily basis, and use whiteboards or project boards. The downside of this is that a lot of the documentation is discussed and organized but never written down for long term retention.
–> [bottom line] You will need to ensure that they provide all relevant documentation when the project is completed.
–> [pitfalls] Many companies do not bother to provide that documentation or have it in a proper format to provide.