Agile Design: Beyond the Basics
9 am to 5 pm
„Agile Design: Beyond the Basics“ helps programmers who have practised evolutionary design techniques for several months under the pressure of a professional project and have questions like „Is this normal?“ and „Should I be doing this instead of that?“ and the most significant one of all: „The rules say I should do this, but I think I should do that… what does this mean?“
Format
This is a hands-on programming course, where we will work on a small project throughout. The amount of time we spend writing code and having discussions will depend on you, but participants spend on average about 50% of their time writing code. We will plan the course simply: I will provide a starting set of topics and you will guide the evolution of the course as we go. In addition to practising evolutionary software design, we will practise group decision-making.
J. B. Rainsberger helps software companies better satisfy their customers and the business that they support. He travels the world sharing what he’s learned about programming, managing his workload, and designing his lifestyle. He spends a lot of his professional time helping programmers do good work with less stress. Not only does he consult with and train for companies, he also provides personalized one-on-one coaching and online training
Audience
You’ve learned the basics of evolutionary design, probably using test-driven development. You’ve practised it for a few months to a year. You’ve run into some problems and figured out how to overcome a few of them, but now you see a wide range of directions to go in, and you don’t have the time nor energy to try them all. You’re ready to take the next step in your development as a designer and you need some guidance. This course is for you.
The Inbox of Topics
We might not have time to cover all these topics in great depth, but we will certainly have enough time to introduce them all and dive more deeply into the areas that interest the group most. By the end of the course, you will have a plan for what to learn next.
- How Test-Driven Development really works, and how you can explain this convincingly to others!
- Why you can truly rely on the four (well, maybe two) elements of simple design, and the Simple Design Dynamo.
- How you can develop the intuition that great designers have.
- How to interpret signals in tests as weaknesses in the production code, including the most effective signal of them all: duplicating irrelevant details.
- Integrated Tests Are A Scam! and Architecture Without Trying.
- Models for improving names: naming is not a black art.
- The (apparent) trouble with test doubles (mock objects) and how to make them work for you instead of against you.
- The Universal Software Architecture. (Yes, the name is intentionally grand, because the idea is so simple. That’s the joke.)
- Three typical stages of practicing TDD: from unit testing to continuous personal development.
Some Common Additional Topics
- BDD is TDD acting as a pull system for features.
- Economics and software design: I’m in it for the money.
- One killer legacy code rescue technique that you can focus on while you learn the rest.
- Technical leadership, including how to turn your strongest critics into your biggest allies. (It still surprises me every time it happens.)
Preparing To Participate
You will need a computer with a development environment where you can start a new project, run tests, and commit changes. You know that you are ready when you can run tests and see them fail and then commit those changes to a version control repository.
Examples: A typical toolset for Java programming would include IDEA, JUnit, and git. A typical toolset for Ruby programming might include rvm, bundler, vim, RSpec, and git.
You can work in any programming language, as long as you can create a reasonably quick evolutionary design workflow that involves running tests and the ability to roll back changes.
Date & Venue
TechTalk Office
Leonard-Bernstein-Strasse 10
1220 Vienna
Austria
Price
EUR 1300 Early Bird
EUR 1400 Regular
Price excl. VAT.
For additional information please contact trainings@techtalk.at