About  Contact  Help      
For up to £250 Bonus for sports, use our exclusive bet365 Bonus www.abonuscode.co.uk Claim your bonus and start betting at bet365 now.
PM Essence
Continuous Integration & Continuous Delivery using Agile
 
- Ranan Bhattacharya

Continuous Integration & Continuous Delivery practice recommended by the Agile Software Development Methodology which has been able to deal with some of the traditional challenges of development to help product teams optimize and create streamlined iterative release management process that is predictable to a large

extent.

 

As per my experience Mindset of Minimum Viability and Right Size Rule facilitates the process.

auga3img1

Image – Phases of Agile Development, explains how proper staging of coding, building, testing and deployment makes the whole release cycle more predictable

 

Mindset of Minimum Viability – In Continuous Integration & Continuous Delivery practice we develop a small but fully functional feature-set rather than sweat over an ambitious list of features that inevitably results in partially functional and often a buggy release. The key is to change the mindset of the team. Every team member needs to understand that the customer needs a set of completely working features rather than a big list of partially functioning ones

 

Right Size Rule – "You aren't gonna need it" (acronym: YAGNI) principle helps make the change. During product development the team should question and challenge the premise of the release so that we arrive at the 'right size' of the release that meets the customer's expectations of the product.

 

What are the benefits?

 

Product watchers have found the typical user communities use only a part of a product's feature set. For instance, survey statistics indicate that 90% of MS Word's user community uses 10% of this functionality. Hence it is very important to develop the right set of functionality and release to the customer when they need it. The benefits of this approach are multifold. 

 

• Faster go-to-market

• Smart Product Backlog Management

• Real time response to customer issues

• Customer Delight

• Investing in the right areas

• Minimal risk of failure

 

The Continuous Integration and Delivery model helps mitigate the risk that comes with the question “Are we building the right product?” to a large extent. Since this methodology is inherently nimble it enables immediate course correction in terms of ensuring the right features are released to customers.

auga3img1
Image explains the process flow – Incremental development & testing. Testing should immediately followed by testing at every step. Test-driven development can be an option where a developer creates automated unit tests that define code requirements then immediately writes the code to pass the test case.

Core Principles of the Practice

 

Continuous Integration – across sites and time zones

Continuous Integration is the process of applying Quality Control along with the development of any software. The essential requirement here, for the multifunction teams – development, testing and documentation, is that the features are continuously built, tested and integrated. This process also supports teams working in multiple geographical locations and across time zones to effectively collaborate and delivery fully functional releases.

 

• Test as you develop the product

• Automate the Build process

• Build the product on every code commit

• Automating regression testing

 

Simulate a production-like environment for daily testing

 

The key is to continuously integrate development and testing activities in a manner that enables software to get tested incrementally along with the development so that the issues get detected and fixed at the earliest.

 

Continuous Delivery – to the remote customer

Continuous Delivery is the technique to allow the software to be packaged and released in regular interval without much manual intervention. The essential requirement here is to deliver to the customer who is “remote” in relation to development teams.

• Delivery Pipeline

• Automated Continuous Deployment

• Automated Acceptance Test

 

Image explains the process flow – Incremental development & testing. Testing should immediately followed by testing at every step. Test-driven development can be an option where a developer creates automated unit tests that define code requirements then immediately writes the code to pass the test case.

 

In today's world customers are not prepared to wait for long time-frames to receive features and then find out that the product is only partially meeting their needs. This has intensified the challenge for software development organizations to find ways to deliver periodic releases as and when the customers want.

 

We believe Continuous Integration & Continuous Delivery practice is gaining more acceptance in the industry because of its capacity to enable teams to deliver solutions of the value, in considerably shorter timeframes.

 

Industry studies report that the organizations take to Agile Methodologies very well in the engineering phase but almost always follow a more traditional release plan of doing a few fixed releases a year. Here again, Continuous Integration & Continuous Delivery can help release well tested list of features in a small bit sized chunks that lead to greater adoption by customers. There are industry figures that indicate upward of 80% improvement in testing and release effectiveness when this methodology was deployed.

 

The approach being very much customer centric ensures that the customer is co-opted into the development process, and results in an inherent commitment on the part of the customer to adopt the product and use it. This leads to a win-win relationship both for the customer as well as the vendor developing the software.