This is the second post in a series about what makes a team effective. Effective means, the team does the right thing to reach its goal. Bad coordination Bad coordination within the team is a major reason why teams are not effective. Things are done multiple times (“oh, you already did this? Me, too!”). Unnecessary work is performed because we just assume that this should be done. We miss opportunities to go live early, to add the feature with a simpler, cheaper solution or to act...
Effective teams: Free Jazz
This is the first post in a series about what makes a team effective. Effective means, the team does the right thing to reach its goal.
In free jazz, improvisation is an important part. But the musicians don’t just play whatever they like. If the Saxophonist takes over from the Trumpeter, he (normally) takes over a little part of the melody and then starts to modify it.
We should build software the same way in our team. We should build upon what is already there.
Onion Architecture Article in Method and Tools Magazine
My article about Onion Architecture has just been released in the Method and Tools Magazine. The article contains even more insights into the Onion Architecture and how it compares to traditional Layered Architecture by analyzing code samples with Structure Studio. I highly recommend you read it. Methods & Tools is a free software development magazine on Project Management, Software Testing, Agile, Scrum, Lean, Kanban Requirements (UML, Business Analysis, User Stories), Programming (Java...
How we do the Daily Scrum in my team
In a typical Daily Scrum, every team answers the three questions about what was done, what is next and which impediments there are. We moved away from this form of Daily Scrum because it is not very efficient and not focused on Sprint Backlog items. It’s not efficient because we do a lot of pair programming and several team members work on the same User Story at once. Therefore, some team members could only say “I did the same as already said”. This way of doing the Daily...
Presentation: Agile Quality Assurance
This is the presentation I gave at the conference Basta! in September 2012.
Before we can talk about Agile quality assurance, we have to make a step back and take a look …
… at the goals of Agile software development. Our Agile quality assurance strategy should support these goals:
Acceptance Test Driven Development
This is the presentation I gave at the .Net System Event by bbv Software Services AG in Lucerne in June 2012:
Why Pair-Programming Works
Recently, I’ve given a short presentation about pair-programming and the stereotypes people show while pair-programming. As always when talking about pair-programming, there is a discussion how to sell it inside a team to peer developers or even worse to managers. Their killer argument is that two people in front of a single computer result in doubled effort needed to complete software.
Let my show you why this is wrong.
Structure your code by feature
cross-post from bbv blog
When software projects grow both in age and size the developers often struggle with the structure of the code. It gets more and more difficult to find the class you have to change for a new requirement. In this post, I’ll show you how we organize our code and how we derive our structure directly from the requirements.
Pair Programming Stereotypes
Over the last couple of years, I’ve done a lot of pair programming. Pair programming inside my team, at customer sites, in coding dojos and in my open source projects. Pair programming is really a great and effective experience when performed by an pair of developers knowing how to pair program. Unfortunately, you cannot just put two developers in front of a single computer and expect them to perform perfectly from the start. Pair programming has to be learned. Both developers need to learn the...
Different Flavours of Pair Programming
Pair programming – two developers working together at a single computer – can result in better software written faster, but only if you know what you do.
Pair programming is not just sitting together and code as you would when being alone. Unfortunately, this is what most developers practice – resulting in a painful and ineffective experience.
To get most out of pair programming, you first have to know your setup.