Removing Waste with a Mobile DevOps Toolchain
Learn how the mobile toolchain emerged, and ways that Solutions Architects and Engineers can avoid the management burden, reduce overhead, and eliminate the organizational silos that mobile toolchains create.
Delivering a new mobile app release involves a sequence of steps—from initial planning to code integration, packaging, verification and testing, and then publishing. Not to mention the ongoing monitoring that occurs after an update has been released.
Solutions Architects and Engineers have managed to automate many of these steps through the use of specialized tools: Jira for planning, GitHub and Bitbucket for code integration, Travis CI and CircleCI for verification and testing, jFrog and Nexus for packaging app builds, etc.
The stringing together of these various tools is referred to as a toolchain.
While the Mobile DevOps toolchain helps automate the release process and, ideally, speed up mobile app delivery, it often comes at a heavy cost. Silos can be built when different teams own their respective parts of the toolchain without much communication with others along the sequence.These tools also require ongoing maintenance and management.
This article will outline how the modern mobile toolchain has emerged and ways to avoid management burden, reduce overhead, and eliminate organizational silos.
The need for speed
In the age of digital transformation, many architects and senior engineering leaders are under pressure to speed up app delivery, without sacrificing app quality. This pressure leads them to look for tools that will automate the delivery process and deliver the outcomes that they desire.
If they get it right, they’re able to properly balance delivery speed and app quality, which ultimately drives a great customer experience. However, this is hard to do.
More tools, more problems
Problems arise when—feeling pressure from above—enterprise teams hastily cobble together various tools. In mobile application development, moving too quickly often results in purchasing tools that aim to resolve issues in the short-term. However, these newly acquired tools often stick around far beyond their intended use.
Development teams end up finding themselves in a mountain of tools. This is a direct reflection of lack of consideration for the long-term vision and goals. Those tools and temporary fixes added to the chain only make the process more complex and bring a greater chance for problems to arise as software trickles through the development lifecycle.
Friction between handoffs
The typical Mobile DevOps toolchain is often seen as sequential—i.e. from initial planning to testing, delivery, and monitoring. The continuous “handoff” process between teams, processes, and tools comes with friction. It is this friction where teams spend the most time due to added communication needs, process alignment, or individual tool integration issues. These wasted cycles slow down the overall process and come together to form an unpredictable DevOps burden.
Tools are being stitched together to perform tasks that push software through its development lifecycle. Because of this, it’s likely to remain unoptimized and there will often remain a “weak link” in the chain. For instance, communication breakdowns between teams or tools potentially leave code or a project “sitting on someone's desk awaiting review.” Without proper integration, and strength along each phase, mobile development teams can only move as fast as the weakest link allows.
Speed, at a cost
What leadership at these organizations may not realize is that despite teams moving faster, it comes at a cost. The toolchain infrastructure their teams rely on has continued growing and inherited additional complexity. The communication that is required to keep the process moving has increased and their investment in engineers and the tools they use is not being fully realized.
A failure to come to grips with these issues will only hurt the business in the long run. The misconceptions on how fast teams can actually deliver will lead to inaccurate forecasting. Soon to follow are missed deadlines, unhappy customers, and loss of revenue.
The age of concurrency and consolidation
Expansive tooling in the mobile development lifecycle can be too much of a good thing. Now that we have learned how particular tools brought into the fold may solve an issue today but can cause more issues down the road, let’s look into how teams are optimizing their mobile CI/CD pipelines.
Breaking down the silos
In sequential toolchains teams can find themselves in their own bubble. They care most about their specific tasks and less about the broader picture. We can think of this as a silo. Project Managers and Team Leads are in charge of project planning. Engineers are involved in creation. Quality Assurance Engineers take care of verifying. Senior Engineers are likely tasked with packaging. Operations, and potentially Team Leads, move forward with the actual releasing of code. Operations would then be in charge of configuration and monitoring of systems. This “silo effect” decreases collaboration and strays from the path of what DevOps culture is all about.
Communication often solves many problems and the DevOps burden is no exception. As teams transition away from “walled gardens” and the silos disappear, collaboration and communication improve. Their efforts toward working more concurrently, with added transparency, equate to less finger-pointing as issues arise. Working more concurrently means embracing the DevOps culture and utilizing a proper platform where all team members can remain informed through each phase of the toolchain.
As separate functional teams work more closely together, team members have a greater grasp of what is happening and are more empowered to jump in to lend a helping hand. A sequential approach, as previously illustrated, would only result in a “waiting game” until the previous team resolves the issue at hand. Working to break down the silos and keeping teams informed reduces hand-off friction, resulting in a more efficient toolchain.
Toolchain simplification
A completely integrated toolchain is essential in accelerating mobile application delivery. Teams are striving to simplify toolchain management by constructing deeply integrated solutions. Ideally, proper integration will often include reducing the number of integration points. Eliminating tools, where possible, will reduce the overhead of the Mobile DevOps toolchain and the overall burden on team members.
Tool consolidation and fewer friction opportunities drive application delivery speed. Coupled with greater communication, teams are able to maximize toolchain efficiency and potentially exceed business expectations. Moving away from a set of disparate tooling in favor of a singular platform that handles each step of the mobile CI/CD lifecycle pays dividends for mobile development teams.
Start slow and grow
Shifting to a properly integrated and concurrent Mobile DevOps platform doesn’t need to happen all at once. It’s best to grow the business’ mobile CI/CD pipeline over time. Start first by optimizing the continuous integration of the development lifecycle. Once the team is comfortable and working efficiently, continuous delivery can be introduced.
With both continuous integration and continuous delivery in place, all that’s left is to embrace the mobile DevOps culture completely. Continued efforts should be aimed at driving improvements and making necessary changes to the toolchain as inefficiencies are discovered. By starting small and growing over time, the short-term solutions, tool additions, and typical pipeline friction points can be avoided.
Minimizing the DevOps burden
Removing unnecessary tools and friction from the mobile development lifecycle is the way forward. By better integrating tooling and more effectively coordinating across teams, a dedicated Mobile DevOps platform can reduce your DevOps burden and increase overall productivity.
Removing Mobile DevOps toolchain waste is made easy with Appflow. Appflow is the holistic platform that minimizes the burden while still helping teams ship stable mobile apps, faster. To learn more about tackling mobile CI/CD, download our ebook. To begin simplifying your application delivery, check out the Appflow docs and start building today!
About Ionic
Ionic is a leader in enterprise mobile app development, with 5 million developers worldwide and thousands of enterprise customers who use Ionic to build mission-critical apps for their customers, both external and internal. It powers 15% of apps in the app store, not including thousands of apps built internally at enterprises for every line-of-business need. Ionic is unique in that it takes a web-first approach, leveraging HTML, CSS, and Javascript to build high-quality iOS, Android, desktop, and Progressive Web Apps.