Create an Agile DevOps Environment That Fosters Flexibility over Features

[article]
Summary:

When a company makes the move from software as a service (SaaS) to an API-first platform, a change in mindset is required. The successful transitions come from those who shift from features to flexibility. Technology teams should look to remove constraints and broaden the possibilities of their platform by constantly exploring ways to make their platform as flexible as possible.

Over the past decade, many companies have moved their technology to the cloud to offer out-of-the-box software to other businesses. This concept, known as “software as a service” (SaaS), has seen a rise in popularity given its fast time to market and lower operating costs, in contrast to clunky, on-premise software. However, these same companies are quickly beginning to realize the limitations that come along with an out-of-the-box, SaaS solution.

While an abundance of features may be available in an SaaS application, companies still cannot add features to satisfy every need. Custom themes aren’t enough. Long lists of configuration options become daunting and still don’t provide all the custom behavior needed. Often, companies realize they need a change because of the same three words: too many checkboxes.

With these limitations, many SaaS companies are beginning to remove their UI to transition to an API-first platform company. An API-first platform, also known as a “headless platform” or “platform as a service” (PaaS), has the speed and comprehensiveness of a SaaS application but is not nearly as restricting because the UI is decoupled from the back end of the application. Rather than providing an out-of-the-box application, PaaS offers developers the ability to begin development of an application almost instantly, without having to worry about setting up the underlying development environments or infrastructure. Developers can build exactly what they need and create completely customized UIs in a fraction of the time.

When a company makes the move from SaaS to an API-first platform, a change in mindset is required. The successful transitions come from those who shift their mindset from features to flexibility. This mindset must guide the platform roadmap and keep the focus on the service provided. Technology teams should look to remove constraints and broaden the possibilities of their platform by constantly exploring ways to make their platform as flexible as possible.

Begin with the Right Tools and Processes

Comprehensive DevOps strategies and strong leadership are essential when building tools for developers to create applications on a platform. Users who build on API-first platforms also seek software development kits, training, and documentation to assist in building their application. To continually provide users the tools they want while also improving the platform, careful planning is required. Teams should focus on creating a structure for one-click deployments with automated testing that supports a continuous deployment cycle, and lean programming principles that guide the software development lifecycle and decisions on what and when things should be built.

The rapid development tools often chosen for serverless applications require teams to support a new technology stack. For example, if Google’s AngularJS framework is chosen as the basis for interfaces that interact with the platform API, an entire new world of DevOps can be introduced, but the principles must remain the same. Teams can create a build system using NPM, Bower, and Gulp to automate the unit and end-to-end tests as well as “compile” the code into a deployable format. Using additional platform tools, like Heroku, teams can automate the deployment of the applications with one click.

Inserting the Mindset into Every Step of the Process

To create an environment that fosters flexibility rather than features, teams need to be proactive during every step of the process, beginning with the idea. “Flexibility over features” is about the capabilities of the interface to repurpose the resources and innovate within the structure of the API. For instance, if a client requests a specific feature, the first thought should be how it could be solved in the interface using the flexibility of the API resources to maximize its extendibility while also giving the client, and future clients, what they need. Removing the obstacle of inflexibility sets the team and client up for success.

The team must then remain dedicated to the “flexibility over features” mantra throughout the entire process of development and testing. For example, developers writing the unit tests and the QA team writing the integration test must incorporate expectations of usage. There are no assumptions when prioritizing flexibility.

Strong Team, Strong Results

Organization is key during the growth phase of a tech team. It’s best practice to have three team leaders gather for a backlog-grooming meeting before every sprint. One leads from the client perspective, one from the development perspective, and one from the testing perspective to ensure a balanced outlook on enhancements. The leads should reflect on the previous sprint and share insights with the platform architects to evaluate inclusion to the base platform API. Having multiple points of view ensures the customer and flexibility of the platform come first.

Additionally, the ScrumMaster should orient the team for smaller, faster releases. It’s vital to be able to respond to change quickly and flexibly. What a customer wants today may not be what they want tomorrow. Smaller, faster releases allow a larger team to move quickly, improve reliability, and ensure flexibility remains top of mind.

As with any business process, communication is key. With continuous release cycles and a growing team, open, transparent communication is required to be successful. Teams can use tools like Slack and JIRA to maintain the balance between transparency and efficiency, but they need to emphasize the importance of sending the right information to the right people at the correct time to avoid sharing irrelevant content.

Intrinsically motivated people are crucial when it comes to designing for flexibility. Teams need to be proactive and think ahead rather than solely reacting to change and requests.

With a constantly evolving landscape, companies must have the right technology team and strategies in place to ensure they maintain the flexibility today’s organizations require.

About the author

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.