1st Code Retreat Portugal 2012

You know those guys that do yoga and they go on a trip into a secluded place and meditate? Yea, we can have that too.

Should I be prepared?

It's totally fine if you're not familiar with TDD and the SOLID principles. However you'll be better off by getting to know what benefit they bring into your programming skills.

From Wikipedia on TDD:

Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle:

- First the developer writes an (initially failing) automated test case that defines a desired improvement or new function
- Then produces the minimum amount of code to pass that test
- And finally refactors the new code to acceptable standards.

Kent Beck, who is credited with having developed or 'rediscovered' the technique, stated in 2003 that TDD encourages simple designs and inspires confidence.

From Wikipedia on SOLID:

In computer programming, SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion) is a mnemonic acronym introduced by Michael Feathers for the “first five principles” identified by Robert C. Martin in the early 2000s that stands for five basic principles of object-oriented programming and design.

This blog entry explains what SOLID is in simple terms so it should be great for you to get started.

How does it work?

The main objective of the code retreat is to improve software development quality through exercise and repetition. It's supposed to be a relaxed time and entirely out of scope in which the participants focus on writing perfect code rather than fast code.

The day will be split into 40 minute sessions, followed by a 10 minute retrospective. That will result in approximately 5 regular sessions throughout the day. An extra session will be held in a slightly different way, according to the audience's feedback.

The event will have room for a one hour lunch in which people will be able to discuss their progress in the experience. Also we will invite people to have an informal dinner (francesinhas anyone?).

There will be one or two facilitators. These people will poke around the participants' sessions and sensibly provoke their minds in order to better achieve code perfection and help them improve their skills.

At the end of the event, people will share their experience and their learning.

The four rules

The main focus of the event is to embrace TDD, good software design and pair programming techniques. The four rules of simple design are:

  1. Green tests — Always write one complete feature at a time with tests; make them green before moving on.
  2. No repetition — Keep things DRY. Elaborate on your design rather than just making it work.
  3. Expressive intent — Express yourself through code, make its intent as clear as possible.
  4. Low class and method count — Find the right balance between lots of classes / methods and expressiveness of your code.

The event is language agnostic as we encourage people to solve design problems rather than language problems. Object-oriented languages with a testing tool are more suitable to the challenge but you're free to pick any one you like.

I love it! What do I need?

Just bring your own laptop and snacks to eat along the journey. Bring a fair amount of snacks, you'll need them.

No fee is required to join us. Sign up by adding your name to the bottom of this page.

It's best to stick with the simplest and less distracting tools. If you're using a dynamic language like Ruby or Python or Javascript, a terminal is the best choice. If, however, you choose something like Java or C#, then an IDE will have to do. Remember, keep it simple, everyone should be able to understand the process.

We thank our sponsors for their awesome support.

Departamento de Engenharia Informática da Faculdade de Engenharia da Universidade do Porto --- Grupo de Engenharia de Software

Extra details

Location

Check this map on how to get to the spot. There's a parking space right in front of FEUP free of charge on saturdays.

Lunch

Since lunch is not included, we're considering gathering everyone around and order some pizza and soda. Something around 6 € should do fine. Are you okay with that or would you rather go out on your own?

If you're into this pizza idea then place a `(+)` next to your name when you sign up.

Need help?

If you're in trouble or doubtful, reach us through the AgilePT google group or directly through one of us:

  • filipe.correia at fe.up.pt
  • cerdeira at gmail.com
  • jose at josemota.net

Participants

Please add your name below to register for the Code Retreat. If you're not signed up to edit this wiki then let us help you.

  • António Freitas
  • Filipe Correia (+)
  • João Cerdeira (+)
  • José Mota (+)
  • Miguel Veiga (+)
  • José Moreira
  • Leandro Nunes
  • Ricardo Mestre
  • João Reis (+)
  • João Moreira
  • Pedro Rebelo
  • João Flores
  • Paulo Portela (+)
  • Luís Ribeiro
  • Ricardo Carneiro
  • Ricardo Mendes
  • João Loureiro (+)
  • Luís Fonseca (+)
  • André Ferreira (+)
  • Luís Dias
  • Luís Gomes
  • José Bateira
  • João Alves (+)
  • Tiago Pereira
  • Linda Padilla (+)
  • Pedro Machado (+)
  • Filipe Carvalho (+)
  • Tiago Babo (+)
  • Bruno Ferreira (+)
  • José Pedro Marques (+)
  • Hélder Moreira (+)
  • Hélder Oliveira
  • Francisco Cabrita
  • Paulo Ramos (+)
  • Rui Picas (+)
  • Marco Amador (+)
  • Luis Miranda
  • Diogo Teixeira (+)
  • Clara Sacramento (+)
  • Ismael Abreu (+)
  • Admilo Ribeiro(+)
  • José Moreira(+)
  • Nelson Reis

Sobre os Encontros Ágeis

São reuniões informais e ocasionais, de pessoas ligadas ao desenvolvimento de software, que se juntam para partilhar experiências com técnicas e práticas ágeis. Mais informações na página de FAQ.

Opções de Página

Opções do Wiki