Bridging the business-IT divide

28 Oct 2005

Application Lifecycle Management (ALM) helps invert the traditional view of IT as a cost centre and change it to a value generator. A new report by Butler Group, leading European independent IT research and advisory organisation, highlights the need for business to adopt an ALM approach to effectively monitor and control projects and to ensure business needs are met.

Senior research analyst Michael Azoff, who led the research for Butler Group''s report titled Application Lifecycle Management, explains in this article prepared exclusively for domain-b, how ALM tools can help deliver faster-to-market, high quality software products.

Michael AzoffA cultural divide exists between business and IT, with business handing over requirements to IT with the next contact between the two being made only when delivery is expected. There is no involvement of the business with software development and no visibility into its activity — effectively a black box to business managers. Also, with no accepted body of knowledge in managing people developing software, managers often end up learning what works best the hard way. Used intelligently ALM tools and better people management can lead to that elusive project success.

Business Issues
There are two key process methodologies that help address the problems of low project success rates. The Software Engineering Institute''s (SEI) CMMI for Software provides a best practice characterisation of software development management processes, and also within the context of wider organisational management processes.

The earlier SEI standard, Software Capability Maturity Model (CMM-SW), now being phased out, was purely focused on managing software development but was also too document-centric — CMMI is leaner and also more specific about implementation. However, while CMMI can define the backbone activity processes for senior management, it is mainly descriptive rather than prescriptive — in-depth detail of how needs to be added. Agile software development (ASD) is a prescriptive methodology for developing software.

At the outset it should be clear that contrary to the historical origination of the Agile movement and its initial reaction against CMM, the two are compatible: Agile activity can be performed within a CMM environment. Higher levels of CMM achieve greater repeatability and predictability of projects, and also adaptability to changes in the business.

Change is the occurrence that best links the two: the Agile way thrives on a high rate of change in requirements and uncertainty in the project. These attributes are conditions that exist in the real world; the point of Agile is that it is good at meeting these challenges. A traditional ''waterfall'' software development methodology, where each stage is tightly controlled and in a linear progression, is more likely to fail under uncertainty than an Agile approach.

Technical Issues
The ''integrated development environment'' (IDE) is evolving, tool vendors are increasingly integrating their products to deliver suites. IDEs are giving way to tools that reach outside of pure coding and into the architectural, deployment, and management phases of an application''s lifecycle: ''application lifecycle management''(ALM). The hallmark of these suites is a common user interface, meta model, and process engine that also enable ALM team members to communicate using standards-based architectures and technologies such as ''unified modelling languages'' (UML).

The management of an application lifecycle as opposed to its development concerns much broader issues than that of project process and methodology. This is where the concept of ALM is so important.

Applications exist in the organisation in multiple cases: through custom development and enhancement projects, through purchased COTS products, subscription applications from service providers, modules or whole applications provided through outsourcing, and legacy applications. These are valuable IT assets, and ALM helps to manage them all, delivering business value.

ALM is being used as a means of inverting the traditional view of IT as a cost centre and changing it to one of value generator. The chief tools now available in ALM that can provide business intelligence on application delivery include ''project portfolio management'' (PPM), ''requirements management'' (RM), and ''application performance management'' (APM). The addition of these three activities to traditional lifecycle development provides a necessary and hitherto missing business perspective. Three key ALM disciplines are described next.

PPM plays a number of crucial roles in helping to manage application development and application usage as a business activity. Examples include the following:

  • Rationalising the number of applications within an organisation, especially important where mergers and acquisitions have taken place, and providing a global view of application usage;
  • Aligning IT with business needs and ensuring that projects in the pipeline meet business needs, ensuring that business cases are made for new applications to meet business needs, and prioritising projects in the pipeline that are urgent for business needs;
  • Managing manpower resources to fit business needs;
  • Running ''quality assurance'' (QA) software metrics on applications, and making cost benefit decisions on maintenance and support;
  • Manage application delivery; and
  • Provide ''business intelligence'' (BI) on application development through dashboards and analytics.

