Mature delivery processes open the door for Business leaders to drive their business based on continuous customer feedback and for programmers to initiate business change.
See how Atlassian tools help climbing the maturity levels - Atlassian development flow is a fluent process throughout the whole organization.
5. *
1: Initial â
Ad hoc deployments.
A few smart people
performing heroics
2: Managed Planned releases
(the team sets a
release date and
manages to it)
3: Defined - Regular
releases over a
defined period with
interim milestone
builds
4: Quantitatively
managed Release on demand
(Software is always in
a releasable state)
Continuous Delivery: A Maturity Assessment Model
Source: ThoughtWorks
5: Optimizing Hypothesis-driven
delivery. Continuous
deployment
capability enables
business innovation
6. Innovative Management
Challenge did not stop us
This is a journey âŠ
- Integration Tests with changing data model
- Unified build process and sorting out a Dependency Hell
(~80 Java, ~20 .Net)
- Automatic setup of virtual test environment
Hello everyone,It is good to see you all here.My name is Annie Ioceva, a Product Manager at Nemetschek Bulgaria. I have 15 yearsâ experience in the fields of software development, project management and Atlassian solutions.Today I will be speaking about practices that speed up software delivery â such as Continuous Delivery.We will see why Continuous Delivery is so important for the Business and for the IT shops. These arenât any new findings â the question is why we have not adopted these practices to their full potential and how we can be better.At the end of the presentation I will show a demo of Atlassian development flow.Now, to the point.
How fast should we be?Let us see what Forrester Research results are showing.As we can see â the business expects new services to be delivered in less than 6 months (3 to 6).
The reality is that 70% of the projects are delivered more slowly than expected. The majority are delivered in 6 to 12, even 18 months.If it takes a telecom giant 1 œ years to release a new model, would this be adequate to the dynamics of a highly competitive market?The same is valid for companies who need custom build software in order to launch new services and products.So what can we do in order to speed up the delivery?
What will give us the speed to innovate?We have to find the right approach âŠMany practices have emerged in order to make development adaptive, flexible and responsive to the fast changing and unpredictable environment. Practices like Scrum and Kanban focus on Project Management - while others such as Continuous Delivery focus on automation of product assembly and delivery. Today I would like to go into more details about Continuous Delivery.One way to start with it is by reviewing a maturity model - describing whatâs the beginning state (whatâs kind of pathological), what is the extreme target and the steps in between.Looking at the model we can see where are we now, where we would like to be, and some models also suggest steps to achieve next levels.
Here I have selected the model developed by ThoughtWorks. Let me walk you through it.1) InitialCapable of doing ad hoc deployments of services when they are readyTeams have hard time predicting when those services will be production quality and are dependent on the actions of talented (or long-serving) individuals. If youâve ever been on a project where the build engineer leaves and everyone else is afraid to touch the build scripts for fear of breaking something, then you know what it feels like to be in this initial state. At the initial level of maturity, there are many manual steps involved in deploying a new version of software service. As a result, a full release cycle (inclusive of testing) can take days or even weeks to complete. Offline release window is required (e.g. Friday evening releases)Releasing a new version of a service is risky, itâs a high-ceremony process, with approvals required by IT and business leadership. 2) A Managed Level Of Continuous Deployment Capability Introduces An Adaptive Delivery ProcessRelease schedule is planned and dates are agreed upon. Since the business needs are usually greater than capacity - the level is characterized by frequent negotiations over requirementâs priority, defects, and system capabilities versus budget and the release window.Creating a managed environment implies significant automation of the build, test, and deployment process. As a result, the time it takes to ready a distinct release (inclusive of testing) drops to days.While the speed of service releases increases under a managed state of continuous deployment, there is still enough latency to prevent release on demand.  3) A Defined Level Of Continuous Deployment Capability Builds Quality Into The Release ProcessThe release process becomes a regular key indicator of project health. Build from trunk I made at least once a day; and developers will ensure they don't have more than a day's work sitting on a branch in version control. Accordingly, branches to the main release trunk are short-lived, and the result is a significant reduction in system integration issues.We also observe automated testing of builds (also known as commit tests). They assess the health of each build and evaluate its suitability for further testing. If commit tests fail, itâs a big deal, and the development team is immediately alerted.Deployment of new service versions is further accelerated by automating the process of provisioning integrated environments (i.e., setting systems up for testing and tearing them down when finished). Changes to database components are also versioned and controlled, database creation is automated, and migration is automated as part of the release management process.While service delivery is much more predictable than the initial or managed stage of maturity, it may still not be as fast as business leadersâ desire.            4) A Quantitatively Managed Continuous Deployment Capability Enables Release On DemandAt this level teams reach a critical point âwhere they can deploy a new release whenever one is needed. From a business perspective, the speed of service development meets or exceeds that capacity of the business to assimilate new services. Software development capability enables business innovation. As code deployments become more continuous we also see shift in organization structure. Instead of vertically organized centers of excellence (e.g., business analysts, development, QA and operations), we see an organizational shift to cross-functional product teams. Traditional barriers between teams recede. From a developerâs point of view, âdoneâ means tested and working in production â not that the code has been checked into the version control system or is dev. complete.Deployments of individual changes in source code can now be performed in minutes, and thereâs no reason a team canât do multiple deployments to production in a single day.Test-driven development and acceptance-test driven development become core processes for development teams.  5) An Optimizing Level Of Continuous Deployment Allows Software Developers To Drive Business ValueSoftware development teams drive a continuous stream of incremental innovation. They form hypotheses about customer needs and how they can serve them, run experiments to test these hypotheses with customers, and then use feedback from their experiments to make design and service implementation decisions based on the best course of action. A hypothesis-driven development model more closely resembles classic scientific inquiry than traditional application development. A long list of requirements is replaced by testable hypotheses. When new features are proposed, those requesting them must include criteria that specify how their value will be measured. Working at an optimizing level of continuous deployment also requires changes to software service architectures. Developers write code with continuous deployment in mind, supporting patterns such as dark launching and feature toggles to decouple deployment from release. As deployment regularity increases, the releases of specific features or capability shifts from being a technical decision (i.e., when can we deploy it?) to a business decision (i.e., when do we want to turn it on and for what customers?).As the cost of each service deployment trends toward zero, the cost of running discrete experiments also drops significantly and becomes largely a factor of development labor costs.This allows driving your business in ongoing harmony with your customerâs needs. The highest maturity levels require company decision to invest in processes in order to allow the business to be driven by customer feedback.Successful examples for L4 and L5 are companies such as Facebook, Cochlear and Atlassian.
Through our 15 years of Software Development history there have been projects at different maturity levels. As the industry matured, tools also matured and so did our processes â now most of our projects are at 3rd level aiming to reach level 4.Speaking from my personal experience:1) An innovative and bright management gave us the sparkle to start and achieve CI 2) It was not easy but challenges did not stop us:Integration Testing for a changing data model was toughUnified build process and sorting out a Dependency Hell of ~80 Java, ~20 .Net project was a challengeWhen tools were not there â we developed our own3) Continuous Delivery is a journey â we continue improvement as we go. We were not afraid to reshape our processes and change tools.When 5 years ago we started working with Atlassian tools - we realized that these are âourâ tools â they were perfect for our needs. From that point on we knew that the only thing we need to sort out are our processes. Atlassian tools helped us climb up the maturity levels.
As promised in the next slides you will see an integrated Atlassian development flow. The demo was presented at the Atlassian Summit in San Franciscoâs in October. It includes latest tools available and even versions that will be delivered to the market this Christmas.
Brings JIRA into Confluence, and Confluence into JIRA like never before so that agile software development teams can build better software, faster.- as you saw, and as most of you probably do, we created requirements in a table.- letâs go through and create issues for each of them.
- also link sprint to other related documents in Confluence - for example, before you start your sprint, you have a sprint planning meeting. Itâs natural to create the meeting notes here, from within JIRA Agile.- I mentioned blueprints earlier, and here we kick off the meeting notes BP right from JIRA Agile.- add attendees so they are notified, adds goals, sets the agenda- save our meeting notes; have a look at this. Team member missing the meeting
I am going to show you a short movie which illustrates the development flow â from firing a bug through deployment of its fix to production.
http://www.youtube.com/watch?feature=player_embedded&v=OMLh-5O6Ub8Video moved out in order to decrease presentationfile size.
Facebook used continuous feedback to leapfrog their competitors and become the worldâs #1 social network. Itâs not just web companies. Companies in regulated industries like Cochlear are releasing every month. Everyone benefit from continuous customer feedback.Atlassian have moved from Quarterly to Weekly releases.Companies like Cochlear and Facebook invested countless hours and millions of dollars building this up from scratch. Atlassian have taken all the best practices of their experience, and everything theyâve learned and baked that into Bamboo deployments.Bamboo deployment makes teams capable of reaching maturity levels L4 and L5. The tool was the perfect choice for us.What worked for us is not necessarily the best choice for you - you need to find your own approach to Continuous Delivery.
What to take home?At slow delivery speed â IT shops are perceived as order-takingBeing Fast & Confident â opens new ways of collaboration between customers, Business and IT shops. IT shops are then perceived as a partner in business development. I personally think that programmers have a unique view of SW products they develop. They know them from inside-out. They can see quick-wins that no one else can see. Mature processes open the door for programmers to initiate business change - which is an entry point for innovation.Be the drivers of innovation!
And now I will give free gift vouchers for all Atlassian products (for 1 year).You will be able to setup development flow and work as shown in the demo ;)I will exchange the gifts for sharing your experience with Continuous Delivery â for those of you that had achieved high maturity â you can share which where their biggest challenges and winsFor those of you that wish they had higher maturity processes in place â you can share what is a stopper for going further up
I hope I have inspired you and made you consider achieving higher maturity levels.I would be glad to hear your stories and your experience with Continuous Delivery.It you have any question about Bamboo or other Atlassian products - feel free to contact me.THANK YOU for your patience and attention!Have great time with the rest of the conference!