Welcome!

Microservices Expo Authors: Elizabeth White, Pat Romanski, Stackify Blog, Liz McMillan, Yeshim Deniz

Related Topics: Java IoT, Microservices Expo, Machine Learning

Java IoT: Article

Agile Adoption – Crossing the Chasm

Why is it so difficult to switch to agile process from waterfall?

Everybody acknowledges that IT has to plays a key role in any new service or product design. Therefore, IT needs to align with business and be flexible to changing business needs. It is a question of how to be agile rather than should we be agile. Then, why is there such a gulf between the people who evangelize agile processes and those who look at them with great suspicion?

Any application is built to satisfy a business goal. The process has two major steps where the step one is to define the application behavior which will help in meeting the business goal and the step two is to translate the application behavior to a working application. The definition of the application behavior is the requirement specification and it is the link between business and IT.

Business - IT

In the waterfall methodology, development starts after the requirement is frozen. It is assumed that if business users can unambiguously and comprehensively specify the application behavior, IT can build the application satisfying the stated behavior. All the management practices based on waterfall methodology is build around this assumption. However, in most real life project we find that one of the following things have happen.

  • The stated behavior as understood by the business is different from the understanding of IT
  • The stated behavior is a sub-optimal solution for the given business goal
  • The business goal has changed

As a result the final application does not meet the business goal. Then it becomes a blame game between business and IT, where business claims that "this is not what I wanted" and IT claims that "I have delivered as per your signed-off requirement". Since there is a gap between desired application and what is stated in the requirement, it is concluded that the root cause of the failure is improper requirement definition. In the next project more rigorous process is applied to make the requirement definition more comprehensive and as early in the lifecycle as possible. In spite of all these rigor, one of the most frequently cited reason for project failure is improper requirement management.

In current business context, is it possible to freeze requirement?

If we go back in time, most IT applications were written to automate internal processes. The emphasis was on adopting industry best practices. Vast majority of the user were internal to the organization and they had to adopt to the application interface rather than the application interface being tailored for the user needs. Times have changed and many of the IT applications are an integral part of the product or service offering. Significant part of the users are external to the organization. The focus has shifted from following the best practices to having innovative offering. The new motto is usability and user centric design. Though there are guidelines and principle available on how to design such application, in practice it involves many iterations where many idea needs to be tried before a workable solution is arrived at. Sometimes, applications may have to be modified very late in the development cycle. In such cases, though the requirement is driven by a business goal, business users are not always sure about how the system should behave. It is necessary to try out the application before taking decision on its suitability. To this we can add the changing business goal arising out of change in the environment.

If all these points are added up, it becomes clear that requirements will change.

This has led to the realization that we need agile processes which works when requirements are constantly changing rather than spending time and energy on freezing requirement. As a result agile processes were born. The key principle behind any agile processes is to have a mechanism where the users can try out the application as it is being built and give feedback so that:

  1. Gap in understanding is reduced
  2. Sub-optimal solution can be improved
  3. Application can be realigned to any change in business goal

It is easier to adopt agile methodology in letter than in spirit. An iterative development process becomes ineffective, unless user feedback is used to change and fine tune the application behavior. This may involve introduction of new features, discarding features and reprioritization of features. It is not always easy to reorient an organization entrenched in waterfall development. Not only it is necessity to change mind-set of the people involved, it is also imperative to modify some the key management practices.

Funding: How Is the Project Sanctioned?
Normal process of budgeting involves calculating return on investment, which in turn, requires both investment and the return on it to be quantified. Even when the requirement is clearly defined, arriving at an accurate effort estimate is an error prone exercise. When requirement is expected to change during the life of the project, it becomes almost impossible to have an accurate estimate up front. This becomes a hazardous exercise and in practice the estimate gets tuned to make the ROI look good. Once sanctioned, the budget becomes frozen and it acts as a great disincentive to allow flexibility in changing requirement mid way. The way out of this situation is to have a method of incremental funding of project. Initially funds can be made available for first few iterations and this sanction can be based on a reasonable accurate estimation. The scope of the project and the fund required can get progressively fine tuned. With incremental funding, it also becomes easier to detect unviable project much earlier in the lifecycle.

Interaction: Do Stakeholders Trust Each Other?
Change in requirement involves rework and it implies discarding work already done. IT has to trust that a specific change suggested by business is needed and could not be specified earlier. Similarly, a feature may look simple from outside but may involve considerable amount of programming effort. Business has to trust the effort estimate made IT. Both IT and business has to believe that understanding is progressive and any gap in understanding is neither deliberate nor because of incompetence or carelessness of the other party. It can be achieved by having transparency from both side. IT needs to establish a method of estimation and make it transparent. Similarly, business needs to share the business plan and explain the need for any change. Any change will involve unplanned effort, more effort than what is feasible within a given time frame. Feature will have to be re-prioritized and and the revised plan should have joint ownership.

