On making the world of software development a better place.

Visit our archive

When I was a kid, I was a big Bruce Lee fan. I walked around the playground rubbing my nose with my thumb pretending I was the man. When I had a piece of rope, I had to do my version of the nunchaku routine from Way of the Dragon and made cat-like noises. Looking back at Lee, I find it quite striking how many of the principles of his fighting style Jeet Kun Do apply to agile practices.

Check out these descriptions of the fighting style:

  • “Jeet Kune Do is not fixed or patterned, and is a philosophy with guiding thoughts.”
  • “Jeet Kune Do practitioners believe in minimal movements with maximum effects and extreme speed.”
  • “The system works by using different “tools” for different situations, where the situations are divided into ranges, which is kicking, punching, trapping, and grappling, where martial artists use techniques to flow smoothly between them. “
  • “Through his studies Lee came to believe that styles had become too rigid and unrealistic. He called martial art competitions of the day “dry land swimming”. He believed that combat was spontaneous, and that a martial artist cannot predict it, only react to it, and that a good martial artist should “be like water” and move fluidly without hesitation.”

JKD is a reactive style that responds to changes in in situations and applies the best “tool” for getting the job done in the fastest way possible in that situation. JKD does not care about styles or forms for the sake of it.

Ofcourse this philosophy resonates highly with an agile mindset.

So just for fun, here are my Top 5 Bruce Lee Agile Coaching Tips

I am frequently asked by colleagues for advice on how to be a good Scrum Master. I will discuss some of the tips I share in a couple of blog posts. First of all I do like to state that I believe it’s best to have a Scrum Master that is able to get his […]

One of the principles of the Agile Manifesto makes the seemingly paradoxical statement: “the art of maximizing the amount of work not done”. This statement is part of the 10th principle of this Agile Manifesto. The complete 10th principle reads as follows: “Simplicity–the art of maximizing the amount of work not done–is essential” When I […]

“Scrum by the book” I often come across teams that are ‘doing Scrum’, but fail to realize the core principles that form the foundation of it: transparency, inspect & adapt. A lot of teams I’ve met, are starting out by doing Scrum ‘by the book’. They are doing the standard events as talked about in […]

If you have a car, then every once in a while, you probably have your vehicle checked to see if it’s still up to safety and environmental standards. So you take your car to the garage and have it checked. Now, the garage will do some tests and eventually you’ll get a nice paper showing […]

Most people working in professional IT-driven companies, have heard about Agile, most people in professional companies have heard about Lean. Those who are interested in the subject, have found out that these two very popular phrases are actually closely related. So what is the relation between lean and agile? I’ll try to briefly answer this […]

One of the questions that Project Managers always pop up during projects is: “how many days will it take to finish this work?”. This is a very natural and sensible question. You want to know when a project will be finished, so people can have an expectancy of the needed budget, what functionality is in […]

This is a guest post by UX designer Richard de Vries. The most popular way of optimizing a website is by A/B testing it. For some reason the bigger the website gets, the harder it becomes to test. If you are dealing with optimization in a big company there is a fair chance you will […]

Last week I spoke at the Agile Evangelists Event in Amsterdam. I talked about fixing broken team dynamics. The agile manifesto states “Individuals and interactions over processes and tools”. This emphasis on people working together, creates a need to understand how teams work. If you’re working agile and you seem to have your process in […]

When I’m teaching Scrum to teams that have never worked agile before, I’m always emphasizing the self-organizing nature that development teams have. Development teams consist of capable, educated, intelligent professionals that know how to implement the required functionality better than project managers. So the Product Owner decides where the team should go, and the team […]


Visit our archive

In Scala, filtering and processing collections is easy and elegant. There are many filtermethods available, but the most used will probably the basic filter method. Here’s a code example of some filtering on my (ex)camera collection. The filter method will not only work on Lists, but on any Scala collection.

Running this example will […]

One of the coolest things a standard Scala install will give you, is the Scala interpreter. Technically speaking, this is not an interpreter. In the background, each statement is quickly compiled into bytecode and executed on the jvm. Therefore, most people refer to it as the REPL: Read-Evaluate-Print-Loop. You can access it by starting a […]

If you are a Java developer moving to Scala, one notable difference in terminology that can cause confusion is the term ‘object’. In Java an object is always an instance of a class, created by calling a constructor. Object In Scala an object is used for defining a single instance of a class with the […]

In Scala there exist the construct of a ‘case class’. According to Martin Odersky this supports you to write a “regular, non-encapsulated data structure”. It always seems to be associated with pattern matching. So when to use a case class and when to use a ‘plain’ class? I found this nice explanation stating: “Case classes […]

Say you have a arbitrary class under test, which is dependent on a class DataProcessor which has a method with the following signature:

you might want to stub it with Mockito 1.9.5 in the following way to match the generic typed class:

However running this, gives the following error:

This is caused […]

Say you want to test a method from class which extends some kind of superclass. Sometimes you can be dependent on code in the superclass, which is undesirable in a test. Now actually, the first thing you should consider is to refactor your code, because it’s violating the Single Responsibility design principle: there is more […]

Mockito has a very nice feature that allows you to verify what parameters were used when a method was executed. For example:

However, when using generic typed objects, some problems rise up. For example, the following won’t work:

This is obviously not a Mockito problem, but a generics problem. To solve this, follow […]


About Agile Arts

Welcome to Agile Arts.

This blog deals with Agile, Scrum, Kanban, Lean, XP, DevOps, Lean Startup, Management 3.0, Radical Management, the STOOS Network, and more of these things that make the world of software development a better place. However, this blog isn’t about popular terms. It’s about the way we work.

I’m a professional software engineer since 2001 and when I was introduced to agile software development years ago, it really came to me as a revelation. There used to be this saying ‘everything becomes liquid under pressure’, but many times I wondered ‘why can’t it always be liquid?’ I found that adhering to the principles of the agile manifesto, things really can become liquid, without the need of pressure!

Since then I’ve been gaining quite some experience as a ScrumMaster and Agile Coach while always keep getting my hands busy with coding as developer. From different points of view, I’ve seen many teams and companies trying to do/be agile. I’ve seen seen that culture, history, rigid organizational structures and simple lack of know-how makes the quest for agility difficult. This struggle to improve the way we work inspires this blog.

This is about learning through experience. My experience and of others, shared with anybody who’s interested. In my daily life, I work as developer and Agile Coach/ScrumMaster for various companies and I learn everyday. And while I’m learning, I’ll share my experiences and those of others. Maybe you can benefit from it, and at the very least, I hope you enjoy it as a good read.

I’m also very interested in your opinions and experiences. If you’re interested in doing a guest blog, or have remarks, questions or suggestions, drop me a line through the contact form.

  • Name (Required)

  • Email (Required)

  • URL

  • Message (Required)