Success Story: Using Agile Methodology for Complex Backend Services Development
Using the Agile methodology in large and technically complicated projects is often taken with skepticism. While many companies can’t imagine their work without Agile, lots of people think it doesn’t fit well for software development. Should we use Agile in such cases? Should we forget it and move on? Infopulse specialists tried to answer this question through one of our big projects that we realized for a leading provider of enterprise cloud integration software.
Embarking the Project
Starting in 2009, Infopulse has been conducting Enterprise Service Bus (ESB) software development that in 2010 became a part of a large applications and data integration product suite. Since that time, we’ve been focusing our main efforts on the provider’s cloud integration platform.
In parallel, Infopulse also participated in the development of IDE solutions and components of backend systems for several other customer’s products, bringing Cloud Computing and Big Data principles into a single platform.
About Customer’s Cloud Integration Platform
The cloud integration platform-as-a-service (iPaaS) marketed by our customer is a unique solution that provides an easy and secure way to integrate cloud and on-premises data and applications. The solution significantly increases business productivity and agility by speeding deployment of Big Data and enabling real-time analytics in the cloud.
For this project, the customer had very strict deadlines and complex requirements. Our client was in need to build a reliable enterprise platform for cloud-to-cloud integration with a dynamic web IDE interface. In general, it involved more than 800 connectors and integration solutions under the PaaS control.
From a technical point of view, it was a pretty complex system that used the native code generation in the Hadoop framework and provided the clients with all of the advantages of parallel processing. To enhance response time and reduce resource usage, various Big Data systems – e.g. Amazon Redshift and Amazon EMR – were integrated into the platform.
Agile in Software Development Process
We decided to build our processes around the Agile principles. Our practical experience allowed us to use the benefits of the Agile software development and quickly implement them to solve the client’s business challenges. Here are some practices we used:
- Pair Programming. To provide an efficient knowledge sharing we’ve used a Pair Programming practice, which allowed people switching between the teams during the sprints and shift their areas of activity. Consequently, all team members had an opportunity to participate in all parts of the development process. Thanks to a much deeper engagement, all team members could better understand their colleagues’ responsibilities and were able to back them up in future. This technique became our primary method for constant knowledge sharing, allowing us to bypass knowledge bottlenecks.
- Blitz-conferences were great for information sharing to increase team awareness on both sides. Infopulse achieved this through involving different experts from our competence centers. So the customer and our developers could consult with invited experts about any questionable technical aspect they might face. In this case, we engaged colleagues from DevOps and Web teams to widen our team knowledge about these specific domains.
- Bingo-reports. This practice allowed developers to share their mini-reports made during “investigation” period, and, as a result, quickly and effectively update ideas and strategy.
Benefits of Agile for our Team and the Customer
- Thanks to Agile implementation, our cross-functional team was able to solve complicated tasks in short terms without delays. Customers entirely experienced its potential during our work: velocity of the team and burndown charts could be easily analyzed and tracked, which allowed us to understand and estimate the scope of the project from the very start.
- While working with Sprint Backlog, it was possible to refocus the team to first complete the most urgent and high-priority tasks.
- Because of proper planning, we could work with complex tasks through forecasting all possible bottlenecks, as well as provide an efficient workflow and timely product release.
Agile has proven to be extremely beneficial both for our client and for us!
Despite existing skeptical frame of mind that Agile is inefficient for complex projects, our experience shows that this methodology is effective even for the most technically challenging deliveries.
We believe it is extremely important for all industries to understand the strengths of Agile approaches since the participation of customers directly influences the implementation of the methodology and its principles.
After many years of successfully working with the Agile, we’ve distinguished the main pillar of it that is of particular importance for us: Continuous Improvement. We systematically seek opportunities for streamlining our work and take any effort to improve the efficiency and quality of our products, services, or processes – all to generate extra value for our clients.
Want to know more about how Infopulse practices Agile software development? Stay tuned to read our next article about implementing the Scrum methodology in a fixed-price project!