Workshop: Clean Software Design & Clean Code

Have you ever been frustrated by bad code, bad software design and unusable documentation? Do you want to practice ways to make it better in a safe environment? In this workshop, you will learn:

Clean Software Design

  • Use the four rules of simple design to judge your design.
  • Apply the SOLID principles to your code.
  • Design for Domain Events.
  • Use CQRS and Event Sourcing do de-couple your modules.
  • Make code easy to understand with Domain Driven Design.

Test Driven Development

  • How and why to write the tests first.
  • Remembering to refactor and to commit on green.
  • When and how to use mock objects - And when not to.
  • Using TDD as a design technique - Listening to your tests.
  • How to recognize and avoid evil unit tests that will get in your way later.

Clean Code

  • Finding good names for classes / methods / variables / tests.
  • How to write self-documenting code and how to document "the rest".
  • Use the four rules of simple design to judge your design.
  • Use the Single Level of Abstraction heuristic to split your functions / classes.
  • Refactor to SOLID and to Design Patterns.

Read on to learn how this workshop will help you, or skip to the bottom to book the next upcoming workshop (or to show interest in workshops near you by subscribing to the newsletter).

Create software designs that are easy to change later.
Create software designs that are easier to reason about.
Write code that is easier to understand.
Write code that is easier to test.
Learn Clean Software Design.

Do you know this situation?

  • You are working on a large piece of software, and the design feels wrong. But you cannot really get a grip on what exactly is wrong - and how to change the design without re-writing most of the software. So your team or management decides to stick with the current design, because changing it is to risky.
  • In design discussions with your team, there often is no clearly winning design. So you stick with one of the designs. Later there is no time anymore to change it.
  • You would love to practice software design more, but you cannot do it on the job - There is just not enough time.
  • You are working on a large system that grew over the years, and every time you change something or fix a problem, new problems pop up. You would love to improve the design to minimize those ripple effects - But how does a design look like that does not have this problem?
  • In a system like the above, you would love to have a safety net of tests, so that when you break something, you get notified. But how to add tests later?
  • There are quite a lot of automated unit tests, but they get in your way more often then they help. You know that those unit tests are bad, but you are afraid to delete them - Because then you would not have any tests anymore.
  • The code you are working with is just not readable. It takes hours or days to understand what is happening in a part of the code, and the documentation is not helpful either. You want to write more readable code.

Being in a situation like the above can be extremely frustrating for programmers, testers and architects. And it is toxic to the business because you are constantly losing money because of these problems - without producing any value.

If you are in this situation, of if you know someone who is, please read on. This workshop may be right for you, your team or your friend. It will give you a chance to practice how you can solve the problems above.

Or skip to the bottom of this page, where you can book the next upcoming workshop. There you can also subscribe to the workshop newsletter, if the next workshop does not work for you. I will inform you about upcoming workshops that might be closer to you or at a time that's better for you on this newsletter.

The Workshop

This workshop consists of three modules. You can either book all of them, or pick the ones that are most interesting to you. In those three one-day modules, you will learn:

Clean Software Design

There is a lot "not-so-well-designed" code out there. And we, as an industry, create more and more every day. Even experienced developers, who should know better, make bad design decisions in the heat of the project. And then there is not enough time to fix them.

What if you could practice and discuss software design for a whole day, with your peers, in a safe environment? This workshop is for you! You will learn the basics of object oriented design and some design techniques from an experienced trainer. And then practice - a lot. And you will discuss everything with your peers, and learn together and from each other.

Test Driven Development

Test driven development is so simple to explain - "Red, Green, Refactor" - yet still difficult to learn and master. In this workshop, you will perform many exercises around TDD. Those exercises will help you to understand TDD, to internalise it, and to use it productively.

We will start from zero (what is TDD?) but we will also practice advanced topics (Inside-out vs outside-in, mock objects, object oriented design and TDD, ...). Do you have only little experience with TDD and want to try it out? Or do you want to improve your existing TDD skills in a relaxed atmosphere? Join this workshop and practice together with your peers.

Clean Code

What is good code? And how do you write it? In your day-to-day work, you probably don't have enough time to to think about these questions and experiment with your ideas.

In this workshop, you will practice writing "good" code. You will think about names and naming things a lot. You will analyze the coupling and cohesion of your classes. You will practice test-driving design and code.

Spend a whole day together with your peers discussing, learning and practicing clean code - Join this workshop!

Three Days with Your Peers

You will retain more of what you've learned when you practice it and when you explain it to other people. That's why you will practice a lot during each of the three workshops - The trainers will often just shut up and let you work.

