|
| 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:
Set as favorite
Bookmark
Email this
Hits: 7037 Comments (0)
|
| Last Updated on Monday, 06 November 2006 05:43 |
Agile Marketplace - Announcements and Special Offers
Rally Software Extends Agile ALM Platform to Meet the Unique Needs of Global Organizations
Rally Unlimited Edition – Promote Agile practices throughout your organization by providing a complete system-of-record of each product's status, progress and quality across the full idea-to-deployment lifecycle. Sign-up today for your free trial!
iPhone iPad Developers Conference
The iPhone iPad Developers Conference, September 27-29 in San Diego, is the world's premier independent event dedicated to building and marketing apps for Apple's iPhone, iPad and iPod Touch. The format includes 45+ technical classes, workshops and breakout classes. It will also be the first major developer conference after the release of iPhone OS4. CMC subscribers can receive a $100 discount off the Full Event Passport and/or gain free admission to the exhibits (first time registrants only - cannot be combined with other offers) by inserting the code MEDIASPONSOR when prompted on the eRegistration page linked from www.iphonedevcon.com
AgilePalooza - Serious Learning in a Fun Atmosphere
AgilePaloozas are community events sponsored by VersionOne and Agile Journal. These one day conferences provide serious learning in a fun atmosphere. Two tracks are included: Learning Agility and Advancing Agility. Speakers include internationally recognized agile coaches and trainers. The next seminar will be held August 27th in Dallas, TX – use discount code agilejournal and save $20!
Register Here
CollabNet Subversion Edge Improves Governance, Security, Administration
Quickly configure SVN, Apache, and ViewVC with one certified stack, fronted by a powerful UI.
Try our beta version and let us know what you think!


