We have 4879 guests and 8 members online

Agile Sponsors

HP


CollabNet


TechWell

Home > Blogs > Featured Blogs > Practical Teamwork > Individuals and Interactions (and Tools)

Individuals and Interactions (and Tools)

Written by Steve Berczuk   
Monday, 06 November 2006 03:01
I value Individual and Interactions over Processes and Tools, but I am wondering what I can learn from my tools.

 

The value in the Agile Manifesto I find myself citing most often in my work "Individuals and interactions over processes and tools." Too often people start with technology and tool questions and then end up with unhappy and under-performing teams as they try to make people work with "the right" tool rather than the tool that would be most productive. I  hear this a lot when it comes to version control and build tools; people start with the "what tool should I use question" before they even think about how they should work. An extreme example of this was a company I was at a few years ago which had an version management  tool that did not meet their needs at all. We didn't switch because management decided that what they really needed was a big expensive tool which was out of their budget range. So switching to a free tool like CVS did not even get on the radar. So I'm always careful to point out that you really need to think about what you do first, then pick a tool.

But what if the tool is designed for your task? can we learn something by adapting our work style (and even our software architectures) to the way that the tool works?  As I use maven for managing the build aspects of my projects I am finding some good example of how adapting your process to the right tool can be very beneficial because you are learning from a community of people who really thought through a problem. The risks is misunderstanding how close the tool's model is from your view of the world.

An example of this is how you start up an java application. Many applications ship with a script that defines the java class  path that defines all of the libraries that your application depends on. All of these dependencies are included in the maven Project Object Model file (or POM) which specifies what you need to build and test a project. Since I hate copy and paste work I wondered if there was an easy way to get the classpaths out of the POM and into a script. As it turns out, there isn't an standard way to do this. You can always build an extension to maven (one of the nice features of a good tool: extensibility), I really would prefer to use the tools that are available. What maven does let you do is to easily embed the classpath into the jar so that you can start up your application like this:

 java - jar myJar.jar

 rather than with a script that specifies the classpath. The side effect of this is that you no longer have an easy place to tell  the application where to load additional files from. Under the "script" approach you might add a new directory to the classpath. Now you need to be a bit more creative. (One way is to use classloaders.) 

By trying to adapt the architecture to fit what the tool supported we ended up with a simper, more explicit start up process. 

Even if you are not a Java developer, there are a couple of interesting points to walk away with:

  • Some tools are built for a specific application, and the creators of  those tools have thought a lot about best practices.
  • By trying to fit into the model that the tool supports you can use the tool to prevent making mistakes in your application design (even if it is a build tool and not a design tool)
  • You need to be careful that the tool really is geared towards your application otherwise you  will fall into the trap of making your work fit the tool for the wrong reasons.
  • While extensibility is a good quality of a tool, there is something to be said for laziness.
I'm thinking that my experience with maven is not the only example of this. I'll have more to say about this later.

Trackback(0)

Comments (0)Add Comment


Write comment

security code
Write the displayed characters


busy
Last Updated on Monday, 06 November 2006 06:43
 
Cialis

Agile Marketplace - Announcements and Special Offers

Upcoming Webcasts
Sponsored by Urbancode - On Demand
Mastering Complex Application Deployment
Sponsored by CollabNet - Wednesday, August 24, 2011
Closing the Agile Loop: Continuous Integration, Continuous Information

ScrumWorks Pro – The World’s Best Agile Project Management Tool
Simply put, CollabNet’s ScrumWorks Pro is the best Agile project management solution on the market, bar none. More than 150,000 Agile professionals rely on the power and simplicity of ScrumWorks every day.  But don’t take our word for it – try it yourself for free. CollabNet is now providing the first 10 users of ScrumWorks Pro at no charge!
Download ScrumWorks Pro today!

The Business Case for ALM Transformation
Are legacy systems holding your company back?  Breakthrough these technical constraints with an open and scalable environment that meets your unique business need to transform. There is no reason to be locked into an obsolete platform. The output of a number of recent transitions from legacy systems, this is practical white paper shares lessons learned and illustrates how guidance and enablement can pave the way for change.
Download this Whitepaper