Changing our Rhythm: Our Ongoing Journey towards Continuous Delivery

location_city Bengaluru schedule Feb 28th 01:55 PM - Jan 1st 12:00 AM place Esquire

Annual software release cycles cramping the agility of the team? Too many hot fixes reducing the efficiency of your organization? Customers waiting impatientlyfor  the next cool features hot off the press? These are some of the painful and common problems faced by development teams worldwide. In today's world, most things get outdated or out-of-fashion very fast - and software is no different. Users cannot afford to wait for the next cool set of features for a year. They want a steady stream of cool new features that they can adopt and use immediately.

My team follows a development model that we like to call Open Commercial Development - where we're always connected to our stakeholders, our plans are out in the open, and we're always gathering feedback and reprioritizing. We used to have yearly releases of our product - a sort of big bang release with a host of new featres. Based on our stakeholder interactions, however, we figured that our software delivery wasn't agile enough for our customers. Users wanted new features incrementally throughout the year. They especially didn't want to wait a year for a feature that they'd requested that was critical for their business.

So began our journey to Continuous Delivery - an interesting one for sure. It's not easy to deliver new features, manage technical debt, collaborate with users and incorporate their feedback into the new features - once every quarter. To do it consistently, with quality and on time, you need to have a framework in place - a combination of planning, process, automation and team organization - that lets teams focus on the right things to get to DONE DONE for their new features, and at the same time manage their quality and tecnical debt. Over the past year, we like to think that we've put that framework in place, and that is what I'd like to talk about in this session.

 
 

Outline/Structure of the Experience Report

- Introduction: The product we build and the distributed team we have

- The goals for continuous delivery

- Our development process

- Automation

- Our Release Process

Learning Outcome

Agile newbies will get some ideas around moving to continuous delivery,practising agile methodologies. Agile practitioners would benefir from the best practices we follow to ensure a continuous delivery with quality.

Target Audience

Agile implementors, people wanting to move to agile development

schedule Submitted 7 years ago

