Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼


Q&A: Agile Meets ALM

Cyndi Mitchell, managing director of Thought-Works Studios, recently talked about Agile development and application life-cycle management with Dr. Dobb's editor in chief Jonathan Erickson.

Dr. Dobb's: Does Agile make it more difficult to achieve effective ALM?

Mitchell: No, Agile engineering practices, when applied effectively, make it easier to know what's really going on in a project or within a code base. Agile does place heavier demands on ALM tool providers. Most tools are too prescriptive to support the adaptive nature of Agile once the application life cycle gets under way. Still others cover only one aspect of the application life cycle, leaving end users to cobble together disparate tools to support the entire application life cycle.

Dr. Dobb's: Is it really possible to automate all or part of the ALM process?

Mitchell: Yes, though it may not always be desirable. Any place in the application life cycle where humans are required to repeatedly perform manual steps will create an opportunity to introduce errors and waste valuable resources, and these are all strong candidates for automation. Of course, there may be corner cases where the cost/benefit trade-off of automating a particular aspect of a particular stage in the life cycle doesn't make sense.

Dr. Dobb's: Do ALM and Web 2.0 butt heads, or are they simpatico in terms of life-cycle management?

Mitchell: They're largely simpatico, but one area where they often butt heads is around the rich user experience of many Web 2.0 apps. Many of the dynamic "Ajax-ey" toolkits are difficult to test with current automated functional testing approaches, and this can make automating some aspects of of the application life cycle very painful.

Dr. Dobb's: What's been the biggest change in ALM the last few years?

Mitchell: There is a growing recognition that the scope of ALM is far broader than just project, program, and requirements management; it must extend to development, deployment, support, and maintenance. Of course, ALM tools need to support this entire scope as well, including a holistic approach to good Agile engineering practices.

Dr. Dobb's: Are we missing any steps?

Mitchell: In an Agile environment, it's helpful to think of the ALM process not at as sequential phases or steps, but rather as a series of short work increments, each including just enough analysis, design, development, testing, and deployment to deliver a bit of business value. The right processes and best practices are continuously discovered and improved.

Dr. Dobb's: Is any one phase/category of ALM more important/critical than any other?

Mitchell: In an Agile world, the traditional "phases" of ALM are much shorter and much more tightly dependent upon each other. The application of good engineering practice to all aspects of development, testing, build, deployment and release management is highly critical as this is what makes projects and systems reliable and predictable regardless of stage in the life cycle. It is also critical that your chosen ALM tool holistically supports good engineering practice across each of these areas.

Dr. Dobb's: Does parallelism/multicore complicate ALM?

Mitchell: It doesn't have to. Parallellism/multicore brings huge benefits to the automated testing, build, deployment, and release management aspects of the application life cycle -- the right ALM tool will allow companies to explicitly take advantage of this, while hiding the complexity.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.