*
*
*

Lean development
Agile development
-> Scrum, Kanban, eXtreme Programming

Continuous Delivery
Dev-ops techniques
*

1: Initial –
Ad hoc deployments.
A few smart people
performing heroics

2: Managed Planned releases
(the team sets a
re...
Innovative Management

Challenge did not stop us

This is a journey …

- Integration Tests with changing data model
- Unif...
Flow
Planning

Development

Release
Planning Flow
Introducing Confluence 5.4: JIRA meets Confluence like never before
Available since today!
Best practices with
Blueprints

Quickly create
& link content

Traceability
Development Flow
Online video is here:
http://www.youtube.com/watch?feature=player_embedded&v=OMLh-5O6Ub8
Branching
Quick & Simple

Collaboration &
Code Reviews

Quality Check
Bamboo Deployments
One Integrated Flow
*
*
Thank you!

Annie Ioceva, Product Manager
Email: aioceva@nemetschek.bg
Nemetschek Bulgaria @ Java2Days - IT shops driving the innovation
Nemetschek Bulgaria @ Java2Days - IT shops driving the innovation
Nemetschek Bulgaria @ Java2Days - IT shops driving the innovation
Nemetschek Bulgaria @ Java2Days - IT shops driving the innovation
Nemetschek Bulgaria @ Java2Days - IT shops driving the innovation
Upcoming SlideShare
Loading in …5
×

Nemetschek Bulgaria @ Java2Days - IT shops driving the innovation

443 views

Published on

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.

Published in: Business, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
443
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • 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!
  • Nemetschek Bulgaria @ Java2Days - IT shops driving the innovation

    1. 1. *
    2. 2. *
    3. 3. * Lean development Agile development -> Scrum, Kanban, eXtreme Programming Continuous Delivery Dev-ops techniques
    4. 4. * 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
    5. 5. 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
    6. 6. Flow Planning Development Release
    7. 7. Planning Flow
    8. 8. Introducing Confluence 5.4: JIRA meets Confluence like never before Available since today!
    9. 9. Best practices with Blueprints Quickly create & link content Traceability
    10. 10. Development Flow
    11. 11. Online video is here: http://www.youtube.com/watch?feature=player_embedded&v=OMLh-5O6Ub8
    12. 12. Branching Quick & Simple Collaboration & Code Reviews Quality Check
    13. 13. Bamboo Deployments
    14. 14. One Integrated Flow
    15. 15. *
    16. 16. *
    17. 17. Thank you! Annie Ioceva, Product Manager Email: aioceva@nemetschek.bg

    ×