Test-Driven Development Guided by ZOMBIES
Co-Author of the Agile Manifesto, Author of TDD for Embedded C, & Founder of Wingman Software
Have you had a hard time figuring out where to start with Test-Driven Development. What if ZOMBIES could help you build code that does exactly what you think it is supposed to do? What if ZOMBIES helped you build a test harness that can keep your code clean and behaving as expected for a long and useful life? ZOMBIES can help!
I’m not talking about a legion of undead or virus stricken. ZOMBIES is an acronym that helps you, the engineer, decide where to start, what test to write next and make sure that, to the best of your ability, you do not forget critical tests and production code behaviors. We’ll go through the thought process and steps with a detailed code example.
Software Architecture for Developers
Author & Consultant in Software Architecture
The software development industry has made huge leaps in recent years; with agile, lean, software craftsmanship, evolutionary design and microservices being just a few of the buzzwords we throw around. Despite this, software development teams are often more chaotic than they are self-organizing, with the resulting code being more of a mess than was perhaps anticipated. Successful software projects aren’t just about good code though, and sometimes you need to step away from the IDE for a few moments to see the bigger picture.
This session is about that bigger picture and is aimed at software developers who want to learn more about software architecture, technical leadership and the balance with agility. This talk will debunk some of the common myths as we look at five things every developer should know about software architecture; a guide to software architecture on modern software projects that’s pragmatic rather than academic and lightweight rather than ‘enterprisey’.
Test Driven Development with Approvals
Independent Agile Coach
You can have it all - correct code, developed quickly and effectively with tests. Llewellyn will show you how. What’s the catch? Well you need skill and practice. Some great tools help though. This talk includes a demonstration of what it looks like when you are good at TDD, and when you are using Approval testing. Approval testing is often used to get legacy code under control, but is also a powerful approach for new development. Come and be inspired by a master developer as he takes full advantage of his tools when designing new code, from scenario to finished feature.
Technical Leadership and Empowered Teams
Technical Agile Coach at Praqma
As technical leaders we aim to help all the developers in our organizations to make better choices. How do we do that when empowered/Agile/DevOps teams make many choices independently? In this talk you will hear about a coaching technique for building up people, skills and teams.
In this talk you will learn what Mob Programming is, what it is good for, and how I am using it. I hope hearing about my experiences will help you to add this coaching technique to your arsenal as a technical leader in a modern, Agile, DevOps organization.
Four Years of Constant Mob Programming - A Retrospective
Software Developer at Aptitud
After four years of mob programming at companies in differing businesses like traditional banking, fintech, media and travel, a retrospective is well overdue. Let’s look at negatives as well as positives. Are there any patterns to why mob programming fails or succeeds? And how can we give a team - everyone involved, not just developers - the best conditions to experience the benefits of this way of working?
Tue, 14 May 2019, 12:30—18:00, Gothenburg View Address
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:
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.
Visualising Software Architecture with the C4 Model Simon Brown
Stop Debugging! Test-Drive your Embedded Code James Grenning
Morning Workshops registration
Pipeline - the Game that Delivers! Emily Bache
Mob Programming Llewellyn Falco & Emily Bache
Lunch (for morning workshop participants)
Welcome by Emily Bache
Test-Driven Development Guided by ZOMBIES James Grenning
Technical Leadership and Empowered Teams Emily Bache
Break - Cake & coffee
Test Driven Development with Approvals Llewellyn Falco
Software Architecture for Developers Simon Brown
Networking - drinks & snacks
Practical Refactoring Workshop Llewellyn Falco