Agile Sponsors
Featured Whitepapers
- Learn Ways to Keep Schedules and Costs in Line With Requirements Change Management
- Java Deployments in an Enterprise Environment
- Challenges & Characteristics of Enterprise Continuous Integration
- Build Release Plans That Deliver Customer Value!
- Improving Traceability and Auditability Across the Development Lifecycle
Upcoming and Recent WebCasts
|
| 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: 6703 Comments (0)
|
| < Prev |
|---|
Agile Marketplace - Announcements and Special Offers
Webcast: Moving Build and Code Quality Upstream
This interactive panel discussion moderated by Bob Aiello, Editor-in-Chief fo the CM Journal brings industry experts Anders Wallgren, CTO of Electric Cloud and Gwyn Fisher, CTO of Klocwork together for a candid discussion of the cost savings, productivity and quality benefits that can be achieved by stabilizing builds and code quality as early in the development cycle as possible.
Register Now!
Collabnet -TeamForge 5.3
CollabNet TeamForge 5.3 includes Dynamic Planning—providing flexibility to model release scope and timeline in a single view. Now, you can easily manipulate/adjust release data.
Download Your Free Trial
Requirements-based testing (RBT) can help to ensure comprehensive test coverage, reducing the risk of failure and improving software quality. This white paper details how application lifecycle management can be used to more effectively implement RBT processes, offering greater collaboration, traceability and control.can help you increase efficiency, reduce project risk, and improve overall software quality. Learn how MKS Integrity for application lifecycle management enables RBT, delivering full lifecycle traceability to help ensure that project requirements have complete test planning and execution coverage.
Download the Requirements-Based Testing whitepaper
PureCM –SCM for Agile Teams
PureCM helps you to manage development in short iterations: keeping track of changes, supporting automated builds and preserving frequent snapshots of your projects.
Get the free trial now

