Speaker

Barry O' Sullivan

Barry O' Sullivan

Senior Software Engineer

Dublin, Ireland

I am a software developer from Ireland. I specialise in messy codebases, adding new functionality and migrating legacy code to testable, well structured applications that allow the business to adapt to new needs. I also juggle, but sadly most people consider juggling lame, so I'll settle for being good at legacy weapps.

Area of Expertise

  • Information & Communications Technology

Cultural narratives and the corruption of Software Development

This talk will highlight cultural narratives; the stories we use to explain and discuss the world. It will show how these models affect our thinking and caused the corruption of software development methodologies, agile principles being example, known as "Dark Agile" today.

At the start I'll give an overview of the three main western models, the ceramic model (the world as something made), the mechanistic model (the world as a machine) and the monarchistic model (the world as a hierarchy). With this overview we can then discuss agile and how it follows the organic model (complex system with loose boundaries). Managers and business owners are firmly stuck in the first three models, they view the world as a machine that they must be seen to control, this is why anti-patterns like waterfall and release trains are so popular, they align with those models. They also don't work. Agile, DDD, TDD on the other hand do work, but it's all about accepting that you don't have control and that it's up to the team to make key decisions, not those managing the team.

In short, methodologies don't stand a chance because their principles run counter to the implicit model used by management, re-enforced by our culture and its narratives. That's why agile has been bastardised into a one size fits all process, because it aligns with the models. Any attempts to bring in agile, DDD, or any sort of team focused model is doomed to failure unless these models and their effects are made explicit, otherwise they will silently corrupt these concepts as time goes on.

If we want to fix our organisations, we must be aware of these models and their effects. Let's begin the conversation.

Refactoring legacy: Turning monsters into friends

When people talk about legacy they tend to use aggressive language, they view it as a nightmare that everyone should just ignore and forget. This is entirely the wrong attitude to take and it guarantees failure. Legacy can be a friend that will teach you more about programming than any green field project ever will, it's all about changing your mindset.

This session will take you through the approach you need to succeed with refactoring legacy. You'll learn how to shift your perspective and how to deal with the uncertainty that's ever present when working in legacy. You'll learn how to make changes safely, gain understanding and uncover suitable patterns to apply.

This is a hands-on session were you'll tackle a messy piece of code and apply three simple techniques to gain clarity. At the end you'll be much more comfortable dealing with legacy code and will have both the techniques and the mindset required to improve your existing system.

Code samples will be available in several languages, so you just need to bring your favourite IDE and an environment that can run the code.

Prerequisites:
A laptop that can edit and run Java, C# or JavaScript.

Scratch Refactoring to Understand: Unearthing Your Domain

How do you deal with code that you don't understand? Not all code is well structured and easy to digest, most code isn't. It is our job to take this code and make changes without introducing bugs, and this is by no means an easy task. To make things harder, we actually want to improve this messy code, to refactor it into something more manageable. Well, the good news is that this is possible, you just need a foothold of understanding in that code, and Scratch Refactoring is that foothold.

Scratch Refactoring is a technique that help us navigate and understand messy code, it's about trying out changes to code without committing to them, changes that could otherwise be expensive. It allows us to explore code and domain models without breaking the underlying code. The goal isn't to rewrite, it's to explore mental models of the underlying domain. This is very powerful when working with difficult code.

This workshop will focus on Scratch Refactoring and how to apply it. We'll discuss the concept, look at techniques we can use to accelerate the process, different strategies for gaining clarity, and how tactical DDD patterns can be applied to explore potential domain concepts. Then we will apply these ideas to code we've brought in ourselves. That's right, we'll try out Scratch Refactoring on our own problem space. This is a great way to try out the technique in a domain or codebase that you care about. We'll have a facilitator to answer questions and help you explore.

Barry O' Sullivan

Senior Software Engineer

Dublin, Ireland

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top