I had the privilege of attending the second year of CRAFT, a tech conference in Budapest focused on software craftsmanship. The last year (which was the first time it was held) had completely blown my mind. A year later I still keep referring back to the talks and haven’t finished fully absorbing them and putting all those inspiring ideas into practice.
Craft Conf 2014 was better. The speakers came from a more diverse background, the talks spanned a multitude of unrelated topics and I remember it being very, very hard to choose from talks happening in parallel. Each minute spent there was a revelation.
This year, though, many of the talks seemed to be plug for a company or a product, in disguise. Certainly there were brilliant takeaways, but not at the same scale as the previous year.
In my opinion, 2014 was also held in a better venue, although the 2015 venue was outstanding too, as far as tech conference venues go. But the rooms were too far spread out (the map was inaccurate), the acoustics were bad everywhere except the Main Room and unlike 2014, the WiFi was not flawless. Lastly, there were far fewer food choices, longer queues, no bottled water (even for the speakers) and therefore a lot of glasses clanking.
On the positive side, the schedule was followed down to the minute, the live video streaming was smooth and considering the scale of the event (1300 attendees), everything was beautifully organized. I’m not complaining – it’s just that the first CRAFT had set a pretty high standard.
(Video and Slides links will be updated by next weekend, when they become available)
Agile Engineering in a Safety-Critical World
By Nancy Van Schooenderwoert | Video | Slides
“Instead of freezing the ocean, learn to ride the waves” – Nancy’s talk was mainly about how our need for predictability for effective coordination is at odds with our need for fast learning to handle unknowns. She pointed out that in the agile context, “Architecture is any design decision that you cannot easily change”.
There was the customary reference to WikiSpeed to dispel the myth that hardware changes can’t fit within 2-4 week iterations. And an interesting one to a paper called TIR45 from AAMI: Guidance on the use of AGILE practices in the development of medical device software.
Sven’s talk was both informative and inspiring. Some of the key takeaways:
- Innovation needs time
- Stop and celebrate wins, however small they may be
- Balance your passion for code with your passion for customers
- Turn your passion into product
- Value trust, autonomy and transparency (Atlassian achieves this by using chat over other communication means)
- Products come and go, culture stays
Building Reliable Distributed Data Systems
By Jeremy Edberg | Video | Slides
This one was good, until we went deep diving into the NetFlix Simian Army, which was also good but could have been summarized in just one slide. One thing that stood out from Jeremy’s advice was to “build for three”, because if you can overcome problems there then the solution can be [more] easily scaled up to n.
Don’t forget to check out NetFlix Open Source Software Center.
Oh! You Pretty Tools
By Andrew Bayer | Video | Slides
Andrew gave an interesting talk about the role of internal tools and their developers in the organization, covering both the pros and the cons. For example while making the build or buy decision, consider the fact that people are more expensive than software. And some thoughtful insights, like how Integration Tests can double-up as the roadmap to your tool’s usage. He also revealed that Cloudera runs ~2000 Jenkins CI builds every day(!)
The rest of it was basically about, and lessons learned from, CloudCat.
Testing and Integration (The Remix)
Ines entertainingly summarized everything we know so far, and topped it off with new insights for a good measure. She emphasized:
- The importance of lightweight short-lived branches so that CI is not overlooked
- The more likely a test is to fail, the sooner you should run it
- The testing of provisioning systems, such as Chef Recipes, too
- How test setup time and parallelization are the key factors in minimizing the testing cycle time
She recommended this talk about the Google Build System.
Her punchline was that CI is a predictor of professional maturity at the organizational and individual level, and she ended with a “rantifesto” about building a culture of quality.
Beyond Features: Rethinking Agile Planning and Tracking
By Dan North | Video | Slides
From Cutting to Curing: Dan presented the powerful and inspiring idea that maybe software engineering is more like surgery than the civil engineering principles that we currently use to manage it. Agile methodologies essentially optimize for predictability, and this not necessarily a good thing. He mused on how a 2-week sprint is just enough time for a mini-waterfall, and thus we are all basically whitewater rafting.
After reviewing where the Agile Manifesto has brought us, he set an ambitious new goal to sustainably minimize the lead time to business impact.
He ended with:
- The role of Features, Delivery and Kaizen
- Schedule, Measure, Track, Showcase
- How Value Stream Mapping can reveal surprises like typically a piece of work spends upto 90% of it’s time waiting for dependencies
How To Save Innovation From Itself
By Alf Rehn | Video | Slides
For me, Alf’s talk was the highlight of the event. It was so good and so inspiring that I won’t even summarize it here. Go watch it!
The day ended with a party thrown by EPAM, which included free beer, a DJ-saxophone duo and a surprise flashmob.
You may also want to read my review of Day 3 of Craft Conf 2015.