We have a single trunk. We only deploy of the trunk. We don't do branching unless there's a major refactoring going on that will effect 100's of files.
Instead we never deliver big projects, we turn round fixes very quickly and we pay the technology debt (i.e. tidying up code) up front. This keeps all but the oldest code malleable.
When we add architecture features we will make them optional for users of the relevant library and we like to keep interfaces at the gross architectural level backwards compatible.
However, we aren't so precious about class interfaces. If stuff needs to change we change it and take the pain to update the entire codebase. We do this even if it takes 3 days to merge the changes in.
Interesting. It'd be great to have no technology debt. You must need a fair amount of review (or perhaps pre-view in this case) to be able to do that.
Do you ever work on more than one thing at once? If not why not, and if so what effect does that have?
I think I get you on the core vs non-core interfaces. Some interfaces should be treated like COM interfaces and others are just more for convience than foundation.
Comments 4
Reply
Do you do anything along similar lines?
See also http://dvae.net/blog/2009/08/keeping-your-options-open/
Reply
Instead we never deliver big projects, we turn round fixes very quickly and we pay the technology debt (i.e. tidying up code) up front. This keeps all but the oldest code malleable.
When we add architecture features we will make them optional for users of the relevant library and we like to keep interfaces at the gross architectural level backwards compatible.
However, we aren't so precious about class interfaces. If stuff needs to change we change it and take the pain to update the entire codebase. We do this even if it takes 3 days to merge the changes in.
Reply
Do you ever work on more than one thing at once? If not why not, and if so what effect does that have?
I think I get you on the core vs non-core interfaces. Some interfaces should be treated like COM interfaces and others are just more for convience than foundation.
Reply
Leave a comment