When most people think of agile principles, they imagine its uses for software development. Agile relies on dividing tasks into short work phases and frequently reassessing and adapting plans throughout. This approach works well for software development, which is probably why its uses have grown exponentially in recent years. In fact, more than 71% of respondents in a recent survey said they were using agile more frequently than ever before.
An agile integration takes the project out of the hands of a single expert working deep in the back office and instead engages an entire team. Together, that team takes the integration from a centralized approach to a distributed model in which all the experts can participate in the project.
In this post, we’ll explore the reasons why teams are shifting to agile integration and highlight some of the most important uses of agile for your next integration project.
Why Use Agile Principles for Integration?
We could go down a deep rabbit hole here, but instead let’s focus on two major themes:
- Communication & Immediate Action
Daily scrum meetings not only keep stakeholders looped in on what’s going on, but more importantly, they provide feedback that is relevant to what’s been delivered so far. Providing feedback while you’re still developing allows for faster changes and reduces the overall cost because the change happened early on, before a large investment was made.
The steady communication of daily scrums also acts as a constant update to the users and helps remove blockers which can slow a project down. If the users realize they need requirement changes, the developer will quickly gain context around those new requirements from the user’s feedback.
Using immediate feedback, adjustments to requirements can usually be made within the sprint cycle, which provides a better quality product.
- Flexibility to Adapt
Unlike traditional projects, where features are determined by the users and it is their priority that determines in which release they become available, Lean Agile development determines feature priority based upon value.
Lean Agile development determines the return on investment (ROI) of each feature. Feature set release plans are based exclusively on ROI.This allows high value features to be moved up to the current release when they are identified.
As the project progresses, new benefits and new priorities may arise. Agile allows teams to pivot to address these new priorities. After each release, the next release plan is reviewed to allow for reorganization of the end product.
5 Ways to Use Agile Principles for Integration
#1 Proof of Concept
Each integration project is its own unique beast. Whether you’re integrating a new type of application, trying to work with protocols that are not supported out-of-the-box, working with legacy systems that have little or no access methods, or using requirements you’ve never defined before, trying out proof-of-concepts to address these challenges can be a benefit to the integration project planning and budget. Use a sandbox environment to test proof-of-concepts in a safe place BEFORE you start bringing them into the integration. For example, testing the feature set of certain access methods against your project requirements.
#2 Use APIs When Available to Reduce the Complexity
APIs can be data oriented or object-based, such as Web services. Working with a data oriented API requires the team to have a higher knowledge of the internal working of the application and how it manipulates data. In this case, we recommend building an API for your API.
By wrapping your data layer API with object manipulation knowledge, you simplify the integration and make it easier for any team member to work without having to know the intricacy of the application. This approach improves collaboration and reduces the complexity of the integration by providing interfaces to connect business assets. These interfaces are both internal and external. An agile integration should utilize this approach as a major part of the integration strategy when faced with legacy or data layer APIs.
#3 Build a Cross-Functional Team
Instead of segmenting teams based on expertise (ex: integration, JAVA, testing) follow agile principles to create a cross-functional team made up of business analysts, developers, and testers. Bringing in perspectives from each of these roles helps bridge the gap of communication during the project and provides an opportunity to collaborate on all levels for faster results.
#4 Gain Faster Feedback with Early Testing
Agile methodologies use two types of testing: a short unit test after a task has been completed to determine if the use case has been met, and another sprint test at the end of the sprint. This determines if the functionality of the sprint is being met and if any of the use cases have to be redone and placed in the backlog queue. This two-step process highlights issues early and provides feedback so acceptance can be confirmed within a week or two of construction.
#5 Incorporate Continuous Improvement
If you’re familiar with agile concepts, you’ve probably heard of continuous improvement. For integration, continuous improvement should be steered through feedback from your stakeholder team and then backlogged and prioritized accordingly. These are optimizations that provide immediate value to the product. In addition, continuous improvement must be considered for adaptations with more indirect value. These include improvements meant to stabilize the product, streamline maintenance, and make the integration more adaptable to change.