CITCon is the most intense event I know on the subject continuous integration, continuous deployment / delivery and DevOps. Discussion raged on throughout the day although we manage to keep it to minor scuffles when talking about feature branching…
With so many ideas to process after the event, here are my top 7 to start with.
Any practice that disallows refactoring is bad. So if you can’t feature branch and refactor, then don’t do it.” #citcon
Patrick Debois first coined the term DevOps and it was great to have his insight at the conference. There is still a gulf between developers, testers and server teams resulting in most software being very hard to deploy. There is a broken feedback loop in many companies and even doing something as simple as talking to the server team about deployment can start you on the road to great improvements.
Getting continuous integration working well for your company is still a challenge for most. Whilst its pretty simple just to plug your builds into the CI server and get it to run your tests, that raises more challenges in itself:
- How often should we run our builds?
- What actions should be in our builds?
- What information should our builds tell us?
- What do the results mean?
- How can we improve the way we do things?An important step is to work out what you want to get from CI, with in the context of your software development efforts and the wider business goals.
Deployment is often a painful experience for teams and by delaying deployment and not doing deployment dry runs a vicious cycle forms. As its painful, teams shy away from deployment - so when the time finaly comes there is much more to deploy and more opportunity for things to go wrong.
If its painful, do it more often so you learn how to manage and reduce the pain. As with code tests, the more often you run them the more feedback you get and the quicker you can resolve issues.
Carrying out dry runs of the deployment in different environments is invaluable and less risky that production. Dry runs can be wiped and carried out again and again helping to ensure a smooth deployment and gather feedback to make the process more effective.
Developers that understand the needs of the company they work for and the concequences of their actions are the ones that truely become invaluable and help a company be successful in a sustainable way. Whilst some companies can survive Mortgage Driven Development for a little while, most will suffer badly.
When going beyond the basics of CI and moving to a continuous deployment / delivery approach, a solid understanding of the business is vital if you want to improve in a positive direction.
Understanding you system requires a good amount of monitoring and reporting on events. There are a wide range of tools, such as Nagios that will produce detailed reports and real time warnings of issues.
Some issues can only be seen historically, so as you build up monitoring information you can identify patterns of behaviour and discover ways to avoid issues and improve the way the system works.
Also visualise the way you work and the way teams work together using techniques like wallboards & kanban boards.
I think the following tweets show the diversity of subjects covered @CITCon and the sheer enjoyment that can be had in the software development world.
Organisational anthropology is a mechanism to incite or suppress insurgency. Didn’t expect that at conversation at #citcon
Great fun talking about BDD, Cloujre, CI Server build jobs, visualisation, wallboards and double loop learning @citcon
Playing with robots is cool, watching robots automatically run tests on an Andriod phone playing Angry Birds was amazing.
Using Chuck Norris to discuss negative behaviour
Legacy code is only a problem for successful products
Are your [agile] stories boring you? Then write more interesting stories. Improve the language. Adjectives, adverbs…
Notion: both feature branches and feature toggles should be short lived and aggressively tested.
Cucumber is an assumed starting point at #citcon, interesting
In Feature Branching discussion. Reminds me of the blog I wrote a while back
CD is about delivering confidence
This work is licensed under a Creative Commons Attribution 4.0 ShareAlike License, including custom images & stylesheets. Permissions beyond the scope of this license may be available at @jr0cket