Defect: What Is a Defect?
Standard method of measuring defect is to:

  1. Define and freeze the requirement
  2. Derive test cases from the requirement
  3. Use the test cases to test the software
  4. Measure the number of test cases that has failed

Zero defect software means all the identified test cases are passed. This does not in any way indicate that the software meet the business needs. Since, test cases can only be identified for the explicitly documented requirement, we need to move beyond that and reorient how defect is defined. Therefore, regardless of presence of any explicit test case, a defect is when the application ...

  • ... crashes
  • ... behaves in an illogical manner
  • ... does not behave in the manner expected by the user

The responsibility of identifying and eliminating first and second category of defect is with developers. The third category can not be done by the developers alone and needs an active involvement of the user.

Success: How Is It Measured?
Traditionally, the goal of successful project management has been to the deliver the application on time, within budget and without defect. All project managers are brought up on the belief that the key to achieve this is to freeze requirement and minimize rework. However, when the planned application is a part of a major product or service release, the cost of failed application can be many time to cost of the application. Therefore it is necessary to shift the paradigm and measure success in terms of satisfying business needs. It can only be done by an agile methodology which interactively refines requirement by allowing the user to work with and feel the application on a regular basis. When we look at some of the most successful software company we find that it is better to deliver the right application even though it may be late, over budget or have some bugs than to deliver the wrong application within budget, on time and without defect. The likes of Microsoft, Apple and even Google has slipped on their promised delivery and the delivered software are also not free form problem. That has not stopped them from becoming the more successful than anybody else in what they choose to do.

Related Posts

More Stories By Udayan Banerjee

Udayan Banerjee is CTO at NIIT Technologies Ltd, an IT industry veteran with more than 30 years' experience. He blogs at http://setandbma.wordpress.com.
The blog focuses on emerging technologies like cloud computing, mobile computing, social media aka web 2.0 etc. It also contains stuff about agile methodology and trends in architecture. It is a world view seen through the lens of a software service provider based out of Bangalore and serving clients across the world. The focus is mostly on...

  • Keep the hype out and project a realistic picture
  • Uncover trends not very apparent
  • Draw conclusion from real life experience
  • Point out fallacy & discrepancy when I see them
  • Talk about trends which I find interesting
Google

