- About
- Consulting
- Training
- Development
- Contact
Workshop OO Systems Development
Join us for two days of fun games and serious exercises. Take Object Oriented design to the next level in this highly experiential course. We’ll practice OO Design and programming and show how unit tests help to drive your design.
You will get plenty of opportunity to practice practical design techniques like Class Responsibility Collaboration cards, test driven development, refactoring and mock objects with design and programming exercises. You will learn to apply good OO design principles and to recognise bad ones. You will experience tackling these step by step. In other words, you learn to care for your code in a structured way so that it becomes easier and more fun to maintain and extend.
This course is available in C#, Java, and Ruby; other programming languages are possible on request. We can tailor this course to your organization’s needs, please contact us for details.
Benefits
You will improve your design skills through hands on practice and reflection. You learn a low-ceremony way to create and implement a design that is simple, robust and understandable. This means you can deliver software quickly, while at the same time reducing maintenance costs.
You will learn how to improve the design of legacy code so that working with legacy software becomes more predictable (and fun!) and work on the software has a higher return on investment.
You will also learn what causes technical debt in your place of work. You will practice systems thinking techniques to understand what makes it hard to apply good design practices, and find out how your team can reduce and preventing technical debt.
What participants said
Spent a lot of time on explanation, discussion, doing things ourselves, and less time to study materials during the course. That’s good – learning by doing.
Learning appealing, interesting software development concepts in an accessible way: very enjoyable course!
Audience
Software developers, architects, Scrum masters, agile coaches and technical team leads, who seek to design better software faster. For in-house courses, managers of all levels can participate in the systems thinking part to identify sustainable improvements together with developers and project leads.
Prerequisites
- Experience in a programming language with Object/Class features, for example Java, C#, C++, VB(.Net), Ruby, Python, Smalltalk
- Basic knowledge of object orientation
- Basic knowledge of automated unit testing
Topics
- Class Responsibility Collaboration cards – the simplest design technique that could possibly work
- Creating understandable, maintainable code using test driven development
- SOLID design principles
- End-to-end test driven development
- Evolving design with refactoring
- Promise is debt – seeing system dynamics of technical debt and what makes refactoring hard
- Responsibility driven design – using mock objects to focus on roles and responsibilities and to manage dependencies
- Breaking dependencies – get started with refactoring and unit testing in legacy code
Practical Information
We will offer this course as an open enrollment course and as an in house course. If you’d like to have this course run at your company, please contact us.
Duration: 2 days, 9:00-17:00
Group size: 8–14 participants
Open enrollment fee (for courses in The Netherlands): € 1050 per participant (exclusive of VAT)
In-company training fee: on request
