The conclusion I draw from this and my own experience having migrating my fair share of source trees is that the version control system is a first order effect on software, along with two others - the build system and the bugtracker.Without those, you are forced to rely entirely on your brain to keep track of everything. My brain is already full of useful facts about sci-fi, comics and role playing games.
Those choices impact absolutely everything else. Things like IDEs, by comparison, don't matter at all. Even choice of methodology might matter less. Although I'm betting there are plenty of software and management teams out there that see version control, build systems and bugtrackers as being incidental to the work, not mission critical tools.
The only successful software projects that can work without those three are one off, one programmer projects made to be thrown away. As soon as you start changing existing code, it's madness not to keep track of changes on the very likely chance you may want to go back to a working version.
I find it a very sobering thought that of my last four jobs, at least two of the three items were missing and I had to implement the missing ones.
During one job interview I was horrified to discover that they had no build process. Each developer just built their program, refreshing their code from the source tree when they felt like it and then uploading it for testing.
If there is no build machine getting the latest code and building the software in a pristine environment, how...
- How do you know what you are building?
- How do you catch code that hasn't been checked in?
- How do you combat the "It works at my desk" syndrome?
- How do you make sure every developer has an identical code base?
No comments:
Post a Comment