Technical Agile Conference
Agile software development is about working in self-organized, cross functional teams. It’s a great way of producing quality software by focussing on getting the best out of your people. Accompanying these human factors and cultural changes is a whole host of technical issues. For example, what should our design and architecture look like? What about test automation? We need branching strategies, build pipeline designs, and production monitoring dashboard layouts! Where do we start?
This conference is about dealing with the technical questions that emerge when we start working in an Agile way. While we recognize the importance of human issues and making sure we get our working culture right, this conference will concentrate on the technical side of becoming Agile. The event will be broad in scope and will look at issues common to many technologies, rather than any particular language or tool stack.
You’ll hear from experts in architecture, test automation, technical leadership, and design. If you are a programmer, architect, operations specialist or tester, there will be plenty to get your teeth into. We will have inspirational talks and opportunities for deeper discussions and learning in longer workshops.
The ticketing system is flexible. You can choose to come for an afternoon or a full day, and add any training courses. More details about the different ticket options is available below.
You can sign up for a full day event on May 14th: a series of two morning workshops followed by the afternoon conference.
Pipeline - the Game that Delivers! by Emily Bache
In this workshop we will play a game using a specially designed deck of cards. You’ll work in groups to design a Continuous Delivery Pipeline. What steps should you include? How long will it take from commit to deploy? Be creative and collaborate to come up with the best solution for your scenario. Can you design a pipeline with a short enough lead time to be competitive? The aim is to have fun and at the same time learn more about Continuous Delivery, Lead time and Deployment Throughput. The workshop is open to people of all backgrounds, and some understanding of different kinds of testing and risk in software development projects would be useful.
Due to last minute cancelation (sickness), the second morning workshop on Mob Programming by Åsa Liljegren will instead be run by Emily Bache and Llewellyn Falco.
Additional one-day training courses on May 13th
Visualising Software Architecture with the C4 Model by Simon Brown
It’s very likely that the majority of the software architecture diagrams you’ve seen are a confused mess of boxes and lines. Following the publication of the Manifesto for Agile Software Development in 2001, teams have abandoned UML, discarded the concept of modeling and instead place a heavy reliance on conversations centered around incoherent whiteboard diagrams or shallow ‘Marketecture’ diagrams created with Visio. Moving fast and being agile requires good communication, yet software development teams struggle with this fundamental skill. A good set of software architecture diagrams are priceless for aligning a team around a shared vision and for getting new-joiners productive fast.
This hands-on workshop explores the visual communication of software architecture and is based upon a decade of my experiences working with software development teams large and small across the globe. We’ll look at what is commonplace today, the importance of creating a shared vocabulary, diagram notation, and the value of creating a lightweight model to describe your software system. The workshop is based upon the ‘C4 model’, which I created as a way to help software development teams describe and communicate software architecture, both during up-front design sessions and when retrospectively documenting an existing codebase. It’s a way to create maps of your code, at various levels of detail. Static structure, runtime and deployment diagrams are all covered, so you’ll be able to tell different stories to different audiences. We’ll wrap up the day by looking at the tooling landscape and diagram automation to keep your diagrams in sync with your source code.
Stop Debugging! Test-Drive your Embedded Code by James Grenning
You’ve heard about TDD but have never tried it or don’t quite get it. Test-Driven Development is an important design and problem-solving technique that helps software developers improve product quality and the quality of their life. How? By preventing defects, protecting your code from unintended consequences, and giving you warning when your design starts to deteriorate.
This tutorial describes the problems addressed by TDD, as well as the additional challenges and benefits of applying TDD to embedded C and C++. This class is not just show and tell. Bring your laptop with wifi access and a web browser. If you don’t have a laptop, you can pair with another participant.
You will experience the cadence of Test-Driven Development. You will see how test-driving helps you ensure that your code is doing what you want it to do. We’ll explore the benefits and limitations of test-driving your code. You’ll see how TDD is adapted to embedded software development. We’ll hear and discuss attendees first impressions of TDD. We’ll explore how to test-drive code with dependencies and see how close TDD can get to the hardware.
This tutorial is a great place to discover what it is and how it can help you.
Additional one-day training course on May 15th
Practical Refactoring Workshop by Llewellyn Falco
Refactoring is easy; the theories have been written and even automated in your tools. Yet many of us still have to work every day with ugly code and large amounts of technical debt. When faced with large code bases, we feel unable to begin and often fall back to the old excuses ‘that won’t work here’ or ‘it’s not worth it we will re-write it soon’. (Will that ever happen?)
It’s time to get real. We are going to take a 300 line ball of mud, and show some new approaches and techniques so that you can actually start using those automated refactorings in your IDE to start safely changing your code little by little. The format of the workshop will be a live code example. You will learn:
- How to act without understanding the code
- Effective orders to act on code (do these before these)
- Emergent Design
- Small steps
- How to refactor without needing permission or budget
As we go through the code understanding will emerge as well as a sense of calm and empowerment. We are going to be proving that every 2 minutes we have slightly better code, and that those series of small improvements will add up to massively better code.
Overall, this workshop will give a preview into what the effect of small daily improvements looks like over a few months of a much larger project, so you can see how starting on the path of continuous improvement will impact your own project.