CHAPTER 1
Why Application Lifecycle Management Matters
Application Lifecycle Management (ALM) is an area of rapidly growing interest in the development community. ALM is all about how you can manage the entire cycle of building software. With a good ALM process in place, you can develop software faster, more cost effectively, and with greater quality than before. This book shows you what ALM is and why it matters.
Modern organizations depend on software and software systems in many ways. Business processes are often implemented in a digital flow; and without software to support this, even small companies can experience problems. For most companies, the world has changed quickly in the last few years, and they need to adapt constantly.
If you want information these days, its available at your fingertips all the time. It hasnt always been this way. You might remember the days back when you were a teenager. Music and movies were, and always will be, two of the top interests. For Joachim, this obsession started during my teen years, and he chased rare records by his favorite artists, and hard-to-find horror movies. When he found a rare vinyl pressing of a precious record from the United States, for instance, he was ecstaticnot to mention the emotional turmoil he experienced when he managed to purchase a Japanese edition of the same record. In those days, he wrote snail mail asking for mail-order record catalogs from all over the world, based on ads in magazines such as Rolling Stone and Melody Maker. After carefully considering what he wanted to purchase, he wrote the purchase order, enclosed crisp bills, and sent a letter with the order inside. Then came the long wait for the package. And believe us, this wait could be long indeed. Nowadays, you can access the Internet, check some sites, and directly purchase what you want using a credit card. The stock available at many sites is huge compared to what it was in Joachims teens, and you can usually find what you want very quickly. In a few days the package comes, and you can begin using the things you bought.
Responding to Change
These days, communication is different as well. Sites such as Facebook, Twitter, and so on have generated millions of followers not only among early adopters of technology, but from societies as a whole. The numbers of smartphones (iPhones, Android devices, Windows Phones, and more), tablets, and other means of communication have exploded, at least in the parts of the world where the related infrastructure is available.
With the new opportunities that organizations have to do business, much has changed in the world, including the reality for companies. Businesses now have to deal with a global environment, which presents both opportunities and challenges. Commerce has changed and still is changing at a rapid pace. You need to be clear about why you develop business systems and software. For companies, the software-development process has changed as well. Nowadays many organizations have large development teams working on software to support the businesses. Many times these teams are spread globally. This poses many potential problems, such as collaboration issues, source code maintenance, requirements management, and so on. Without processes to support modern software development, business can suffer.
This complex world means organizations encounter new challenges constantly. In order to respond to these changes, ALM becomes increasingly important. Development teams in organizations can use new collaboration tools such as Visual Studio Team Foundation Server from Microsoft, HP Application Lifecycle Management, and similar products from Atlassian and IBM. These tools are ALM platforms that tie together a companys business side with its information technology (IT) side.
ALM is the process an organization uses to care for an application or software system from its conception to its retirement. Its the glue that binds the development processes and defines the efforts necessary to coordinate those processes.
Understanding the Cornerstones of Business
First lets define the term business. What do we mean when we talk about this concept? We also need to reach an understanding of what business software is, so you dont think of something different when we use that term. When we discuss business in this book, were talking about not only the commercial part of the company, but all the functions of the company, including human resources, procurement, and so on. This means business software is intended not only for e-commerce, but for all the functions in an enterprise.
Three cornerstones of business system development are important:
- Processes
- Business rules
- Information
These three are dependent on each other. Lets makes an analogy with the human body. If the processes are the muscles of your company and the rules are the brain and the nervous system, you can see information as the spine. None of them could function without the others.
Processes
A company uses different processes to support its business. For developers, project managers, software designers, and people with other roles in a development project, its easy just to focus on the development process. Theyre often interested in development processes such as the Scrum process or the Extreme Programming (XP) process. Business people mostly focus on the business side, of course, and have no interest in learning about the development process.
A large company needs processes for procurement, sales, manufacturing, and so onthe development process is just one of them. The other processes are necessary for the company to function and survive. Obviously, business processes are valid not only for commercial companies, but for all organizations, including those in the public sector.
SCRUM, XP, AND RUP
If you dont have the full picture of what Scrum, XP, and the Rational Unified Process (RUP) are, we cover them later in this section. For now, suffice it to say that theyre development process models you can use to control project development efforts.
Scrum is an iterative and incremental agile software-development method for managing software projects and product or application development ( http://en.wikipedia.org/wiki/Scrum_(development ) ). Although Scrum was intended for management of software-development projects, it can be used in running software maintenance teams or as a program-management approach.
Extreme Programming (XP) is a software-development methodology that is intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development, it advocates frequent releases in short development cycles (timeboxing), which is intended to improve productivity and introduce checkpoints where new customer requirements can be adopted.
The Rational Unified Process (RUP) is an iterative software-development process framework created by the Rational Software Corporation, a division of IBM since 2003. RUP is not a single concrete prescriptive process, but rather an adaptable process framework, intended to be tailored by development organizations and software project teams that select the elements of the process that are appropriate for their needs. RUP is a specific implementation of the Unified Process.
Business Rules
The second cornerstone of business system development is the business rules the organization needs in order to function well. Business rules tell you what you can and cant do in the company. For example, a business rule for a retail company might state that no credit check is to be performed on return customers. They also tell you what you must do.
Next page