Essential Steps to Become Agile - Part 2
April 05, 2017

DEVOPSdigest asked experts across the industry — including analysts, consultants and vendors — for their opinions on the best way for a development or DevOps team to become more Agile. Part 2 covers processes including automation, continuous delivery and testing.

Start with Essential Steps to Become Agile - Part 1

AUTOMATION

The best way any IT organization can become Agile is to automate proven and defined best practices and orchestrate them into a coherent digital assembly line. Executing scripts is not automation, nor is it orchestration! Safely deploying changes into PROD at velocity requires human effort to play a supervisory/administration role instead of a hands-to-the-keyboard, HESS (Holidays, Evenings, Saturdays, Sundays) role.
Scott Willson
Product Marketing Director and DevOps Evangelist, Automic Software

Automate. Automate such that with each change you can validate the value delivered. Start with automation of the build, integration and validation processes, for continuous integration. Then automate the priority functional and acceptance testing. Ultimately extend the automation to ensure that you can deliver a validated change to a pre-production environment to confirm the related story is "done."
Brian Dawson
DevOps Evangelist, CloudBees

The top way to become Agile is to deliver as often as possible. This gets your product into the hands of your customers and perpetuates the feedback loop that helps improve your service, thus fostering innovation. And the only way to get high quality product through the pipeline quickly is by automating your testing cycle.
Joe Alfaro
VP of Engineering, Sauce Labs

Agile is trusting your team to make choices on your behalf, set their own priorities, and fail forward. It's the same thing that happens now, with less ritual. Automating all the things requires new processes, new tools, new skills, and new thinking about both software development and teamwork. Hacking a pipeline is easy compared to hacking an organization. Automation is a never-ending process of troubleshooting and exception handling. If your automation is well-thought out, you can optimize those processes, but you can't eliminate them. All technical problems are people problems. Communication rituals like standups solve people problems, so that technical problems can be solved next.
Eric Proegler
Product Manager, SOASTA

AUTOMATION + ALGORITHMICS

The only way to become Agile, is through an aggressive shift to automation, but since that is almost mandatory now, the top way to make automation a force-multiplier, is by combining automation with algorithmics, and making the whole process an intelligent and collaborative one.
Richard Whitehead
Chief Evangelist, Moogsoft

AUTOMATION + LEANIT

The benefits for an IT organization in becoming more Agile are the reduced time to market with shorter development cycles. Then, everything which leads to this objective should be considered and evaluated. As a result, organizations should adopt a sprint-based development methodology to push release out faster. Meanwhile, they want to automate, as much as possible, the processes of the release deployment and the testing phase. In addition, adopting a DevOps culture where Dev and Ops actively collaborate on deployment and production support will also speed up the app deployments. Finally, once this is done, I think the top way to become even more Agile is to always look for continuous improvement by using automation and LeanIT principles.
Vincent Geffray
Senior Director of Product Marketing, IT Alerting and IoT, Everbridge

CONTINUOUS DELIVERY

Build a roadmap to continuous delivery and execute on it. Work your transformation step by step until you achieve this state.
Ron Gidron
ARA Evangelist, Automic Software

To be truly Agile, development teams need to embrace continuous delivery. While this type of delivery is what users have come to expect from SaaS and consumer services, it's critical for business services that are on-premises as well.
Dirk Paessler
CEO, Paessler AG

Teams can become more Agile by focusing on the concept of "Continuous Flow" because tasks can almost always be accomplished more efficiently and accurately when the product or release is worked on continuously from the time a business idea is accepted by development to the time the feature value is delivered to the customer. Faster, better business outcomes occur the more you can focus on the product or release and its needs, rather than the organization, process or people. Continuous flow is really the theory and basis for Continuous Delivery.
Mark Levy
Director of Strategy, Micro Focus

The most important thing an organization can do is to understand that there is a difference between BEING Agile and DOING Agile. To "do" Agile, a team can adopt the roles, events and artifacts of Scrum, XP or another Agile framework. But to BE Agile, the team has to keep in mind the original goals of the movement: to focus on satisfying the customer through early and continuous delivery of valuable software. So many teams dogmatically focus on a framework, or on word-by-word parsing of the Agile Manifesto. In fact, it's "feeling" the "Principles Behind the Manifesto" that is much more important.
Betty Zakheim
VP Industry Strategy, Tasktop Technologies

CONTINUOUS INTEGRATION

Being Agile means having the confidence to ship on short notice. The best way that a DevOps team can foster that kind of confidence is to provide a robust, continuous integration environment that builds, tests, packages, and deploys your product each time a pull request is merged. If these steps aren't automated they'll only get done on release day. Putting fully built products in the hands of testers as soon as possible once a change to the source code is made (ideally, within minutes) allows your environment to get the most of a team that may be covering multiple products.
Mark Brocato
Sr. Engineering Manager, Sencha

One of the foundational steps to improve productivity and agility is to build and adopt a true continuous integration/continuous deployment process to meet service needs. For a CI/CD process to be truly effective it should have automatic testing of security, performance and reliability be part of the build and deploy process. Having the confidence that every change pushed by a developer is fully tested to be secure and with no negative performance impact makes it easier to truly empower your developers, letting them push code and iterate quickly without losing control over the safety and reliability of the overall service/product.
Ido Safruti
Co-Founder and CTO, PerimeterX

TEST EARLY AND OFTEN

In support of today's Agile software development, where software is released frequently, organizations need to ensure that software is of high quality throughout development. To do this, teams need to test early and often, verifying both functional and non-functional requirements before releasing their embedded device, IoT application, or IT service. To succeed, teams must embrace a few critical best practices: implementing automated functional testing to enable early and frequent feedback on the status of the application and dramatically reduce overhead associated with continuous testing; utilizing service virtualization, to eliminate test environment bottlenecks while scaling the testing efforts; and using change-based testing to quickly focus on what in the codebase has changed, increasing efficiency while eliminating the risks associated with evolving applications.
Marc Brown
CMO, Parasoft

TEST-DRIVEN DEVELOPMENT

Generally, I have seen that teams that are succeeding with Agile but looking to take it to the next level can implement a test-first or test-driven development approach to find additional gains in efficiency and speed to market. Test Driven Development will reduce the amount of documentation needed to define requirements by consolidating the test and requirements specifications into one shared item, which has an indirect benefit of driving more alignment and consensus on requirements up front. Additionally, it will increase speed to market by allowing features to be pushed to production soon after (if not immediately after) they are coded, as automated tests have been defined up front and can be run to validate the code as soon as it is completed.
Kevin Dunne
VP of Strategy and Business Development, QASymphony

REVERSABILITY

Reversibility is the key to becoming more Agile. Enterprises want to move fast, but what happens to the business and the customer if they break things? So many organizations still live in crippling fear of the possibility that downtime or an outage will result from the frequent code pushes and complexity that underlie a modern DevOps approach. Reversibility removes this fear. Building application development and management processes around tools that make it easy to roll back problematic changes before they turn into full-blown incidents. With the real-time and fine-grained insights provided by modern infrastructure and application monitoring tools, teams can deploy incremental updates with speed and confidence that any issue will always be easy to identify, isolate, and fix before they negatively affect customer experience. Reversibility enables agility and removes risk so that enterprises can speed their digital transformation and fully embrace DevOps.
Ryan Goldman
Head of Marketing, SignalFx

Read Essential Steps to Become Agile - Part 3, providing some tips for getting started and gaining feedback.

Share this