A world without version control
The requirements were open to interpretation but the customer had fixed a delivery date. Everything had to be completed by the end of the month. The team quickly agreed how to tackle the project:
- the system would be broken down into components
- development of the components would be shared, but each component would have a single owner who would take primary responsibility for its completion
- the project manager would take sole responsibility for integrating the components into the final system
- all work would be peer-reviewed
Because of the short timescales, the team adopted a simple project infrastructure:
- the source for the components would be shared using a combination of email and a networked drive
- concurrent modification of the components was prohibited; each component’s owner took responsibility for evaluating and merging in changes suggested by other team members
- change logs would be included in the component headers
- version numbers would be included in the component headers, and reinforced using a simple file naming scheme (component_V001, component_V002, component_V003, …)
- final assembly of the components into the finished system would be done at the end of the project
- to produce the best possible finished system, final assembly would be left until the penultimate day of the month
Feedback
-
Here's a follow up note to this post.