Welcome!

IBM Cloud Authors: Stackify Blog, Elizabeth White, Pat Romanski, Liz McMillan, Yeshim Deniz

Related Topics: IBM Cloud

IBM Cloud: Article

Viewing Corporate Application Development As a Product Development Life Cycle

Viewing Corporate Application Development As a Product Development Life Cycle

Managing the software application development life cycle is more challenging than ever. With the introduction of e-business technologies such as IBM's WebSphere solutions architecture, organizations face inherent complexities. Many more issues must be considered before launching any type of e-business application. In most cases, cross-functional teams need to be formed so that there is representation from each of the organizations participating (see Figure 1).

In most large organizations, application development is usually done by one or more organizations focused only on that task. When a solution is required, the business owners contact that organization and the project begins. However, if it is across functional lines, which is the case with e-business projects, the business owners provide the external funding. With this scenario, the internal application development group morphs into not just an internal IS group, but also a product development group that executes a product development life cycle.

Figure 2 is an example of a product development life cycle for a typical e-commerce application offering. It is fairly complex, as are most e-business projects. Listed below are some of the complexities not documented in the diagram:

  • Constantly changing environment
  • Escalating competitive climates
  • Increasingly sophisticated user requirements
  • Budget constraints
  • Management of development processes across multiple organizations
  • Working with dispersed geographic teams while simultaneously interacting with contractors and customers
  • Many late-to-market projects and cost overruns
  • No central repository to store project information, loss of valuable knowledge when personnel leave the project
  • Poor documentation or no standard documentation
  • Inability to share best practices, creating silos of information

    Most companies have spent millions on software development processes that are supposed to help solve many of the problems stated above. However, just putting them into a binder and distributing them isn't the answer. What is needed is an application that can automate the life cycle - enforcing the processes, collecting the metrics to see if they're successful, and enhancing communication between the teams.

    This article defines the key criteria to look for when assessing a new solution for automation of the software development life cycle. The four issues that are most critical to successfully bringing applications to release are:

    1. Assisting development organizations with defining and executing a consistent life cycle process
    2. Giving team members quick and easy access to all life cycle information
    3. Providing real-time visibility into the applications portfolio, to make investments decisions and determine the status of all programs
    4. Bringing the extended development team, including partners and business users, into close communication with the core development team

    An effective automation solution must help the organization accomplish its objectives while minimizing the impact on the development team members. MS2 Accelerate is being used by application development organizations to help them address these challenges and deliver better applications faster.

    Application Development Practices
    It's a widely accepted fact that accessing information and the applications that manage it is strategic to an organization's ability to maintain its competitiveness in the marketplace. Managing a portfolio of applications through the development life cycle and delivering the right applications at the right time are key to driving a company's revenue and growing its market share. Organizations that can effectively plan and execute their application delivery strategy and deliver the right applications faster and cost effectively have a marked advantage in today's competitive business environment. Yet, in spite of its importance, application development management remains a very complex endeavor with limited tools and technologies to manage it.

    In a recent survey of 140 high-technology executives, 99% agreed that it is hard or very hard to repeatedly and predictably deliver applications on time. The challenges of effective application life cycle management are exemplified by the following:

  • Nearly 75% of all development programs miss their target release date or never ship at all
  • More than 50% of all development programs take twice as long as expected to complete, or are canceled altogether.
  • On average, top performing application development organizations hold a tenfold productivity advantage over weaker performers in the same industry
  • At least 7 of the 10 most common signs of application development failure are present before the design is created or a single line of code is written

    Fewer than 5% of all application development programs have successfully identified the complete set of customer requirements before beginning application design.

    Figure 3 illustrates this point. The earlier in the life cycle you can identify problems and propose a solution, the easier it is to correct them. As simple as this may seem, most organizations fail in this, many times because the team lacks visibility into the overall solutions.

    Complex Challenges Facing Application Development
    The application development life cycle has evolved from the traditional waterfall process into a highly flexible one requiring multiple decision check points and input from not only the engineering teams, but often multiple business teams, often located on separate continents. These projects are usually under severe time constraints, requiring teams to execute quickly on a common objective. Even though most development activities are interdependent, the time-compressed environments that software projects exist in dictate that they must occur in parallel in order to meet the requirement window. The complexity of applications being developed and the need to leverage core competencies and advances in software technology, such as Web services and component architectures, requires that many of these projects be conducted in conjunction with joint-development partners. As the number of applications under development and the number of partners involved in the process increase, however, the resulting complexity is overwhelming.

    Change Is Constant
    The only constant in software development projects is change. Managing the application development life cycle would be difficult even if all requirements were known up front and never changed during the development process. But the reality of today's competitive business environment guarantees that there will often be significant changes in customer requirements and available technologies, not to mention employee turnover on the team. The ability to anticipate and effectively respond to changes in the market separates the winners from the losers.

    Time to Market Is Critical
    As the competitive environment intensifies, the time between new application releases continues to shrink. The speed at which technology changes also affects how quickly applications must be delivered. The window of opportunity between an application's feasibility and its ultimate obsolescence is narrowing. And because being late could be disastrous, extreme pressure is placed on application development teams to move quickly. To survive, organizations absolutely must develop the right application and deliver it at the right time.

    Business Users Are More Sophisticated
    With the development of Java applications, object-oriented programming, and browser-based applications, business users demand an application that can be easily adapted to their specific needs. Therefore, the creation of cross-functional business teams and the ability for them to communicate is critical to getting business validation of the application plan before the development process begins, as is continuously monitoring business feedback throughout the development process.

    Resources Are Scarce
    The most valuable resources in an organization are always scarce. Finding, training, and retaining application team members with highly specialized skill sets are continual challenges. It's often difficult to be sure that the most strategic development programs have been allocated sufficient resources for success. The allocation of these scarce resources is at the core of an effective application portfolio investment strategy.

    Assessing an Organization's Current Approach
    Executive managers can enlighten themselves by asking the following questions about their own application organization and development process:

  • Are you making the right investments in your application portfolio to yield the greatest return?
  • Do you have a well-defined process to consistently and predictably deliver applications on time? If so:
    -Are your teams using it?
    -How do people in your organization learn the process?
    -Can you ensure that cross-functional application
    development groups are working together as a team, based on a common view of what the business wants and what should be built?
    -Do you have real-time visibility into the detailed status of all applications under development?
    -Are you communicating quickly and effectively with your extended development team, including contrac- tors, joint development partners, and business users?

    If you answered no to some of these questions, you're not alone. Application development organizations have implemented many different tools to manage some of these complexities. Spreadsheets, program management software, source-control systems, and even home-built Web sites are being used in an attempt to assess a company's ability to design and build the right new applications. While these tools are all useful, they often create islands of information that quickly become out-of-date or obsolete, making it difficult for the team to execute on an integrated application strategy. If you can automate the processes and create process improvement, the payback is enormous. (see Figure 4)

    The Need for a Solution
    An automated solution is required to provide the information application development organizations need to answer these questions confidently. It's important to consider what capabilities and features are needed in such a solution. A sound set of assessment criteria will ensure the best selection.

    Criteria for Automating the Application Life Cycle The increasing challenge of defining and developing winning applications on time has led to the need for an application to automate the application development life cycle. A viable Product Life Cycle Automation (PLA) solution must meet the criteria explained below.

    A Successful, Repeatable Application Life Cycle Process An application organization typically has an application development life cycle that it would like to follow for every program. The life cycle process is often long, detailed, difficult to execute, and even harder to repeat every time across multiple programs. Even when the entire process is fully documented, the plans may remain in a binder on someone's desk, where they're often forgotten or skipped. Many of the improvements or lessons learned never get repeated because there isn't consistent use of the defined process. A study of a dozen companies found that a viable solution for automating the application development life cycle must meet the following criteria:

  • Enable application teams to capture and implement a repeatable process for use on all development projects
  • Create and maintain a single, well-organized, and easy-to-access location to manage the application life cycle process and all deliverables
  • Provide a live application roadmap with visibility into the application portfolio and status of development projects
  • Enable timely and clear communication with the extended development team

    Application development organizations spent less time on administrative activities and more time focused on application development. The result: business units that embraced this approach reduced their average development times by 30-50%.

    The first step toward ensuring a consistent and effective new application life cycle is to create a process. A PLA solution must allow the application development organization to capture its best practices in the form of processes and templates. Ideally, it should provide out-of-the-box best practices for organizations that haven't had time to create them. These processes and templates should be embedded into the work environment and the tools that team members use, thus avoiding their binder problem. Each new program should be able to leverage these best practices without requiring team members to dig up documentation on the process. Finally, successful execution of the process means that every individual on the team knows his or her role in pursuing the goal: What deliverables am I responsible for? When do I create them? Who must review and approve them?

    Single Source for All Application Life Cycle Information
    The complexity of development programs and the interdependencies of each team member's work require a common framework for interaction. This interaction, however, can consume an inordinate amount of time and energy.

    A recent study found that engineering resources, on average, spend 70-75% of their time attending meetings, correcting mistakes, and traveling, leaving only 25-30% of their time for value-adding activities such as designing, developing, testing and solving problems.

    Project managers often spend the majority of their time creating "executive dashboards" for weekly review meetings, in an attempt to give project visibility to executives. On large projects this may involve the consolidation of multiple-project plan information and numerous phone calls and e-mails. A pattern begins to emerge; by the time the project manager has finished the review materials, the cycle must begin again, never allowing the project manager to truly manage the project.

    Application development organizations have tried the following alternatives to address this problem:

    Shared Drives or Folders
    Many organizations use shared drives or folders to allow team members to share documents on a given development program. Because the structure is generally ad hoc, however, most find that it is still cumbersome for team members to locate the right deliverables. Even when they can find deliverables, it's often unclear whether they have the latest version and whether it's a draft, a review copy, or the final approved version.

    Source-Code Control System
    Most software development organizations use a source-code control system to store deliverables related to a given program. While this provides structure and manages document versions, it often causes difficulty for many team members who don't have access to (or don't know how to use) these systems. Such systems also make it difficult to share information with extended development teams that include partners and business users.

    Home-Built Web Sites
    Some organizations hire individuals full-time to create and maintain a Web site for tracking development programs. This alternative provides team members with easy access to deliverables and status, but there is a significant cost associated with it. The owners of the Web site not only spend the time to create and maintain it, but often spend a great deal of additional time tracking down team members in order to get them to provide status and the latest versions of their deliverables for posting to the site. These resources could otherwise be used to help drive the application through the life cycle. The effectiveness of these Web sites depends upon the promptness of the Webmaster in posting team members' updated documents, data, and status reports.

    An application development life cycle automation solution must provide a single source for all status and deliverables. That solution must be:

  • Easy to create and maintain
  • Easily accessible by team members and development partners
  • Well organized
  • Always up to date
  • Able to give executive visibility

    Thus, application team members will be able to spend their time developing applications, as opposed to creating and managing Web sites or searching for the right document.

  • Real-Time Visibility into the Application Portfolio
    Making sound investment decisions across a large number of application development programs may be the single most critical challenge faced by an application organization executive.

    To maximize expected return on investment, executives must have the information to clearly assess the strategic value of each program, its status, and its apparent risks. An application life cycle automation solution must provide a live view into the status and future plans for all development programs, allowing executives to quickly assess portfolio status. The solution must allow them to manage by exception and take action where appropriate to ensure that the most critical applications yielding the highest ROI are delivered on time and with customer-valued functionality. Too often, executive managers use a stale application roadmap presentation to make feature content or application release date commitments to business users. Since the last executive roadmap review, the application team may have moved the release date and added or deferred key features. Understanding the complete status of a development program is a difficult task. Collecting and reviewing status reports from each team member can be time-consuming and may not provide the key information necessary to determine whether a program is really on track. In a recent study of software development programs, researchers found that at least 7 of the 10 most common signs of application development failure were present before the design was created or a single line of code was written. Visibility into these leading indicators is critical to identifying potential problems and attempting to remedy them.

    Globally Dispersed Application Teams
    Application development teams are increasingly global. Resources, including employees, contractors, partners, and business users, are geographically dispersed and often have limited hours during the business day to communicate. All too often, critical information gets distributed to these different participants by request only. Moreover, the information delivered to different constituents may be inconsistent and can quickly become stale, limiting the ability to effectively collaborate on the program.

    An effective PLA solution must effectively manage geographically dispersed constituents through a scalable and highly available architecture. It must allow collaboration among team members without the need for continual meetings.

    Summary
    In today's business environment, investment in technology, especially software development, is being led by ROI. Gone are the days of unlimited IS budgets. Executives need to understand where and how their software development budgets are being spent. The first step to understanding this is managing the process and managing the people. Neither can be accomplished effectively without some type of tool that ensures the process is being repeated, and that can provide a central location for the collection and storage of metrics around the process.

  • More Stories By Robert Costello

    Bob Costello is an application architect with more than 15 years of experience in application development. He can be reached at Rcostel@home.com.

    Comments (1) View Comments

    Share your thoughts on this story.

    Add your comment
    You must be signed in to add a comment. Sign-in | Register

    In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


    Most Recent Comments
    Javier Paniza 11/27/02 10:48:00 AM EST

    I think that 'there aren't silvers bullets'.
    There aren't a universal solution to applicate in everyplace.

    In the software development is better put the focus in the state of the project (workstate) not in the steps to complete the project (workflow). A 'process' put the focus in workflow, and reduce the chance for creativity.
    The solution is balance between rigor (for control) and creativity (for success), but I think that is better put more rigor in state and less and workflow.
    Therefore the idea of automate the process is not always the better.

    About this look for 'agile aliance',
    xp, fdd, Adaptive Software Development
    (the ideas about
    programming in the edge
    of the chaos),

    and see other point of view.

    Thank your for you article,
    and excuse for my English

    @ThingsExpo Stories
    "Cloud Academy is an enterprise training platform for the cloud, specifically public clouds. We offer guided learning experiences on AWS, Azure, Google Cloud and all the surrounding methodologies and technologies that you need to know and your teams need to know in order to leverage the full benefits of the cloud," explained Alex Brower, VP of Marketing at Cloud Academy, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clar...
    In his session at 21st Cloud Expo, Carl J. Levine, Senior Technical Evangelist for NS1, will objectively discuss how DNS is used to solve Digital Transformation challenges in large SaaS applications, CDNs, AdTech platforms, and other demanding use cases. Carl J. Levine is the Senior Technical Evangelist for NS1. A veteran of the Internet Infrastructure space, he has over a decade of experience with startups, networking protocols and Internet infrastructure, combined with the unique ability to it...
    "IBM is really all in on blockchain. We take a look at sort of the history of blockchain ledger technologies. It started out with bitcoin, Ethereum, and IBM evaluated these particular blockchain technologies and found they were anonymous and permissionless and that many companies were looking for permissioned blockchain," stated René Bostic, Technical VP of the IBM Cloud Unit in North America, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Conventi...
    Gemini is Yahoo’s native and search advertising platform. To ensure the quality of a complex distributed system that spans multiple products and components and across various desktop websites and mobile app and web experiences – both Yahoo owned and operated and third-party syndication (supply), with complex interaction with more than a billion users and numerous advertisers globally (demand) – it becomes imperative to automate a set of end-to-end tests 24x7 to detect bugs and regression. In th...
    Widespread fragmentation is stalling the growth of the IIoT and making it difficult for partners to work together. The number of software platforms, apps, hardware and connectivity standards is creating paralysis among businesses that are afraid of being locked into a solution. EdgeX Foundry is unifying the community around a common IoT edge framework and an ecosystem of interoperable components.
    "MobiDev is a software development company and we do complex, custom software development for everybody from entrepreneurs to large enterprises," explained Alan Winters, U.S. Head of Business Development at MobiDev, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
    Large industrial manufacturing organizations are adopting the agile principles of cloud software companies. The industrial manufacturing development process has not scaled over time. Now that design CAD teams are geographically distributed, centralizing their work is key. With large multi-gigabyte projects, outdated tools have stifled industrial team agility, time-to-market milestones, and impacted P&L stakeholders.
    "Space Monkey by Vivent Smart Home is a product that is a distributed cloud-based edge storage network. Vivent Smart Home, our parent company, is a smart home provider that places a lot of hard drives across homes in North America," explained JT Olds, Director of Engineering, and Brandon Crowfeather, Product Manager, at Vivint Smart Home, in this SYS-CON.tv interview at @ThingsExpo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
    "Akvelon is a software development company and we also provide consultancy services to folks who are looking to scale or accelerate their engineering roadmaps," explained Jeremiah Mothersell, Marketing Manager at Akvelon, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
    Coca-Cola’s Google powered digital signage system lays the groundwork for a more valuable connection between Coke and its customers. Digital signs pair software with high-resolution displays so that a message can be changed instantly based on what the operator wants to communicate or sell. In their Day 3 Keynote at 21st Cloud Expo, Greg Chambers, Global Group Director, Digital Innovation, Coca-Cola, and Vidya Nagarajan, a Senior Product Manager at Google, discussed how from store operations and ...
    "There's plenty of bandwidth out there but it's never in the right place. So what Cedexis does is uses data to work out the best pathways to get data from the origin to the person who wants to get it," explained Simon Jones, Evangelist and Head of Marketing at Cedexis, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
    SYS-CON Events announced today that CrowdReviews.com has been named “Media Sponsor” of SYS-CON's 22nd International Cloud Expo, which will take place on June 5–7, 2018, at the Javits Center in New York City, NY. CrowdReviews.com is a transparent online platform for determining which products and services are the best based on the opinion of the crowd. The crowd consists of Internet users that have experienced products and services first-hand and have an interest in letting other potential buye...
    SYS-CON Events announced today that Telecom Reseller has been named “Media Sponsor” of SYS-CON's 22nd International Cloud Expo, which will take place on June 5-7, 2018, at the Javits Center in New York, NY. Telecom Reseller reports on Unified Communications, UCaaS, BPaaS for enterprise and SMBs. They report extensively on both customer premises based solutions such as IP-PBX as well as cloud based and hosted platforms.
    It is of utmost importance for the future success of WebRTC to ensure that interoperability is operational between web browsers and any WebRTC-compliant client. To be guaranteed as operational and effective, interoperability must be tested extensively by establishing WebRTC data and media connections between different web browsers running on different devices and operating systems. In his session at WebRTC Summit at @ThingsExpo, Dr. Alex Gouaillard, CEO and Founder of CoSMo Software, presented ...
    WebRTC is great technology to build your own communication tools. It will be even more exciting experience it with advanced devices, such as a 360 Camera, 360 microphone, and a depth sensor camera. In his session at @ThingsExpo, Masashi Ganeko, a manager at INFOCOM Corporation, introduced two experimental projects from his team and what they learned from them. "Shotoku Tamago" uses the robot audition software HARK to track speakers in 360 video of a remote party. "Virtual Teleport" uses a multip...
    A strange thing is happening along the way to the Internet of Things, namely far too many devices to work with and manage. It has become clear that we'll need much higher efficiency user experiences that can allow us to more easily and scalably work with the thousands of devices that will soon be in each of our lives. Enter the conversational interface revolution, combining bots we can literally talk with, gesture to, and even direct with our thoughts, with embedded artificial intelligence, whic...
    SYS-CON Events announced today that Evatronix will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Evatronix SA offers comprehensive solutions in the design and implementation of electronic systems, in CAD / CAM deployment, and also is a designer and manufacturer of advanced 3D scanners for professional applications.
    Leading companies, from the Global Fortune 500 to the smallest companies, are adopting hybrid cloud as the path to business advantage. Hybrid cloud depends on cloud services and on-premises infrastructure working in unison. Successful implementations require new levels of data mobility, enabled by an automated and seamless flow across on-premises and cloud resources. In his general session at 21st Cloud Expo, Greg Tevis, an IBM Storage Software Technical Strategist and Customer Solution Architec...
    To get the most out of their data, successful companies are not focusing on queries and data lakes, they are actively integrating analytics into their operations with a data-first application development approach. Real-time adjustments to improve revenues, reduce costs, or mitigate risk rely on applications that minimize latency on a variety of data sources. In his session at @BigDataExpo, Jack Norris, Senior Vice President, Data and Applications at MapR Technologies, reviewed best practices to ...
    An increasing number of companies are creating products that combine data with analytical capabilities. Running interactive queries on Big Data requires complex architectures to store and query data effectively, typically involving data streams, an choosing efficient file format/database and multiple independent systems that are tied together through custom-engineered pipelines. In his session at @BigDataExpo at @ThingsExpo, Tomer Levi, a senior software engineer at Intel’s Advanced Analytics gr...