This list of capabilities makes PPM play a powerful overseeing role in ALM, and providing the key intermediate layer between business delivery and application management.

RM is another activity that is now firmly part of ALM. For too long requirements has been a paper-based exercise, and/or an activity that starts and ends at the beginning of a project. The fault in this approach is all too evident when people dig deeper to better understand application development and how to improve it. In RM the first step is to build a business case for a proposed application and gather the requirements. This process must identify all the stakeholders in the application; all too often an application is built and only then is it discovered that a class of user has been overlooked.

Modern RM tools keep the requirements traced to code development — this ensures that the correct application is being built. A key advantage of these tools is to keep requirements in a central repository, so that any change in requirements is instantly propagated to all the project team: crucially, developers and testers. Managing change is often where projects fall down: project schedules seldom cater for change, whereas in practice change is the norm not the exception.

Once the application is released the user experience needs to be fed back and RM provides that feedback mechanism. New releases therefore carry the changed requirements from the production environment, as advised by all the stakeholders. Finally, the increasing use of offshore development, with distributed teams separated by time zones, pose new challenges that Web-based requirements tools can meet, as well as assisting collaboration.

APM, together with ''software asset management'' (SAM), is perhaps the least recognised of ALM activities, but ones that can unlock huge value from IT assets. Application development may typically take six to 12 months, but for a mission-critical application its lifetime in deployment may last over a decade. Managing the application during that period is where APM and SAM step in. non-optimal performance in production seriously hampers business effectiveness and gives rise to a multitude of hidden costs.

The complexity of today''s IT environment means that monitoring and managing the hardware and network alone is no longer sufficient to facilitate the effective delivery of IT services. As a result, more and more organisations are utilising APM to drive application optimisation, more effectively align IT delivery to the strategic and tactical needs of the business, and increase cost efficiencies. In essence, APM gathers detailed information from inside applications and uses it to:

  • Predict potential failures before these impact on users or the business.
  • Provide rapid alerts when failures occur and isolate the root cause of these failures.
  • Improve planning for system requirements.
  • Speed-up the implementation and launch of new applications.

APM can also be used in the development and pilot testing stage to detect application defects related to performance and system load early in the application lifecycle, and prevent introduction of those defects into the production environment.

SAM is another hidden secret in ensuring value from applications. Monitoring which applications are actually used in the enterprise provides valuable information to better manage budgets. Managing licensing compliance, including renewal alerts and document storage, is important for contract legality and corporate regulatory reasons.

In addition to this broadening of ALM, the core development tools are also improving. Modelling has made significant strides forward with the establishment of the Model Driven Architecture (MDA) standard, which nearly all players in the market have adopted.

The exception is Microsoft, but it has embraced model driven development (MDD) through its ''software factory'' concept, and its equivalent to MDA''s ''unified modelling language'' (UML), the ''domain specific language''. The chief advantages of modelling are: improved communication, collaboration and knowledge transfer; improved productivity and reliability through automation; and improved development through separation of concerns.

Unlike historical modelling, MDA''s advanced technology allows real-time synchronisation between models and code, so that models do not become shelf-ware after initial construction, but are an ongoing source of information and roadmap for the project.

Role-based core development tools enhance the efficiency of developers, whether analysts, architects, programmers, testers, or managers. These tools make available the options necessary for the role and prevent the overload of menu options that plague functionally top-heavy tools. Additionally, top-end ALM suites provide workflow graphical tools that enhance information access and knowledge transfer.

Conclusion
Used correctly, ALM tools can help deliver faster-to-market, high quality software products. However, tools should not be used as a defence mechanism against dealing with difficult software development issues, otherwise the developers will bypass the tools and the same old problems will re-surface.

Rather, there needs to be a better understanding by business of the nature of software development and its practitioners, and vice versa, software developers need to understand the impact their solutions have on the business.

This comes down to communication as the key to bridging the cultural divide between IT and business. Used intelligently ALM tools and better people management can lead to that elusive project success.