eXtreme Programming (XP)

Is it a methodology? No, I do not say that because it is not as broad or strict as it sounds. Nor is a recipe. It really is a teamwork or a set of suggestions to give a quick solution. If you have a problem, this will guide you to the solution.

Is a light, efficient, low risk, predictable, scientific and fun way to develop software.

It’s about social change. To forget habits that worked in the past and now doesn’t let us do our best work.

Good practices

Team location

Is better if the people related share the same space location or same work area.

Multidisciplinary team

To grow up is easier if there are many people with different knowledge and different points of view.

Useful and informative workspace

To successful project tracking is necessary to show all time the team progress and make easy the form the people work everyday regarding the work area.

Goal oriented work

Set work goals and enjoy the way to achieve them.

Energized work

It requires most of the time you are motivated, don’t assist sad, angry or upset.

User stories

Is the smallest unit of work in this way. Is an informal and general explanation of a software feature written from the perspective of the end user or the customer.

Pair programming

One of the best ways to build software is coding with other team members, as it sounds, stay virtual or physically with a coworker working on the same computer analyzing the same issue and the same code in real time.

Planning cycles

Habitually, weekly cycles to plan the work.

Slack time

It works because when you have time to relax your mind, you would find solutions easier.

Builds 10 max

Try to make the builds no longer 10 minutes to get feedback in a reasonable manner. Well, it is difficult and in many cases impossible, so only you have to set a max time for making the builds.

Continuous integration

Is the practice where developers regularly merge their code changes in a central repository after which automated builds and tests are run.

Test-First programming

Something like TDD (Test Driven Development), but not much or not so specific, only the main idea. Thus we will have functional documentation before the developing stage.

Incremental design

Is to see quickly the changes in the system. Not always it can be because when you work on the core it is difficult to see some changes, but when you can, it is a good option to visualize the progress in the application.