Video Spotlight
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
|
| Agile development continues to gain momentum, but teams embracing agility typically emphasize process and practices and ignore the technological aspects necessary to increase agility. Are teams agile because they use Scrum? No. Are teams agile because they practice Continuous Integration? No. Are teams agile because they have a project room? No. Agility is not defined by process or practice. Agility is defined by ability. The ability to deliver working software. The ability to respond to change. The ability of software to accommodate change and remain working software. Agile processes and practices serve as wonderful guides to help teams develop higher degrees of agility. But processes and practices that help manage change and emphasize delivery are not enough. Teams must also craft code, develop a supporting infrastructure, and adopt tools and frameworks that encourage and embrace change. 'Tis the season, and as a result, I resolve that for 2007 I'll turn focus to the essential characteristics of technology that help maximize the effectiveness of agile practices. I'll start by introducing some of the core concepts of agile code, agile infrastructure, and agile tools and frameworks.
Agile Code The ability to accommodate changing requirements is directly related to the flexibility and malleability of the code base. High quality code that is easy to maintain fills the gap between a team that embraces agile practices and a team that can follow through by accommodating change quickly and easily. A brittle codebase that lacks design and architectural resiliency prevents teams from realizing the promise of agility. Agile code is:
Agile Infrastructure Incremental software delivery is a core tenet of agile development. Delivery does not always correspond to a production release, however. {sidebar id=1} Instead, delivery emphasizes releasing functional software to a stable environment where the application can be verified through quality assurance testing, performance testing, usability testing, and more. In the most agile environments, software is delivered hourly, ensuring any problems discovered are no more than an hour old. In addition to agile practices such as continuous integration, the ability to deliver functional software frequently and incrementally is directly related to a team's infrastructure components, including:
Agile Tools and Frameworks Many software applications and development efforts rely on third party software. When adopting tools and frameworks, teams must assess the impact a tool or framework has on their ability to work effectively and efficiently. A team's ability to remain agile is directly related to their toolset's ability to be:
Conclusion Injecting agile practices into the development process is the first step toward realizing a higher degree of agility. Yet poorly crafted code, a rigid infrastructure, or complex tools and frameworks prevent teams from realizing the full advantage of agile practices. For 2007, I resolve to focus on technologies supporting agile practices that support a teams ability to remain agile. About the Author
Kirk Knoernschild is Senior
Technology Strategist at TeamSoft, where he leads based on his firm belief in
the pragmatic use of technology. In addition to his work on large development
projects, Kirk shares his experiences through courseware development, teaching,
writing, and speaking at seminars and conferences. Kirk has provided training to
thousands of software professionals, teaching courses on UML, Java J2EE
technology, object-oriented development, component based development, software
architecture, and software process.
Set as favorite
Bookmark
Email this
Hits: 8995 Comments (0)
|
| < Prev | Next > |
|---|
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


