Technical acumen. Hands-on management experience. Professionalism.
Good automation virtually eliminates errors. It's faithful.
Agile methods, rapid, iterative and incremental development, parallel
development and geographically-distributed development all require well-understood,
fail-proof build and release processes. The answer is to automate as much
as possible. That's where Darrel excels.
Automated builds and automated build integrity tests, coupled with good software
configuration practices, take the pain out of delivering the right software
and speed up the entire delivery process.
Darrel specializes in implementing and configuring
SCM tools like ClearCase, Subversion and Perforce to make it easy for developers
to check code out, modify and test it, then check it back in. He automates
build and release processes and integrates these with SCM tools to create
easy, reliable, push-button
releases.
His background as a developer taught him how much software development
and QA groups can benefit from automated lifecycle management (ALM):
- Software Configuration Management
- Version Control
- Change Control
- Release Engineering
- Simultaneous multi-platform builds
- Automated testing of builds
Darrel has implemented and performance-tuned Release Engineering and Configuration Management tools and processes in a wide variety of software development environments and engineering cultures, establishing code branching models, SCM policies and release procedures, and making it easier to enforce SCM policies such as branch naming conventions.
He specializes in setting up SCM tools, integrating them with IDEs, and training developers in how to get the most out of the tools. He has considerable experience with ClearCase, Perforce, Subversion, git, Visual SourceSafe, RCS, SCCS, and other CM tools. He has also automated the reporting of build status in Tinderbox.
Darrel establishes code management procedures for development and QA, training and coaching each group in the adoption of the new procedures. He defines and establishes the function of Release Engineering and trains staff in their technical responsibilities.
In multi-platform development environments, he has automatically generated regular development releases (nighlty or continuously) for multiple platforms and databases from a single source code base. He creates automated "universal" build systems to replace the variety of manual build processes used by different development groups within the same organization. This reduces the unnecessary complexity and effort of manipulating and maintaining multiple and divergent build systems. More important, it enhanced Engineering's ability to deliver reliable and timely builds by:
- Streamlining the build process.
- Providing and documenting a uniform build process.
- Reducing opportunities for failed builds.