You will have fun, you will meet new people, and you will learn a thing or two!

This is NOT for You if...

This workshop is not for you if:

  • You already use and practice TDD and clean code in your day-to-day work.
  • You are an experienced designer - Designing parts of your program is easy to you.
  • You have a mentor/player coach who can teach you those things on the job - And you have time for that.
  • You already know how to change and evolve a design - even if you've already implemented it in code.
  • You practice TDD inside-out and outside-in and know when and how to use mock objects - and when not to.
  • You already know how to write good tests that do not get in your way later.

Experienced Trainers

David Tanzer I have been working as an independent consultant since 2006. I started to teach trainings in 2008. I have been coaching agile teams as a player-coach and as a Scrum Master - And there I have practiced TDD, software design and clean code for many years.

Co Trainer(s) I will try to bring international co-trainers to this workshop. There might be different co-trainers for different cities/venues/topics. I will announce all the details on the mailing list - subscribe below.

Affordable Pricing

The base price of the workshop depends on the city and on the venue, but it will be affordable. And there are a couple of dicounts you can get:

  • 50% discount if you pay for the workshop as an individual (i.e. if your company does not pay).
  • 25% discount if you want to attend all three days of the workshop.
  • 20% discount if you buy 4 or more tickets.

And you can even combine those discounts: If you buy 4 tickets for all three days as an individual, you will get 70% discount! (each discount is applied to the previous discounted price, so 50% * 75% * 80% = 30% of the original price).

Companies can send up to 5 people to this training. If you want to train more than 5 people, please get a quote for an inhouse training.

Is it Worth the Cost?

I know that, if you are a business, whatever I charge for this workshop is only the second-largest item on your bill - at maximum. The salaries of your employees during those three days and the opportunity cost (they are not working on valuable customer features for three days) are much higher. So, is it worth the time and opportunity cost?

(N.B.: that's also the reason why inhouse training might make more sense for you - even though it is more expensive. Contact me to find out if inhouse-training would be a better option for you.)

If you come as an individual, you are also investing your time. And I guess you also value it more than the price of the ticket. So, why should you come?

Working with badly designed code, working with code that is hard to understand, working with code where every change leads to problems that ripple through the system is extremely frustrating for everyone involved. And it is toxic to the business, because you are constantly losing money.

Imagine, in a team of 10 developers, everyone loses only 20 minutes per day because of software architecture / design / quality problems. And say your internal hourly rate (fully loaded cost of developers) is only 60€. Then you are losing (20 minutes * 10 persons * 200 working days / 60 (min/hr) * 60€/hr) = 40 000€ per year. Every year

This workshop is worth the money and time because you will learn to work in a way that is less frustrating and because you will help your business to save money.

Money-Back Guarantee

If you did not learn anything in this course that you can use productively or that is interesting to you, I do not want your money.

Just describe how the workshops where inadequate to you and why what you learned is not relevant to you, and I will give you your money back - no further questions asked.

More Information

More information coming soon... In the mean time, subscribe to the (low-traffic) newsletter below. I will keep you posted.

The next workshop is:

Date: Canceled

Early Bird Prices:

Booking Type Price Single Day
(per Person)
Price All Three Days
(per Person)
Company
(prices do not include VAT)
€200.00 €450.00
Company discounted
(4 or more attendees)
€160.00 €360.00
Individual
(prices include VAT)
€120.00 €270.00
Individual discounted
(4 or more attendees)
€96.00 €216.00

This workshop is canceled. If you are interested in this workshop, subscribe to the newsletter below, or drop me an email: Business@DavidTanzer.net.

We will send you a quote and an invoice after you filled out the form. You'll have to pay the invoice within one week to confirm your registration.

Subscribe to the "Clean Code Workshop" Newsletter

Subscribe to the "Clean Code Workshop" newsletter, and I'll keep you posted about this workshop. When I host this workshop in a city near you, I will tell you on this newsletter. You will also get discount codes and other useful information after subscribing.

Subscribe to this newsletter if:

  • You are interested in one of the upcoming workshops and want to get useful information or discount codes.
  • You are not interested in one of the upcoming workshops, but want to get notified when I host the workshop in another city, which might be near you.
  • You want to show me that you would be interested in this workshop, if it was near a certain city (please fill out the "City Near You" field).

Subscribe to our mailing list



Past and Current Workshops

Upcoming

Past

There are no past workshops yet.

Posting Type: 

My name is David Tanzer and I have been working as an independent software consultant since 2006. I help my clients to develop software right and to develop the right software by providing training, coaching and consultanting for teams and individuals.

Learn more...