How small is too small for distributed setup development?
Kurt asked an interesting question on my philosophical musings blog entry:
The idea of a distributed setup development came up in our development team as well. My question is: Is there a size of the developer team which makes it reasonable to distribute the setup development? If the team is just 2 or 12 person I think it is not reasonable to distribute the setup because you may generate more overhead by putting the setup into small pieces, write manuals for the developers (which will not be read anyway) how to use it, instruct them and handle exceptions (I believe not the whole information of a component should be transferred to the distributed setup).
Honestly, Kurt, I have never really considered how small distributed development should scale down to. I suppose there is possibly a team size where the overhead of distributing the setup responsibility outweighs the advantages. I have to admit I haven't dealt with many development teams with less than fifteen developers.
However, I do believe that the more each developer is involved in the setup process the more likely they are to write code that is easier to install. Easier to install almost always translates into safer to install/uninstall/repair/upgrade/patch thus a better setup user experience overall. More than twice I've seen a developer propose some crazy solution to a problem then toss out the crazy idea when they realized just how much setup code it was going to take support their crazy solution.
I guess I should add the above paragraph to my list of philosophical musings under the heading: When each developer participates in setup development they have a personal incentive to solve problems simply.
Finally, it is very common for a setup expert to provide the initial structure for your project's setup then have the rest of the project's developers own their appropriate pieces. This process is very similar to having one developer set up the initial build system then encouraging all of the other developers to maintain their piece of the build process. Get the project going then get everyone involved to keep all parts of the project maintained.