Showing posts with label Continuous Delivery. Show all posts
Showing posts with label Continuous Delivery. Show all posts

Monday, October 6, 2014

Agile Open Day at Red Hat Beijing Office

On 17th Sept, during Agile Open Day at Red Hat's Beijing office, I had the opportunity to train, interact, connect and learn with teams.
Although the nature of the event meant to be open but we tried to keep our focus on following topics:
  1. Introduction to Agile, Overview of Agile Manifesto and Framework
  2. Agile Methods e.g. Getting Agile with Scrum
  3. Agile Estimation
  4. Story Writing
  5. Agile Planning e.g. Vision, Roadmap, Release, Sprint, Daily
  6. Agile Games
  7. Agile Project Monitoring
  8. Agile Adoption
  9. Agile Quality
  10. Best Practices
The event had remarkable turn around of 50+ people, who took time off to be there but I must admit I was mostly impressed with the audience for following aspects:
  1. Variety and Background,people from different age groups and teams turned up e.g. Kernel, Product Engineering, QA, Project Managers, Leads, IT, System Admins  etc.
  2. Remarkable enthusiasm
  3. Being involved
  4. Willingness to learn and share from their own experience.
We make use of Agile Games to ensure whatever I covered during presentations can be reflected by getting everyone involved. This has really paid off well as everyone held their own perspective but at the same time everyone performed as a team and had fun at the same time :) If you are an Agile Coach or Practitioner or Scrum Master, I recommend you to make use of Agile Games and you should consider it because [1]Games are fun [2]It helps to reach consensus faster by understanding everyone's perspective [3]Everyone's objective is common i.e. To Win.  For instance, we had played "20/20 Vision: For Understanding Customer Priorities"
 
You may register for such games at http://www.innovationgames.com/agile-teams/ and also there are many such websites which allow you to download content of games and play them live on their website, use it at your convenience. 

Playing and Learning with Agile Game

Game: 20/20 Vision [Understanding Customer Priorities]

After each topic, I had asked teams to highlight their experience about the areas, where they were expected to talk about [1]what went well so far ? [2]what didn't go well ?  This had paid off remarkably well as it helped each participant to learn from everyone else's experience, and allowed everyone to come up with solution and all I had to do is facilitate it. 
 
We continued this effort even after the event, as on today I have received about 90 emails from participants, the subject/content are pretty much common and almost everyone's tone were similar [1]they have described the challenges they are facing, [2]why they are facing such challenges they think, [3]they suggested solutions to overcome them using agile best practices and [4]all they were seeking from was reflection or confirmation if their plans were on the right track and we learnt to continue to adapt. I am extremely happy to receive such emails and I welcome more because from everyone's experience I am learning a lot. Also it allows individuals/teams to think about solutions and strategies, while keeping best practices in mind as ultimately the fun is to see everyone improving continuously and at their own.

Finally I published a survey to receive feedback about the event and I am immensely happy to see the NPS score on the highest side, people are willing to join such events again and this has triggered Red Hat Core Agile Ambassadors team to focus on APAC.
 
I thank everyone who had helped me to host the event at Red Hat Beijing office. Also I thank everyone for such grand reception, for participating and contributing to the Agile Open Day. 
 
Be Agile! 

Friday, January 10, 2014

The road to Continuous Delivery


Continuous Delivery it's a software development practice where you make sure that your application is ready to be deployed to production at any time. You’re not only making sure that when a developer commits a change is, it is correctly integrated by building and unit testing your application (Continuous Integration). You’re also making sure that your application is always ready to be deployed by running automated and/or acceptance tests on it and testing the release process itself.

Practicing Continuous Delivery gives you several advantages:
+The time from idea to deployment to production (cycle time), is shortened.
+By shipping the product early you are encouraging early feedback. The faster you get your software to your end-user, the faster you get feedback.
+You’re always ready to deploy to production. You do not have to spend time making and testing a release.
+Because you’ve already tested the release process itself, deploying to production is simple and error-free.
+You are getting ahead of the competition and making your release process a business advantage.

How to implement ?
  • Ensure both your developers and system administrators are responsible for deployment. Traditionally, the system administrator is responsible for deploying to production. By making your developers responsible too for deployment you are encouraging a culture of collaboration (DevOps) and lowers the chance of errors due to miscommunication.
  • Find out what your release process looks like, make it reliable and repeatable and automate as much as possible. Make every step of the process reliable and repeatable. When your steps are reliable and repeatable, then they can also be automated. As our goal is to automate each step.
  • Setup one single way of deployment to an environment. Make sure that you define a single way to deploy a release to an environment, whether is it the test environment or to production. If you do this, then you’re also testing your deployment process itself.
  • Test on a production-like environment. If you test on a different environment than your production environment, then there is a risk that your deployment to production doesn’t work or worse: your end-users experience runtime problems due to different software versions of third-party software and libraries.
  • Quality first Keeping your application deployable should get higher priority than adding new features. If an error in your release process occurs, fix it as soon as possible.

Where do I start ?
It takes effort to fully practice Continuous Delivery. But you may start slowly by:

  • Let your developers and system administrators work together on deploying your application.
  • Visualize your release process.
  • Make steps of your release process reliable and repeatable