Tag Archives: Coaching

Evolutionary Design Talk – NewCrafts Paris 18 May 2018

Evolutionary Design Talk

Evolutionary Design: The art of growing a system by observing its natural traits and then normalizing and optimizing its growth

Evolutionary Design seems to be one of the black arts of software development.

Evolution = transformation. Evolving the code is not done by magic, we the programmers evolve the code. And we need specific techniques for that. When we evolve, we transform the code to something else. We will talk about some of these transformations, when to use each one and why.

Simplicity We work feature by feature and not layer by layer. All the development is done on a vertical thin slice through all the layers. We use evolutionary refactoring with many design principles in our mind, but not with a predefined design. We respect the principles, but focus on finding the simplest solution for the problem.

Focus on the problem, not the solution We want to rather focus on the problem and not the solution, rather than when we know the solution, but we just find the fastest way to implement it. When we know the solution, the question is: can it be improved; is it worth it? We will talk about some heuristics of “good enough”.

Video

http://videos.ncrafts.io/video/275530160

Slides

Organizational Evolutionary Design

What is Organizational Evolutionary Design?

Evolutionary Design is the practice of growing a system in a natural way, by adding the minimum amount of code to satisfy the business needs in an iterative and incremental approach. When done right, the code structure changes continuously to optimize for change, thus allowing a constant speed of development for longer periods of time.

 

In a dynamic world we need to adapt our tools and techniques to be resilient to change. Evolutionary Design is one of these techniques that helps us grow a system well by understanding its current characteristics.

Please see more of my ideas on the topic of Evolutionary Design here. During this article I will explain that there  is an obvious parallel between Software Evolutionary Design and Organizational Evolutionary Design.

 

Organizational Evolutionary Design

Read More →

Talk: Short Guide to your Agile Transformation

Talk: Short Guide to your Agile Transformation

About

This is a talk I delivered in Bucharest for the Agile Software Meetup Group. More and more companies want to transition to agile, because the benefits of faster delivery are essential in today’s software market.

Agile Transformation

Me and Mozaic Works’ approach to transforming an organization to agile has a lot to do with our core beliefs of small steps and fast feedback. For us an agile transformation is a tailored process for each organization, and the context is always essential.

Starting with the WHY is very important. I want to understand the internal values of the company and then decide together with the management, sponsors and the teams why they want to make this transformation. Without having the active involvement in any transformation, the whole process becomes very difficult or even impossible to put in place.

I don’t want to start from “what process to use” (Scrum, Kanban, DSDM, SAfE, etc), but rather discover the process while working with the people from that organization and understanding their needs. Together we create the process by applying things I know work well and by experimenting some things that might or might not work. As with any type of design, I prefer taking decisions as late as possible, because the more I learn the better the decision is.

Don’t commit unless you know why Chris Matts

 

Agile Transformation

Read More →