Extreme Programming (XP) is a methodology for agile software development. It is a good method for boosting software quality, accelerating the incorporation of customer feedback and is healthy for developers. It is one of the more vital methods in software development compared to phase based methods like waterfall or even scrum with its more rigid structure. Compared to other methods Extreme Programming emphasizes on engineering practices for software development. Extreme Programming comes with five values and a set of practices.

When you visit the East Gardens of the Imperial Palace in Tokyo Japan, you’ll either get a card and can enter the park or get told that the park is full. There is a certain amount of cards available on the entrance and each person that enters the park get exactly one. If all cards are handed out, you have to wait until someone leaves the park and returns their card. That card is called a Kanban. Kanban is a japanese word that translates to sign or singboard. Kanban is not only a signal card or token in japanese parks. According to Wikipedia it is also „a scheduling system for lean manufacturing and just-in-time manufacturing (JIT)“ developed at Toyota by Taiichi Ohno. Here also the …

What is Kanban? Read more »

Write a test that covers a use case or some functionality, then let the test run and fail. Once this is accomplished write as little code as possible so that the test passes. After the test passes turn the code into clean code; meaning refactor, simplify, adhere to convetions, etc. Done? …repeat that cycle. That approach is called Test Driven Development (TDD) according to Kent Beck. But why are we doing that?

Most of you know the situation when we had planned some work, let’s say a few different tasks. Then we started most of them, work in parallel and when time is up only a small portion of the work is really completed. In teams working towards deadlines or iterations this usually at least feels bad or has consequences, such as more budget needs to be requested or delay of delivery.

Self-organizing teams are an integral part of agile software development and one of the 12 principles of agile manifesto. Even outside agile software development, self.organizing teams can bring a lot of benefits to the organization. The sole purpose of these teams is to ensure that the process of decision making is decentralized, faster, and agreeable to all members. The self-organizing teams are autonomous, hence it becomes possible for them to determine how they want to approach a given problem. They also decide independently of any other teams, group or managers on what decision to take, implement and how to complete any tasks.