Software developers are the modern equivalent of medieval craftsman. In the old days, masters of the constructive arts — such as those who transformed trees into furniture — would take responsibility for the entire user experience. They did everything from design and configuration to implementation and delivery. If a chair leg broke or wobbled, the craftsman would also be responsible for resolving the fix.
Clearly, the ways of the old masters are not possible at scale. They’re more equivalent to a waterfall approach than what’s possible with modern software. Now, software developers usually stop upon check-in and are oblivious to the QA builds. When their code reaches production-ready status it’s thrown over the fence to the operations team who keeps the applications deployed and running smoothly. Mass production line methodology has replaced the unsustainable artisan approach. Fortunately, modern runtime advancements are removing the barriers throughout the Software Development Life Cycle (SDLC), bridging more of the divide between development, operations, and strategy responsibilities, and an APM solution further augments that divide with valuable insights.
Problems can arise if developers have little or no contact with operations. When they do interact, functional priorities and lack of strategy may lead to conflicts. Developers are typically compelled to introduce the new features that customers want, while operations is expected to shut down code pushes with features that aren’t 100-percent (or at least five-nines) reliable.
This disconnect between teams that should be aligned is where systemic errors begin to breed. There’s a rupture in the feedback loop that should cycle from operations to developers and back again. Departments with disconnected tools bring back disjointed data. A broken SDLC can breed symptoms such as the following:
Customer surveys dictating strategy
QA reports providing minimal insight into a true view of application performance
Developers lacking insight into the usage of their features
Developers guessing how to fix their code issues in production
Operations teams relying on inaccurate logs to communicate with developers
Product management teams not aligning with development on a prioritized roadmap strategy
Introducing APM and Business Transactions
The most successful digitally-defined companies connect developers with the goals of the business by introducing application performance monitoring (APM) to developers. APM measures how applications behave under various conditions. It rigorously tests application code throughout all phases of the SDLC and directs developers to the source of issues before their code hits production. Developers using APM can make substantial gains in issue resolution and test how a fix will impact the rest of the code before anything else fails.
A key concept within APM is Business Transaction management. Business Transactions create a unified perception that technical and business teams can align on. It takes developers outside their normal thinking processes and examines the software from the user’s perspective. Instead of breaking down the software by functional areas, such as processing, navigation, and communication, the Business Transaction approach follows individual users’ actions as they move through the application and all the intricate dependencies that exist within a distributed ecosystem.
APM and the SDLC
There are significant improvements that APM can suggest at each of the five steps in the SDLC.
1. Research and Analysis – As you collect data on what stakeholders want to achieve and problems they need to solve, Business iQ can measure the business impact of your application against dynamic benchmarks.
2. Design – This is where wishlists become practical solutions. A roadmap strategy defines what kinds of projects will be necessary to achieve specific functionality. APM and the business transaction approach help developers and product management plan out a common metric for how they view the application.
3. Testing – Still in pre-production, this is where QA takes center stage. The agile process just became much more agile as an APM solution filters potential production issues before they impact customers.
4. Implementation – Perhaps this is the most critical stage for APM, because it can identify and prevent errors or latency from ever reaching the customer. Feel free to unleash production-level load stress tests to mimic a real-world scenario and watch as your APM solution catches bottlenecks in real-time.
5. Support and Maintenance – Now, operations takes control but can have more meaningful exchanges with developers, who are already familiar with APM. The winner is the business, that is able to exceed customer expectations thanks to cross-functional alignment.
The Agile Development Bed
In this new connected world, demands are on constant improvements in speed, features, and security. Production environments are agile development beds where code pushes and app updates run on a regular schedule. APM brings developers, operations, QA, and product strategy into alignment around a singular set of tools and goals — just as the master craftsmen did a millennium ago.
Stay tuned for more from AppDynamics as we continue to strive to help developers improve code, improve SDLC efficiency, increase application performance, and reduce their MTTR.