I know this may seem like old hat to many, but trust me not all organizations/projects are setup to allow you to easily pull the code from your source repository and compile. I know it is sad, but if you ask me, this is just the tip of the ice burg in terms of what is ultimately wrong with our profession.
For those of you who may NOT think that pulling and compiling is absolutely necessary let me ask you one thing. What value are you providing your organization if a someone who is new to a project (could be new employee, new team member, or even someone with a new computer) cannot pull and compile your source code in about 5 minutes?
Here is
What does a ‘bad process’ look like? (These are in no particular order)
- User must download all code from source repository
- User must install various 3rd party libraries
- User needs to find out who has the tribal knowledge on what libraries need installing
- User needs to first find these to install. These may be on the company network, the internet, or god help me, on someone’s computer
- User must ‘configure’ their workstation to install
- This can be setup registry settings
- Create config files with correct values
- User must know which order to build the source
- …. I am sure I missed some, but you get the point.
What does a ‘good process’ look like? (These are also in no particular order)
- User must download all code from source repository
- User needs to open a readme.txt file (or something like this). This file should tell the person EXACTLY what needs to happen to build.
- In most cases it should simply be. Click the ‘build source.bat’ file
- In some cases where the user MUST configure their environment the file will walk them though it step by step.
- In some cases where the user MUST install software the file will tell them EXACTLY what needs to be installed and where to find it. Ideally the installers will also be in the source tree (can be in another location, it does not have to be next to the code).
How do we get to the point were there is ‘good process’?
- All source must be inside your source control system
- All installer files must be inside your source control system
- You need to create a single click build file (use what ever build technology you want)
- There must be an option for this file to build your ENTIRE environment.
- Includes building the DB if needed
- Includes creating folders on the drive if needed
- Includes setting registry keys if needed
- ….
- You need to create a Readme file of some sort that tells the user what they need to do to get up and running
Plan and simple if it takes you more than 5 minutes to get a new developer up and running you are doing it wrong (this time does not include installing things like your IDE, or ‘developer environment’).
Every development shop MUST strive to simplify all process and move away from ‘hack and crap development’ and towards ‘professional development’
Till next time,
Posted
03-13-2009 1:38 PM
by
Derik Whittaker