A method is the way a team works to accomplish its goals. It describes how responsibilities are identified and assigned, what techniques are applied, and how success criteria are identified and achieved.
At one time, methods were static documents sitting in dusty binders -- mandated, yet poorly understood and applied. Teams applied the minimum to stay under the radar of the process police. Fast forward a few years, and the agile revolution has overthrown the process police. Freedom reigns. It's all about peace, love, and collaboration, man!
But agility does not mean anarchy. To apply agile methods properly requires discipline. There are principles, such as those found in the Agile Manifesto. There are many alternative techniques to choose from, such as backlog grooming, planning poker, and test-first development. And for many organizations, agile methods aren't enough. As organizational and technical complexity increases, additional scaling factors need to be considered, and processes need to be scaled to match.
As methods become more complex, documentation becomes increasingly important, and automating methods becomes more valuable. This article examines the value of documenting and automating methods by using IBM® Rational® Method Composer and Jazz™ technology-based enactment tools.
Why methods are important
Every person and team follows some method. Some are ad hoc, invented as the need arises, while others are formal, rigid, and enforced. Some methods are documented with specific roles, work products, tasks, templates, checklists, and guidelines. Others are undocumented, so developers rely on a shared understanding among team members and knowledge of who to go to for more information. Most organizations are somewhere between the extremes for two reasons:
- Rigid methods prevent making changes as needs arise, but ad hoc methods result in chaos
- Heavily documented methods can be difficult to create and maintain, while undocumented methods limit the communication and sharing of best practices.
Methods are important because they determine how well teams work together. Methods determine whether techniques applied on a project are effective, and they can even define the criteria for what we mean by success. The question is not whether to have a method, but rather how to ensure your method is effective.
Reasons to document a method
Ad hoc, undocumented methods are appealing, because they require no investment and are infinitely agile, because you invent them as you go along. However, this becomes difficult to scale. These are some of the scaling factors included with Rational Method Composer, taken from the Disciplined Agile Delivery process (also see the citations in Resources):
- Team size
- Mainstream agile processes work well for small teams (10-15), but what if the team is 50 people? One hundred people? One thousand people?
- Compliance requirements
- What if regulatory issues are applicable, such as Sarbanes Oxley, ISO 9000, or FDA CFR 21?
- Geographical distribution
- What if the team is distributed in a building, or around the world?
- Domain complexity
- What if the problem domain is intricate (such as biochemical process monitoring or air traffic control), or it is changing quickly (such as financial derivatives trading or electronic security assurance)?
- Organization distribution
- Sometimes a project team includes members from different divisions, different partner companies, or from external agencies.
- Technical complexity
- Working with legacy systems, multiple platforms, or blending disparate technologies can add technical complexity.
- Organizational complexity
- Organizational structure and culture can reflect traditional values, thus increasing the complexity of adopting and scaling agile strategies. Different subgroups within the organization can have different visions of how they should work.
- Enterprise discipline
- Organizations want to leverage common infrastructure platforms to lower cost, reduce time to market, and to improve consistency. They need effective enterprise architecture, enterprise business modeling, strategic reuse, and portfolio management disciplines. These disciplines must work in concert with -- better yet, enhance -- the software development processes.
Figure 1. Disciplined agile delivery scaling factors
As project and organizational complexity increases, it becomes increasingly important to document those methods. Documented methods enable an organization to:
- Define clear responsibilities and critical sequences of events
As teams become highly distributed, it becomes important to have information available at all times and from all places in some documented form. There isn't time to wait for an explanation, and we can't afford to be confused about what needs to be done, by whom, and when.
- Capture and promote the organization's best practices
To stay competitive, organizations must use industry-standard best practices and learn from their mistakes and their successes.
- Baseline and measure the effect of changes
If you do not establish a baseline method, what do you improve? Documentation helps you implement the agile principle of continuous improvement based on retrospectives.
- Address compliance and audits
CMMi, DO-178B, ITIL, COBIT, SOX, for example. Compliance can be a challenge. Documenting the method is typically necessary to achieve compliance and as evidence to demonstrate compliance.
- Quickly start projects with a method that fits project characteristics
Increasingly, the question is not whether to have a documented method, but rather what to document and how.
Benefits of using a method authoring tool
The most common method authoring tools are word processors and wikis. They offer some significant advantages, because little or no training is required, and there are few constraints on how information is organized and presented.
The disadvantage is that such unstructured information is like a book. The only way to use it is to read it. A method authoring tool provides a methods database. A database offers these advantages:
- configurability and customization
- You can create or adapt methods from the pieces and parts of other methods. You can scale methods to fit both small and large projects. Customization can be collaborative, where team members comment on the method and collectively make changes and additions.
- process builder wizards
- You can create wizards that ask questions and adapt the method based on your answers.
- consistency and completeness
- A process-aware method authoring tool ensures that information is consistent and complete. Form-fill interfaces make it easy to provide the correct information. Information (such as cross-references between related elements) can be generated, thus ensuring consistency.
- Method information can be used to configure tools to automate the process. Automations include generation of initial project plans or work item lists, at-your-fingertips context-specific process guidance, automatic tool configuration. Much more is possible in the future.
- queries, mashups, and reports
- Method databases can support RSS feeds and other mashup technologies to increase the accessibility and value of method information. Queries and reports can be used to view method information in different ways, including in tables, in summary form, as cards, or in portlets. You can hook into different information sources, such as online help, communities, and tool databases.
The question is no longer "Should we use a method authoring tool," but rather "How should we structure our method information so that we can optimize our use of the method?"
Value of Rational Method Composer
Rational Method Composer includes these features and capabilities:
- A huge library of practices, including a rich set of agile practices integrated with practical business and technical controls
- Tool integration features, such as:
- Auto-configuration of tools to match the documented process
- Creation of plans and work item templates from process definitions
- "At your fingertips" process guidance as you do your work
- Combined process and tool solutions for different types of development in different industries, such as:
- Collaborative Lifecycle Management for IT agility@scale™ (see Resources)
- Systems and software engineering
- Customizability features:
- Skins (optional displays) to customize how information is presented
- Option to define your own method element types, rules, and relationships
- Simple tailoring of existing methods for a project or organization
- A host of features for rich text editing, diagrams, breakdown structures, adaptation, reporting, and queries
- Guidance and metrics for measuring project performance and making improvements
- Supporting assets, such as "self-check" and "measured improvement" for improving the performance of teams and organizations
As Figure 2 illustrates, Rational Method Composer is composed of a tool for documenting processes and a library of reusable practices. Documented processes are enacted with development tools. A measured improvement approach enables you to improve the process.
Figure 2. Document, enact, measure, and improve
Methods are important to your organization because they define how your organization operates. Document those methods to communicate and improve those operations.
With Rational Method Composer, you can create consistent, customizable methods, thereby taking advantage of a rich library of agile and scaled agile practices. Rational Method Composer integrations with Jazz-based tools enable teams to work more efficiently and effectively. Supporting assets, such as self-check, measured improvement, and industry-specific solutions, can help you effectively roll out organizational improvements that deliver real business value.
Subsequent articles in this series explore scenarios for documenting and automating processes, using the features introduced here.
- Check the Rational Method Composer overview, page, where you can also download it for a free trial, as well as the links to technical articles and other resources on the developerWorks page. To learn about using Rational Method Composer with Jazz, including FAQs, links to enablement materials, and tips and tricks, see the Rational Method Composer and Practices wiki on developerWorks.
- For more information about the disciplined agile delivery process, read Disciplined Agile Delivery: A Practitioner's Guide to Agile Software Delivery in the Enterprise by Scott W. Ambler and Mark Lines. IBM Press, June 2012. The text and graphic for the scaling factors cited in this article is derived from IBM materials related to this work. You can also download the free introductory white paper.
- Find out more about Measured Improvement, Self-check, Collaborative Lifecycle Management and Collaborative Lifecycle Management for IT agility@scale.
- Visit the Rational software area on developerWorks for technical resources and best practices for Rational Software Delivery Platform products.
- Subscribe to the developerWorks weekly email newsletter, and choose the topics to follow.
- Stay current with developerWorks technical events and webcasts focused on a variety of IBM products and IT industry topics.
- Attend a free developerWorks Live! briefing to get up-to-speed quickly on IBM products and tools, as well as IT industry trends.
- Watch developerWorks on-demand demos, ranging from product installation and setup demos for beginners to advanced functionality for experienced developers.
Get products and technologies
- Download Rational Method Composer to try it at no charge.
- Download free trial versions of other Rational software.
- Evaluate other IBM software in the way that suits you best: Download it for a trial, try it online, use it in a cloud environment, or spend a few hours in the SOA Sandbox learning how to implement service-oriented architecture efficiently.
- Get connected with your peers in the Methods and Practices forum and the Rational Method Composer forum on developerWorks.
- Ask and answer questions and increase your expertise when you get involved in the Rational forums, cafés, and wikis.
- Join the Rational community to share your Rational software expertise and get connected with your peers.
- Rate or review Rational software. It's quick and easy.
Dig deeper into Rational software on developerWorks
Get samples, articles, product docs, and community resources to help build, deploy, and manage your cloud apps.
Keep up with the best and latest technical info to help you tackle your development challenges.
Software development in the cloud. Register today to create a project.
Evaluate IBM software and solutions, and transform challenges into opportunities.