Public Feedback


    • Giovanni Asproni
      keyboard_arrow_down

      Giovanni Asproni - Methodology Patterns: a Different Approach to Create a Methodology for Your Project

      Giovanni Asproni
      Giovanni Asproni
      Consultant
      Asprotunity Limited
      schedule 7 years ago
      Sold Out!
      90 Mins
      Tutorial
      Advanced

      In the software world we have been looking for “The Methodology” to solve our software development sorrows for quite a while. We started with Waterfall, then Spiral, Evo, RUP and, more recently with XP, Scrum, Kanban, DAD, SAFe (there are many others, but, their impact, so far, has been limited).

      In this tutorial, I'll show why this search for the holy grail is bound to fail--each methodology has strenghts and weaknesses that make it suitable only in some contexts--and I'll describe a different approach based on patterns and pattern languages, that teams can use to create their own methodologies to suit their specific needs, which, in my experience, has a higher chance of success. 

      The approach is based on the observation that all the practices used in all modern methodologies--e.g., user stories, use cases, team self organization, TDD, unit testing, acceptance testing, continuous integration, iterative and incremental development, etc.--come from the same set. Different methodologies just mix and match them differently. All those practices can (and many have already been) described as patterns whose relationships with each other form a set of pattern languages.

    • Naresh Jain
      keyboard_arrow_down

      Naresh Jain - Scaling XP Practices inside your organization using Train-the-Trainer Model

      Naresh Jain
      Naresh Jain
      Founder
      Xnsio
      schedule 7 years ago
      Sold Out!
      90 Mins
      Workshop
      Advanced

      How do you effectively scale skill-based, quality training across your organization?

      Over the years, I've experimented with different ideas/models to scaling skill-based training across an organization. In the last 4 years, I've pretty much settled down on the following model. Its very useful when mentoring teams on skills like Test-Drive-Development (TDD), Behavior-Driven Development (BDD), Product Discovery, Writing User Stories, Evolutionary Design, Design Patterns, Problem Solving, etc. I've successfully implemented this model at some very prominent fortune 500 enterprises.

      The goal of this workshop is to explore what other successful models organized have used to scale skill-based training in their organization.

    • Naresh Jain
      Naresh Jain
      Founder
      Xnsio
      schedule 7 years ago
      Sold Out!
      45 Mins
      Demonstration
      Intermediate

      "Release Early, Release Often" is a proven mantra and many companies have taken this one step further by releasing products to real users with every commit a.k.a Continuous Deployment (CD).

      Over the years, I've built many web/infrastructure products, where we've effectively practiced CD. However at Edventure Labs, when we started building iPad games, we realized there was no easy was to practice CD, esp. given the fact that Apple review takes a few days.

      Our main question was: As mobile app developers, how should we architect/design our apps for CD?

      We were a young startup, learning new behavior about our users (kids aged 5-8) everyday. We could not afford any delay in releasing latest, greatest features to our users. To solve this problem, I believe we've built an innovative solution to enable any mobile app developer to achieve CD.

      If you are building real products, which have platform/3rd-party dependencies and you want to practice CD, this session is for you.

    • Johannes Brodwall
      keyboard_arrow_down

      Johannes Brodwall / Niruka Ruhunage - Remote Pair Programming

      45 Mins
      Demonstration
      Beginner

      Can you maintain agile engineering practices with a distributed team?

      Johannes is the Oslo based Chief Scientist for the Sri Lanka based company Exilesoft. In order to promote agile engineering practices, he uses remote pair programming to connect with teams halfway across the world.

      In this talk, we will go through a practical approach for remote pair programming adopted for high-latency situations. We will demonstrate remote pair programming with a live example and we will discuss the advantages and usages of the approach. We will also cover the practical parts of remote pair programming, such as tools and setup.

      After seeing this talk, the audience should be able to remotely pair with members of their distributed team. They will also get a lot of tips on how to use pair programming effectively in both local and remote settings.

    • Sudipta Lahiri
      keyboard_arrow_down

      Sudipta Lahiri - Capacity Planning for Dynamic Teams

      20 Mins
      Experience Report
      Intermediate

      Fixed price (and fixed scope) projects dominate the offshore industry. These projects have offshore/onsite teams. They often have large team size (over 100s of people in one team).

      Agile thinking uses team velocity/ throughput and uses that to project an end date (Kanban system) or how much scope can be accomplished in a given time duration (number of sprints in SCRUM). They assume a stable team. However, this is not applicable for projects. They experience resource and productivity ramp-up issues. Often, resources keep changing as new projects come in. Projects do not have past velocity or throughput data. Extrapolating historical data from other similar projects, though possible, is inaccurate for multiple reasons.

      This talk is based on our experience of working with such project teams. They want to adopt agile methods. We show how they can adopt the Kanban Method and yet do: A) Initial Capacity Planning B) Assess the impact of scope creep to the project end date.

      The session assumes a basic understanding of the Kanban method.

    • Vinodhini
      keyboard_arrow_down

      Vinodhini / Thushara Wijewardena - Robotic Warehouses, Alien Domain, Offshore developers, Visionary customer : Saved by agile

      20 Mins
      Experience Report
      Intermediate

      Here is a case study of how agile outsourcing can be practically applied even when the business domain is very complex and alien to offshore teams.
      The example is a project in which Exilesoft provided for a leading Norwegian producer of Robotic warehousing solutions. The project involved transforming their legacy application, produced using multiple suppliers and methods, into a newly cast application solution. This project also had its own share of typical challenges.

      • Lacked definitive and reliable documentation,
      • Domain knowledge was limited to a few very busy individuals,
      • Development and redeployment could not interrupt attention to current customers,
      • Complexity was high and design was fragmented, and
      • Focus heavily invested on current product and customer support

      These limitations along with the lack of understanding of agile methods strongly suggested the use of a method adaptive in nature, and not heavily vested in large inflexible legacy elements.
      We commenced the engagement with two pivotal elements; client awareness (agile orientation) and a roadmap of committed involvement. To lay credibility this had to be backed up with proven result delivery in the very early stages. It allowed for flexible adaption, and the creation of an atmosphere that fostered client interest.

      During this session, we will take the audience through a small video clipping of such a warehouse. We will elaborate how the customer and offshore developers worked together using agile in a highly integrated team collaboration model to achieve success within a very short time frame.

      The session will cover the following key areas:

      How such projects can be initiated

      - What type of team model and contract type we used

      - How we did the agile transformation with the customer

      - How the roles were assigned between offshore and onshore team members

      - To improve remote collaboration the tools and techniques we used

      - Techniues learned to get teams up to speed with the new domain

      - As we go along, the process changes we identified and implemented to make things work better.

      - Agile engineering practices and team dynamics that helps in such situations

    • Andrea Heck
      keyboard_arrow_down

      Andrea Heck - Distributed Product Owner Team for an Agile Medical Development

      Andrea Heck
      Andrea Heck
      Agile Coach
      Siemens AG Healthcare
      schedule 7 years ago
      Sold Out!
      45 Mins
      Case Study
      Advanced

      We are developing medical imaging and workflow software in an agile way with development teams distributed to several countries. One of the major challenges is how to set up and communicate within the Product Owner team. There we have to deal with the distribution, e.g., have the Product Owner either onsite with her peers or with her Scrum team, travelling, or with proxy. We need people who are good in two different fields of knowledge: medical and software development. As a third issues, the environment of the customers may be different in different countries.

      We have ramped up local Product Owners in different countries, have found local collaboration customers, and have developed a set of communication channels and workshops how to synchronize Product Owners in the team, share a common vision and backlog with their Scrum teams, and collaborate with customers locally and globally.

    • Prasanna Vaste
      Prasanna Vaste
      Business Analyst
      ThoughtWorks
      schedule 7 years ago
      Sold Out!
      20 Mins
      Experience Report
      Beginner

      On Agile projects we estimate user stories in order to allow team to

      1. 1. Track velocity
      2. 2. Decide scope for the Iteration
      3. 3. Help Prioritize stories
      4. 4. Help Release planning

      But most of the time we faced issues with estimation. It takes lot of time in estimating user stories, managers tend to relate estimate to number of days it will take to complete the story, in some teams estimate is equal to deadline. Most of the teams which use story points to estimate the work face these issues. This results in lack of confidence on development team when stories are taking more time to complete.

      Here I am going to talk about better alternative for both the suppliers of software products (financially and ethically) and their customers (internal and external). This alternative is being used in real companies delivering to real customers with great effect where team uses count of stories completed in an Iteration as measure of progress. Will talk about how this alternative can be used to track velocity, prioritize stories, planning Iteration and for release planning.

      I will share some exmples from my past projects where team did not use story points/velocty but used count of stories completed in Iteration to measure progress and also as best indicator of future performance.

    • Neil Killick
      keyboard_arrow_down

      Neil Killick - The Guessing Game - Alternatives to Agile Estimation

      Neil Killick
      Neil Killick
      Lead Agile Coach
      MYOB
      schedule 7 years ago
      Sold Out!
      45 Mins
      Talk
      Intermediate

      Agile promotes empiricism and change, yet many practitioners continue to scope out and estimate delivery times and costs for software products and projects.

      Defenders of the art of estimation claim that we need to estimate software projects in order to answer common business and customer questions such as:

      • Should we go ahead with this project? (go/no-go)
      • How much will it cost? (bottom line)
      • When will it be done? (predictability)
      • Should we do project B instead of A? (prioritisation)

      This session challenges participants to flip these questions on their heads and seek alternatives to estimation rituals. It covers the many risks inherent with an estimation culture and demonstrates real, practical alternatives, both at the portfolio and the sprint level.

    • Ravi Krishnan
      keyboard_arrow_down

      Ravi Krishnan - Agile Transformation Maturity Model

      45 Mins
      Experience Report
      Advanced

      Organizations which have diverse functional units and technology portfolios (BI, Mobile, Web Application development, Web Design etc) following different methods cannot make an overnight or a sudden transformation to following a mature model of Agile method.

      These teams need to come up with a structured approach towards Agile adoption and transformation enabling the different teams to make a gradual progression towards the adoption of Agile in their projects and teams.

      We at Aditi Technologies realized this and came up with a Aditi Agile Transformation Maturity Model which provides guidance to the different project teams and functional groups on the transformation journey within their engagement. The salient points of the Maturity model include:

      * Agile Project Planning and Management Maturity Model - Traditional teams are used to tradition planning methods plan around the typical 3 constraints of Scope, Cost and Time. A transformation to a model where emphasis is on delivering the highest priority items is arguably one of the more difficult lifecycle areas of the transformation. The Agile Project Planning and Management maturity model provides guidance to such teams on moving from a managed team services model to a self directed and self managing teams services model.

      * Collaboration Maturity Model - Moving from a SLA driven environment to a collaborative environment is again a massive cultural mindset change for the different teams. The collaboration maturity model at Aditi for Agile engagements provides a framework for teams to start collaborating better in a gradual manner. Starting with a well defined collaboration model within the Agile sprints between the QA and Development teams leading to an end to end collaborative lifecycle involving the different stakeholders is the overall approach we have adopted at Aditi to improve the Collaboration within the lifecycle in a phase wise manner.

      * Agile Requirements Engineering Maturity Model - The Aditi AREMM provides the business and product ownership teams with a gradual migration approach from the traditional Business Requirements Document based Requirements Management approach to an Agile approach towards the same incorporating basic principles like story card based requirements engineering to a more collaborative and leaner approach incorporating starting principles such as Product Backlog and Story Cards and moving to more advanced models such as executable specification models prescribed by BDD.

      * Engineering Maturity Model - While there are well prescribed best practices and models within the Engineering phase for Agile teams, adopting an all at once approach can be fraught with danger for the teams especially given the constraints of a global delivery model such as staffing pyramid (practitioners at different levels of capability including graduate hire resources), the Engineering maturity model provides teams with a prescriptive model around adoption starting with relatively basic principles like refactoring to adoption of more advanced practices like TDD, BDD etc.  

      * Metrics - Based on the level of the maturity of the Agile adoption, Aditi has come up with prescription around metrics the teams could adopt. These are classified into different buckets using the MoSCoW prioritization principles.

      * Tooling - Aditi has come up with a well prescribed guideline for Agile teams in the adoption of tools across the lifecycle (Ex: for Collaborative lifecycle management, Continuous Integration, Build management, Code quality management etc) and has come up with bootstrap assets which teams can leverage to run with when they start the transformation.

      * Organization readiness - For an organization to embrace Agile, many of the current internal practices (Recruitment, Sales etc) and current infrastructure (Ex: Collaboration platforms, infrastructure) needs to scale up as well. A well defined maturity model towards transformation allows organizations to adopt a more phase wise approach towards these areas of transformation and helps the different business units to also scale up at a sustainable pace.