This page summarizes all our blog posts on presentations.
Urs Enzler’s Presentations
In the beginning of a new project, everything is small and easy. New functionality can be added quickly and everybody in the team knows what the system does and how it does it. But mostly sooner than later, this changes dramatically. Team members don’t know anymore what’s happening in the system and don’t risk to change anything at all. The effect is a rotting software and new functionality can only be added with a lot of effort in development and especially testing. Acceptance test driven development helps to break this by providing a description of the system that can actually be executed. Let me show you how it works…
Agile software development methodologies like Scrum and Kanban lead to new challenges regarding the architecture and design of source code. The code has to be structured in a way so that changing requirements can be incorporated while keeping quality and development performance on a high level.
Principles like SOLID, modularity, loose coupling, dependency injection and practices like (acceptance) test driven development give us a changeable design.
With this flexibility, the architecture grows feature by feature together with customer requirements.
- how we use index cards to plan our work
- how we use our Scrum Board to organize team work
- how we get from user stories to acceptance tests to an executable specification
- what we added to pure Scrum
- how we run Sprint Reviews and Demos
- how we keep track of Retrospective Actions
- how we handle maintenance tasks with Kanban
Finally, I summarize what we’ve learned after 3 years of Scrum and why we will keep with it.
One of the critical aspects of a successful project is a team that learns quickly what is to be built and how it is to be built. The team needs to learn the problem domain to solve, the technology for the solution and all other skills needed.
In this presentation, I show you why fast learning is so important and what we at bbv Software Services AG do, to push the team members up the learning curve. I’ll cover topics such as basics needed for learning, Coding Dojos, Pair Programming and why all this results in motivated high performance teams.
A lot of teams new to Agile software development struggle with designing architecture in the Agile, rapid changing, incremental and iterative way. Inconsistent architectures or badly maintainable software systems are often the result.
This presentation explains the problems that arise for the architecture with often changing requirements and how we solve these problems in our projects.
Finally, I show the advantages of building the architecture with no up-front design phase but together with features during implementation.
Your customer isn’t happy because you delivered the wrong functionality in bad quality? Your developers struggle with the code because they cannot change anything without breaking existing functionality?
Getting quality into software is hard. In this presentation, I’ show you what we do at bbv Software Services AG to accomplish to deliver software in high quality and short time frames.
I cover topics such as Clean Code, Test Driven Development, Continuous Integration, Continuous Refactoring, Continuous Learning and everything else that helps us building software incrementally, iteratively and continuously with high quality.
We develop software with an Agile methodology because we want to be able to react quickly to changes in requirements. As experience teaches us, the part with the most volatile requirements is the user interface.
Therefore, we need an UI design pattern that allows us to minimize the impact of a change in business needs.
I present a pattern for developing .NET Windows Presentation Foundation application that helps us to keep changes as local as possible.
This pattern is based on MVVM (Model – View – ViewModel) and follows strictly the Single Responsibility Pattern. This pattern can be used for small up to large applications because it scales very well without adding much complexity for simple cases.