The need for speed is driving businesses into a digital revolution, with agile as the engine. As expectations for quality user experiences rise higher than ever before (be it with context-aware mobile apps, or websites with no room for performance mishaps), organizations are being forced to rethink the way their entire businesses operate.
“The digital revolution is driving the demand for quality software at speed,” said Thomas Hooker, vice president and strategic market expert for CollabNet. “Software development and delivery is vital for all companies to deliver products and services. The methodologies and tools that help expedite the development and delivery of quality software at speed are more important than ever.”
In retail businesses, consumers now have omnichannel choices. They can go online and buy an item and pick it up at the store, or if it is not at the store, they can have it shipped to their house, making businesses have to transform the way they work, release and think about products and solutions, according to Zubin Irani, CEO of cPrime.
In the financial sector, there are digital banks being developed without even having a physical branch, disrupting the traditional model of banking. Then there is also a big demand for traditional desktop applications to move to an online strategy, a push for more online games, and the desire for more mobile apps, according to Avi Cavale, cofounder and CEO of Shippable.
“The market and people have changed, and so companies have to fundamentally rebuild themselves as technology companies, which is obviously very new for them and a very difficult transformation to go through,” said Irani.
Agile and the digital transformation
While it may be a difficult transition, being digital actually makes agile more vital than ever, and being agile helps businesses keep up with their new online demands, according to Kevin Dunne, vice president of strategy at QASymphony.
The use of the cloud helps businesses continuously push out software to their customers and get instant feedback, while also giving developers the ability to control how their software is pushed out. For example, developers can choose a certain time they want to release their software, gradually roll out updates to a limited amount of users or a specific geolocation, and respond quickly to customer feedback, Dunne explained.
“The Internet has opened up a lot of ways to push features quickly and also push them strategically and control who gets to see new things,” he said. “It really allowed people to experiment a lot more with agile and Continuous Development because you can always roll back changes and fix changes very quickly.”
In the past, when developers pushed out new releases or updates to desktop software, they had to wait days or weeks before users actually got around to updating it. Then, weeks later, if feedback pointed out a major problem with the software, the developer wouldn’t be able to quickly roll back the software or apply hot fixes. They would have to come out with patches to fix bugs, notify all their customers, and hope they got around to installing it, according to Dunne.
“Then you are constantly dealing with different customers using different versions of your software and not really knowing if everyone is using the latest and greatest up-to-date thing, so long story short, the Internet has really pushed agile,” he said.
The digital transformation is very similar to the transition to agile in many ways, according to Lee Cunningham, senior director of enterprise agile strategy at VersionOne. Similarly to agile, organizations have to do more than just adopting and spending money on tools or technologies.
“The transformation piece is really a change in how they think about their business,” he said. “An organization that has or is undergoing an agile transformation has to understand that it is a transformation in the way we think about the way we work. There are some very fundamental things that are changing, and that can actually be a catalyst for that digital transformation because they already understand it is not just implementing new technology. It is not just adopting a new set of buzz phrases and terms; it is actually changing how we do business.”
Pushing agile out of development
The importance of agile in a digital development world is now making it vital to bring agile outside of development. In order to truly succeed in an agile world and as an agile company, every aspect of the business needs to be working in some kind of agile fashion, according to VersionOne’s Cunningham.
“If you don’t have visibility across that entire broad value stream from one end to the other, then you don’t have the ability to be adaptive,” he said. “You don’t have the ability to actually make sure you are connecting with what starts way upstream from business strategy to the customer at the end. The digitizing of business is really meant to make it easier to have the visibility and also make it to be more responsive.”
If the development team is using an agile approach and the marketing team is using a waterfall approach, that is going to cause some friction. The entire business needs to be working in a cohesive way, according to cPrime’s Irani. Marketing, finance, legal and other aspects of the business all play a role in agility and need to be working in harmony.
“Pushing out features faster than marketing can handle is a problem because marketing is not used to moving fast, or legal is not moving that fast because they can’t review the text or product release notes to prove them,” he said. “What will happen is you will see development produce working code, and it will literally sit there for a month until legal can get to it and review it. That is defeating the purpose of being agile.”
Also, if the development team is changing their plan every couple of weeks, and the marketing team is going forward with a plan that was created in the beginning of the quarter or year, then they will not sync properly, according to QASymphony’s Dunne. “If those teams aren’t working on a very similar cadence as far as it comes to planning and communication, then oftentimes the software teams start to complain that they can’t truly be agile without the other parts of the business adopting that as well,” he said.
Development is just one part of the business; there is also the delivery side of things, according to Anders Wallgren, CTO of Electric Cloud. Development teams will produce software and finish features, but then it will take weeks until it gets deployed to production because it has to go through things like manual testing and security checks. “What we are trying to do here is get value into the hands of our customers as quickly and as reliably as possible, and you can’t do that if you don’t focus on the deployment aspects of your software and the release aspects of your software,” he said.
Mobile becomes more important
In the past, mobile was often an afterthought for businesses in their online strategies. But as devices continue to get smarter, usage continues to increase, and their importance in people’s lives grows, businesses have to take their mobile development efforts more seriously.
“As you talk about digital experience, that is really spreading into the mobile space,” said Lubos Parobek, vice president of product at Sauce Labs. “In the past you see mobile being put to the side and treated as a side project that didn’t need to be necessarily as professional or vetted. What organizations are realizing is that often the quality expectations, the fit and finish expectations that customers and consumers have of mobile applications are actually higher than what they have of websites and web apps.”
Mobile apps are now an important competitive differentiator that can make or break a business. If something goes wrong with a mobile app, that could end the customer’s relationship with them, according Parobek. Agile steps in here because users can no longer manually test these apps on mobile. They need to figure out a way to speed up their cadence and ensure the quality of these solutions from a functionality perspective and a performance perspective.
“If you really want to be able to provide a differentiating experience, whether that be financial services or a consumer brand like a shoe or car, all that is really determined by that experience through the digital properties that you publish out there,” said Parobek. “Your productivity, your quality, and all that other stuff skyrockets as you move to agile, CI, CD and automated testing vs. the legacy approach that people were taking with mobile apps.”
Rather than having a separate web and mobile team, those teams are aligning and websites are being designed to be more responsive to mobile devices, Parobek explained.
The mobile app store community also brings a lot of transparency to apps, depicting how good or bad they are. “If you build bad software and put it out and don’t react quickly to what your customers want, and you continue to iterate, then you will just continue to get worse and worse reviews and very quickly become killed inside of the marketplace as the community piles on,” said QASymphony’s Dunne. “Agile is really well-aligned with the platforms of the future being web and mobile.”
DevOps: The missing piece of the puzzle
Agile alone is not enough to push your business through the digital transformation and keep your organization afloat. According to CollabNet’s Hooker, while agile is one of the best ways to align development processes with external customer needs, organizations still need to figure out how to better prioritize, reward and support infrastructure changes, provide cross-discipline integrations, and undertake long-term modernization initiatives.
“DevOps is evolving as an ideal way to interpret agile into practice at scale and align development and engineering teams, tools and processes, with the internal business needs, leveraging the [application development], change/ infrastructure-management teams to sustain the agile velocity and the hybrid environments they work in,” he said.
A lot of people in the industry believe DevOps will eventually replace agile, but Sauce Labs’ Parobek says that couldn’t be further from the truth. He explained that DevOps is an extension of agile beyond development and QA, but into operations. “DevOps says, okay, how do we extend the collaboration that is happening to development and QA teams to the actual operations people that are running the production infrastructure?” he said. “It is just the next step in the agile process.”
DevOps also provides a feedback loop that is significant in understanding what customers want, helping teams avoid having to write necessary code they don’t want at the end of the day. “The more quickly you can push your software without adding a lot of extra effort reduces waste, and then reduces a lot of the rest of you pushing out code and wasting efforts building on top of other code that might have to be rewritten because it doesn’t meet your customers needs,” said QASymphony’s Dunne.
In addition to DevOps, Electric Cloud’s Wallgren believes Continuous Delivery and Continuous Integration are necessary to making agile valuable in today’s digital world. “The really high-performing organizations have set things up in such a way that after the software is checked in, you don’t require a human touch to get into production,” he said. “They automate everything to the point where if they need to they can put software into production in minutes.”
What makes you agile?
There is no one-size-fits-agile approach, but there are a couple different criteria organizations need to follow to make sure they are actually agile and not just saying they are agile.
For instance, they need to change their roles and responsibilities and break down silos; a whole new set of processes need to be put in place such as sprint planning, daily standups, retrospectives, and demos; and they need a toolset that can support their culture change and processes, according to Sauce Labs’ Parobek. “What are the culture changes you need to go through? What are the processes to support those culture changes? And finally, what is the tooling you are going to need to make sure you can execute those processes?” he said. Those are all important questions an organization needs to ask itself if it wants to be successfully agile, he added.
Another indicator of how successful an organization will be depends on the type of organization it is, according to Anders Wallgren, CTO of Electric Cloud. He believes the most effective organizations adopting agile and DevOps are generative learning organizations because they listen to problems and act accordingly.
“You understand there is a problem, you work to fix it, you work in a blameless culture where we are all in the same boat and everyone understands that we have a common goal,” he said. “There are going to be problems along the way, and they need to be addressed, not ignored or punished.”
Agile organizations should also accept they have a finite amount of resources, and since it will be hard to predict new technology, they will need to change along the way, according to Irani. “It is really seeing organizations living and breathing with the mindset of what is the most valuable thing that we are working on and what is it the most valuable thing for our customers,” he said. “We need to have a clear vision as to where we are going, but as we go down that path, we are going to adapt to changing conditions.”
It comes down to “do you continuously improve your development process based on customer feedback or not?” said Dunne. “It is all about understanding the market, what the market wants, and developing a process that helps you deliver what the market wants.”
Agile is not dead
Recently there has been a lot of talk in the industry that agile is dead. But agile is far from dead, according to Parobek. “As organizations continue to push the limits of software delivery, there will be new approaches, there will be new experiments, and there will be people trying different things and better ways to build software because there are so many things that are unique to software,” he said. “But this idea that building things in small incremental ways is better than trying to build things in large monolithic pieces… I don’t expect that to be up any time soon.”
Dunne believes some people think agile is dead because they can’t figure out what is beyond agile. “They see it as kind of reaching a…point where it is not growing at the rate that it was previously when it was the hottest thing everyone was talking about in software development,” he said. While agile has reached a point where the benefits have been proven and it is broadly accepted by a majority of the industry, it still has room to grow. According to him, agile is transitioning from a competitive differentiator to core competency for more businesses.
“Agile is becoming something that is so pervasive that it is almost imperative that if you aren’t doing agile, you aren’t going to be successful,” said Dunne. “I think people mix that up with saying agile is dead. Agile isn’t being talked about as much as an emerging trend because the facts show that most businesses are doing some form of agile today if they are doing software development. It is just that the decision is changing from ‘Should we do this?’ to ‘Everyone is doing this,’ and how can we continue to do this better.”
Now that a majority of businesses have turned to agile, organizations will just have to find new ways to remain competitive, said Dunne. “The best way to stay competitive is to look beyond just the process. Now that agile is becoming an easier thing to implement and implemented in more companies, they can focus more on important items that have been overlooked like people, overall vision and ambition of what they are delivering to their customers.”
Adjusting team sizes to fit your needs
There is a common saying in agile that your teams should be small enough that you can feed them with only two pizza pies. That may be true for some organizations, but as businesses adjust to what works best for them, they are customizing agile to fit their needs.
For instance, enterprises are beginning to blur the lines between traditional big-picture project planning and agility, according to VersionOne’s Cunningham. He explains there is a movement toward large-scale enterprise agile where organizations want bigger capabilities and bigger features that may play out over months. “There is just no way that 100 teams of five to 10 people apiece are going to be collectively as agile as a single team,” he said. “You are seeing a lot of complexity coming out of multiple teams having to work towards on larger deliverable.”
So instead of having multiple teams, Cunningham is seeing a move toward having one large team working to deliver something valuable to the customer. “It is a way to figure out how can we get the benefits of agile, but still deliver things that are larger than just a story to the customer,” he said.
In order to make sure the enterprise doesn’t fall back into traditional waterfall methods, the team should make sure there is still a cadence to their workflow. “You are not just having teams work away in two-week increments contributing to a project that is going to run for 18 months,” said Cunningham. “They are actually contributing to maybe an eight- or 10- or 12-week cadence.”
The team should also change its mindset, moving from a project orientation to more of a product orientation where budgeting is allocated to some product line or value stream versus parsing out budget dollars to individual projects, Cunningham went on to explain. “It is really lean wrapped around agility at the team level,” he said.
But as organizations move to having a single large team, others are moving toward smaller teams, driven over the last year by microservices. “Code is starting to get broken down into micro bits as opposed to having these monolithic apps,” said Shippable’s Cavale. “As apps start getting bigger, you need to make sure you are backward compatible and not breaking your existing solution, which becomes very complicated. With microservices, you are reducing that by a factor,” he said.
The smaller the team, the easier it is to have them work more independently without having dependencies on each other, explained QASymphony’s Dunne. “If you can split into smaller iterations and small teams, then the planner of each individual team can be that much more accurate, and the aggregate result of the plans for all those teams is much more accurate than just having one large plan for one very big team,” he said.