@MicroservicesExpo Stories
Most DevOps journeys involve several phases of maturity. Research shows that the inflection point where organizations begin to see maximum value is when they implement tight integration deploying their code to their infrastructure. Success at this level is the last barrier to at-will deployment. Storage, for instance, is more capable than where we read and write data. In his session at @DevOpsSummit at 20th Cloud Expo, Josh Atwell, a Developer Advocate for NetApp, will discuss the role and value...
You know you need the cloud, but you’re hesitant to simply dump everything at Amazon since you know that not all workloads are suitable for cloud. You know that you want the kind of ease of use and scalability that you get with public cloud, but your applications are architected in a way that makes the public cloud a non-starter. You’re looking at private cloud solutions based on hyperconverged infrastructure, but you’re concerned with the limits inherent in those technologies.
Regardless of what business you’re in, it’s increasingly a software-driven business. Consumers’ rising expectations for connected digital and physical experiences are driving what some are calling the "Customer Experience Challenge.” In his session at @DevOpsSummit at 20th Cloud Expo, Marco Morales, Director of Global Solutions at CollabNet, will discuss how organizations are increasingly adopting a discipline of Value Stream Mapping to ensure that the software they are producing is poised to o...
DevOps at Cloud Expo – being held October 31 - November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA – announces that its Call for Papers is open. Born out of proven success in agile development, cloud computing, and process automation, DevOps is a macro trend you cannot afford to miss. From showcase success stories from early adopters and web-scale businesses, DevOps is expanding to organizations of all sizes, including the world's largest enterprises – and delivering real r...
Cloud promises the agility required by today’s digital businesses. As organizations adopt cloud based infrastructures and services, their IT resources become increasingly dynamic and hybrid in nature. Managing these require modern IT operations and tools. In his session at 20th Cloud Expo, Raj Sundaram, Senior Principal Product Manager at CA Technologies, will discuss how to modernize your IT operations in order to proactively manage your hybrid cloud and IT environments. He will be sharing bes...
DevOps is often described as a combination of technology and culture. Without both, DevOps isn't complete. However, applying the culture to outdated technology is a recipe for disaster; as response times grow and connections between teams are delayed by technology, the culture will die. A Nutanix Enterprise Cloud has many benefits that provide the needed base for a true DevOps paradigm. In his Day 3 Keynote at 20th Cloud Expo, Chris Brown, a Solutions Marketing Manager at Nutanix, will explore t...
SYS-CON Events announced today that CollabNet, a global leader in enterprise software development, release automation and DevOps solutions, will be a Bronze Sponsor of SYS-CON's 20th International Cloud Expo®, taking place from June 6-8, 2017, at the Javits Center in New York City, NY. CollabNet offers a broad range of solutions with the mission of helping modern organizations deliver quality software at speed. The company’s latest innovation, the DevOps Lifecycle Manager (DLM), supports Value S...
SYS-CON Events announced today that Peak 10, Inc., a national IT infrastructure and cloud services provider, will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Peak 10 provides reliable, tailored data center and network services, cloud and managed services. Its solutions are designed to scale and adapt to customers’ changing business needs, enabling them to lower costs, improve performance and focus intern...
This talk centers around how to automate best practices in a multi-/hybrid-cloud world based on our work with customers like GE, Discovery Communications and Fannie Mae. Today’s enterprises are reaping the benefits of cloud computing, but also discovering many risks and challenges. In the age of DevOps and the decentralization of IT, it’s easy to over-provision resources, forget that instances are running, or unintentionally expose vulnerabilities.
It has never been a better time to be a developer! Thanks to cloud computing, deploying our applications is much easier than it used to be. How we deploy our apps continues to evolve thanks to cloud hosting, Platform-as-a-Service (PaaS), and now Function-as-a-Service. FaaS is the concept of serverless computing via serverless architectures. Software developers can leverage this to deploy an individual "function", action, or piece of business logic. They are expected to start within milliseconds...
There are two main reasons for infrastructure automation. First, system administrators, IT professionals and DevOps engineers need to automate as many routine tasks as possible. That’s why we build tools at Stackify to help developers automate processes like application performance management, error monitoring, and log management; automation means you have more time for mission-critical tasks. Second, automation makes the management of complex, diverse environments possible and allows rapid scal...
One of the biggest challenges with adopting a DevOps mentality is: new applications are easily adapted to cloud-native, microservice-based, or containerized architectures - they can be built for them - but old applications need complex refactoring. On the other hand, these new technologies can require relearning or adapting new, oftentimes more complex, methodologies and tools to be ready for production. In his general session at @DevOpsSummit at 20th Cloud Expo, Chris Brown, Solutions Marketi...
We all know that end users experience the internet primarily with mobile devices. From an app development perspective, we know that successfully responding to the needs of mobile customers depends on rapid DevOps – failing fast, in short, until the right solution evolves in your customers' relationship to your business. Whether you’re decomposing an SOA monolith, or developing a new application cloud natively, it’s not a question of using microservices - not doing so will be a path to eventual ...
SYS-CON Events announced today that Linux Academy, the foremost online Linux and cloud training platform and community, will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Linux Academy was founded on the belief that providing high-quality, in-depth training should be available at an affordable price. Industry leaders in quality training, provided services, and student certification passes, its goal is to c...
SYS-CON Events announced today that Fusion, a leading provider of cloud services, will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Fusion, a leading provider of integrated cloud solutions to small, medium and large businesses, is the industry’s single source for the cloud. Fusion’s advanced, proprietary cloud service platform enables the integration of leading edge solutions in the cloud, including cloud...
SYS-CON Events announced today that HTBase will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. HTBase (Gartner 2016 Cool Vendor) delivers a Composable IT infrastructure solution architected for agility and increased efficiency. It turns compute, storage, and fabric into fluid pools of resources that are easily composed and re-composed to meet each application’s needs. With HTBase, companies can quickly prov...
@DevOpsSummit at Cloud taking place June 6-8, 2017, at Javits Center, New York City, is co-located with the 20th International Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The widespread success of cloud computing is driving the DevOps revolution in enterprise IT. Now as never before, development teams must communicate and collaborate in a dynamic, 24/7/365 environment. There is no time to wait for long developm...
With 10 simultaneous tracks, keynotes, general sessions and targeted breakout classes, Cloud Expo and @ThingsExpo are two of the most important technology events of the year. Since its launch over eight years ago, Cloud Expo and @ThingsExpo have presented a rock star faculty as well as showcased hundreds of sponsors and exhibitors! In this blog post, I provide 7 tips on how, as part of our world-class faculty, you can deliver one of the most popular sessions at our events. But before reading the...
The purpose of this article is draw attention to key SaaS services that are commonly overlooked during contact signing that are essential to ensuring they meet the expectations and requirements of the organization and provide guidance and recommendations for process and controls necessary for achieving quality SaaS contractual agreements.
SYS-CON Events announced today that OpsGenie will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Founded in 2012, OpsGenie is an alerting and on-call management solution for dev and ops teams. OpsGenie provides the tools needed to design actionable alerts, manage on-call schedules and escalations, and ensure that the right people are notified at the right time, using multiple notification methods.