Getting Started with Agile SCM

the web page generates a command line to create a template project. By copying the command line and pasting it into a shell window you can have project with everything you need to create a simple Wicket application.

ba1108-1.jpg

Figure 1 Wicket Quick Start Page

The way that this works is that they web page does the details work of helping you build the maven command line that downloads the “archetype” project from a repository. The archetype is basically a template project.

This process assumes that you have installed:

    • A Web Browser
    • Maven
    • A Java Compiler

This example relies on the Maven archetype mechanism to do most of the work, and the code to generate the command line simply saves you from copying and pasting.

And the archetype is just a template project with the default files in the default directory structure. But it is exactly this kind of automation that makes starting a new project simple and foolproof.

With the help of tooling that Maven and the Wicket Quick start provides we can now create a wicket project.

The good:

    • The quick start page minimized the risk of errors of mistyping the maven commands.
    • The template project structure saved us a lot of typing.

The Less Good:

    • The process relies on us having maven installed, so it’s not foolproof
    • The process only starts a new project. The more common scenario is to jump in on an existing project.

The Wicket Quick Start example showed us that it can be simple to provide directions on how to start a project. You need only tell a developer that they need to go to the QuickStart page and type in the name of their components. The web page can enforce naming conventions. Or you can select the components from a menu.

Ongoing Development
To extend this approach for an existing source tree, you could have the archetype include only the files that specify the source repository. You could then execute mvn scm:update to update your source tree.

If you are doing work on a branch, you can incorporate the release labels in the drop down.

Deployment
One more thing that the Wicket set up gives you is the ability to run your application using the jetty application server.

What you have is the ability to build and test consistently in your development workspace.

Recap
To review, the essentials of the repository pattern are:

    • A single, somewhat static set of documentation in a well know place that describes the bootstrap process (Install Maven, for example)
    • A step to identify what files to retrieve from version management
    • A step to update to the latest source version and obtain all the dependencies.
    • A Build and configuration process that allows you to run all of the pre-commit tests in your workspace

If the Getting Started web page seems intimidating, simply add the maven command on the Getting Started page, and have the developer edit the command by hand. Not as foolproof as the generation approach, but should a developer mistype a label or the like, the process will fail quickly.

One you have this basic process in place you have enabled your team to create workspace easily. This will allow you to:

    • Build more reliably, as it is easier to create workspace from scratch, and thus eliminate drift between developer workspace and the integration workspace.
    • Do integration builds consistently because all of your dependencies are defined.
    • Perform support tasks, since creating a workspace for a Release Branch is also simple.

Once you have the basics in place, you can work towards automating more steps. It’s possible to

About the author

Brad Appleton's picture
Brad Appleton

Brad Appleton is a software CM/ALM solution architect and lean/agile development champion at a large telecommunications company. Currently he helps projects and teams adopt and apply lean/agile development and CM/ALM practices and tools. He is coauthor of the bookSoftware Configuration Management Patterns, a columnist in The CM Journal and The Agile Journal at CMCrossroads.com, and a former section editor for The C++ Report. You can read Brad's blog at blog.bradapp.net.

About the author

Steve Berczuk's picture
Steve Berczuk

Steve Berczuk is an engineer and ScrumMaster at Humedica where he's helping to build next-generation SaaS-based clinical informatics applications. The author of Software Configuration Management Patterns: Effective Teamwork, Practical Integration, he is a recognized expert in software configuration management and agile software development. Steve is passionate about helping teams work effectively to produce quality software. He has an M.S. in operations research from Stanford University and an S.B. in Electrical Engineering from MIT, and is a certified, practicing ScrumMaster. Contact Steve at steve@berczuk.com or visit berczuk.com and follow his blog at blog.berczuk.com.

About the author

Robert Cowham's picture
Robert Cowham

Robert Cowham has long been interested in software configuration management while retaining the attitude of a generalist with experience and skills in many aspects of software development. A regular presenter at conferences, he authored the Agile SCM column within the CM Journal together with Brad Appleton and Steve Berczuk. His day job is as Services Director for Square Mile Systems whose main focus is on skills and techniques for infrastructure configuration management and DCIM (Data Center Infrastructure Management) - applying configuration management principles to hardware documentation and implementation as well as mapping ITIL services to the underlying layers.