Spike Solutions – Why the world would be better if development teams use this as a default

When teams want to build new features in a software, what do they do?

Well, some teams I know, they plan. They build a big plan. BIG means at least 50 pages of non-structured text and diagrams that don’t say nothing about the real problem. And they do meetings!
After two months, they have a document baseline. And now, they can start design phase.

That’s no good!

We are living a time where delivery is not even important. Delivering new and valued features is a must.
We need to move faster. We need to understand risks.

We need to find as soon as possible if we are moving in a wrong direction.

So… we can choose the way we move!

There’s a technique / practice in eXtreme Programming called Spike Solution.

Spike solutions are used to understand a problem. They are used to help teams in estimation. You do spikes to know if something is huge, or if it’s a problem easy to solve.

Bottom line: You do spike solutions to learn faster about something.

So, if you are planning to do a new feature for your software, you have to do spikes. Together with spiking, do drawings to understand connections, to figure out more about user needs, do paper prototyping! Also minimize risks and understand non functional requirements.

How much time do you have for a spike? I would say no more than 4 cycles of pomodoros, or songdoros if you like the technique. By a cycle I mean four 25min focus +5min resting cycle and an extra 30min cycle after that. If we transform that in time, that’s no more than 10 hours of research. That’s actually 8 hours based on pomodoros + 2 hours resting giving space to your brain to mix current learning with what you already know.

Give it a try and help your team to find results faster. Don’t forget to document your findings and transform your spike at least in knowledge. At best in the beginning of a new feature! Enjoy!

en: That’s it. SSDC is the name — Scramble Software Developer Certification classes! Here I go!

You know what? I’m tired about teaching agile and helping teams in engineering practices, learning organization culture creation, lean start-up development mode, and other “pretty agile practices”. Those are everywhere now. Something is needed to change the market!

So… time to rock the market and get true advantage!

I’m preparing a new set of courses that will rock the development area, hopefully all around the world. I want to travel for a while. And create some new terms too!! You know you can’t get attention using same old terms, so I will provide terms that will confuse the market.

You know what happens after that? Full classes!

SSDC (Scramble Software Developer Certification) classes will give you and your team a set of excuses to help on any project failure. But that’s not enough. I want to provide a set of practices that will rock your project! Really about turning it to a raw rock… 🙂

Anyway… let’s continue!
Here we go.
Stay with me! Check the SSDC practices! And sign-up!

1) Coding Marathon. That’s the practice to completely take care of YOUR knowledge. Why would someone want to share knowledge and help others to increase technical skills? Why pairing? You don’t want to waste money right!? In Coding Marathon you code alone, just you and a piece of code equivalent to a 42Km distance.

2) Oh behave Code. No more clean code! Yeah! You are free to release and unleash those techniques you really want to use. Why keep clean variables, methods and readability, when you can use Oh Behave Code to give the creeps to every developer working close to you. Make people fear you. And your code.

3) Scramble Driven Development. Any code you touch, you scramble. Obfuscation techniques to help you to really get ownership of a piece of code, or even a full project. Keep your job safe with this technique!

4) Infinite Integration. Here’s how you can create those automated tests your team keep asking you to create with a great technique to avoid you fixing the build when it breaks. Create tests to increase build time to at least 10 hours. That’s a great time to achieve. When the build breaks, you will be sleeping at home, and the job to fix the build will be with a team in another continent! It’s a really time saver!

5) 12 hour steak technique! Forget healthy tomatoes! Use the technique to help you to concentrate on your solitaire games and your twitter reading. And of course, use the technique to get you enough time to work, but with no pressure! If you feel pressure, just call another steak! In The social network movie they say developers are wired (like in “He’s wired in“). In this technique people say “He’s cooking“.

5) Not in my job description! We will teach how can you use labor law to your benefit! Do you have multifunctional teams? Multidisciplinary teams? Self organizing teams? That’s your practice! We will teach you to use labor laws in the right way and avoid you as a developer to ever test a piece of code. Leave all the job to those paid to test software! Forget about business analysis, performance tests, design processes. Just do your code. Special techniques to the Brazilian market! 🙂

6) Last man standing pace. Specially for those who want to become managers. Make your team work motivated… NOT! Create competitions to see who is able to work more in a team. It’s not about competition, it’s about creating a division on wanna be developers and brave developers. If a developer can’t work 48 hours in a row, that’s NOT a brave developer. And remember, after 16 hours coding, they will be able to maximize results of other SSDC practices! As a manager, make promises you will never turn into reality. If your team ask about, just tell them to fill those work assignment forms you never read, and tell they should really think about working a little bit more, cause the company management team is not seeing any work being done. Leave the room. Don’t say anything else, but don’t forget to look back and “nod your head” with a big no, together with a “tsch tsch tsch“. Make fear your friend. And your team’s enemy.

7) DPLDW – Dilbert-like Punch Line Driven Work. This is the greatest practice available in the course. You can become Wally or the Pointy-haired Boss (PHB). As a developer, learn how to avoid someone asking about your job status. Escape and be free. Always. Confuse the person asking you, make them get your tasks assigned to them. As a manager, learn how to manage without Managing. Guarantee yourself a great life, where you will never need to make difficult decisions again, and will never need to help your team. Just keep doing the minimal and get the premium. That promotion you want is much closer now!

And that’s it. I’m thinking about something like 666 hours of training to really get developers and managers to understand the attitude, strategy and culture behind SSDC.

Well, if you are interested in this course, please let me know. First class starts today, April 1st of 2011! 😀

pt: Tresler volta a ser foco? Sim!

Em 2010 voltei a ler muito e não apenas livros técnicos, comecei a ler mais música, a tocar mais, a ler mais poesia e tudo mais. Com isto um outro projeto vai ir tomando maior proporção, que é o Tresler, que foi um e-zine que mantive com uns amigos de abril de 2001 a abril de 2002. E depois nunca mais.

Em 2008 resolvi fazer o Tresler virar um blog, apenas para “garantir” o domínio, e o blog vem ganhando posts ocasionais, nada formal, nada sério.

Em 2011 a ideia é fazer algo casual, republicando algumas coisas da época do Tresler e ajudando galera que está começando a escrever a aparecer também. Deixo um post de lá falando sobre como a coisa começou e o link do site para quem se interessar.

Ah, não ficarei fazendo cross-posting ou avisos por este blog. Se ficar interessado no Tresler, aproveita o feed RSS de lá.

pt: Foco para 2011: Pingos de Agilidade

Em 2011, você vai ter um canal de idéias rápidas sobre assuntos relacionados a Agilidade.

Está sem tempo para ler posts gigantes sobre algum determinado assunto? Pede no Pingos de Agilidade que a gente faz pequenos posts para tratar do assunto que você quiser discutir, seja relacionado com cultura, práticas de pares, equipes e/ou organização. E sobre a metodologia que você quiser falar: eXtreme Programming, Lean, Scrum, Feature Driven Development, e por aí vai.

#ficaadica: http://pingosdeagilidade.com.br.

en: What would you do to change someone else’s world for better? Inspiration and effect!

Sometimes I see people saying that they don’t need to do anything to improve the world they live in, since they do their part, paying taxes. Some believe that government needs to take action.

I have another opinion about it, and as far as I know, lots of people have another opinion too.

In summary: What we have in place, it’s not enough. Waiting on government, will not help at all. We need action. We need to help people to take action. Let’s do it ourselves.

The thing is: people develop ways to do good to their communities, and therefore to their cities, countries and bingo, world!

But how? Is there a ticket to buy somewhere?

Do we need something huge like a “live aid“?

No.

Do we need a disaster to happen, to start looking for these things?

No.

Do I need to wait for World Social Forum to come to my country?

No…

So, give one example of movement to help and/or follow!

Looking at software development world, we have opensource software, a movement that creates an environment for knowledge sharing. An environment that helps people all around the world to build better software, and have access to computer software with less costs.

With these things, other people can do good to their communities. That’s good.

That’s a way to help changing someone else’s world.

But, let’s take a look at “a thing” that is universal… music!

I’m gonna use as an example, Playing for Change.

Here’s a message: no matter who you are, no matter where you go in your life, at some point, you gonna need somebody to stand by you. Check this:

That turned out to become a movement all around the world, called playing for change.

But, how that’s relate to software world?

They did something and later on they realize that it was big and could become a movement to help people to help people. Musicians could make this happen.

So… we need to understand how to make a movement?

Maybe… check this TED.com talk about how to start a movement.

So this is all about following someone and help the movement to grow. Some movement you believe and want to help.

Here I go then. Follow me.

Well, every time I do an event related to technology, where I get a lot of people together, I do some action for those who need help, with donation of food or clothing.

It’s like a “presenting for change“, where you have people doing what they love to do, presenting technology, running coding dojos, but with a social action together with it. It is a simple way to continue being who you are, and doing what you do, but getting different results from your actions.

If you are working close to a technology users group (take Java or Ruby or Agile for instance), you can do that.
If you are doing an event, you can add some kind of donation to an entity that needs help in your event schedule.

So, all my events will have an entry pass, a donation?

Well, if it is a donation, you can’t make it mandatory. But, you can ask people to bring donations! They have a choice. Give them a choice. They will bring donations, if they want to!

So, bottom line is?

Look around and you will see that a lot of people need help. Check for nongovernmental organizations that need help. You will not be able to help them all. Help some of them, check for local needs, ask for help to understand and find organizations that need more help. And help them. With the help of your community. You will find people willing to help. Go for it.

Let’s Help It!

This post was first wrote in May 17th of 2010. It was on my draft since today. Since then I was searching for a way to help this new movement to happen. And here we go again. Let’s Help It! It is an open source software deployed in a free cloud environment, where you can add organizations near you. Therefore other people looking for organizations where they live, can look at that.

It took less than a month to build the first release of the software (from Aug 8th to Aug 31st), following Engineering practices from Agile Software Development Methodologies, with free time from a team of great developers, people I respect a lot. Thanks a lot to all people who made it happen and will continue. And if you want to make it happen too, help us to improve the software! Get in touch and play with us!

Empreender é arriscado? O que você tem a perder?

As vezes vejo pessoas falando em empreender, nos riscos, e tudo mais… e pergunto! O que impede você de tentar aplicar algumas horas do seu dia em alguma ideia que você entende que pode dar certo?

Continue a ler “Empreender é arriscado? O que você tem a perder?”

Testes para Desenvolvedores Delphi – Palestra da Delphi Online Conference

Eu tive a oportunidade de palestrar na Delphi Online Conference, evento realizado no dia 25 de fevereiro de 2010. Palestrei sobre Testes para Desenvolvedores Delphi, e foi uma oportunidade para tratar do assunto Metodologias Ágeis para a comunidade Delphi.

Esta mesma palestra eu apresentei ao vivo na Delphi Conference realizada em 2009.

Falei sobre Manifesto Ágil, princípios do Manifesto Ágil, falei sobre Sistema Toyota de Produção e Lean, falei sobre eXtreme Programming.

Depois entrei para ferramentas e um exemplo de uso. Na parte de ferramentas, falei sobre DUnit, Selenium IDE, Delphi Discover, Want, e inclusive publiquei o exemplo usado no Google Code (projeto Delphi Test Automation). Pretendo seguir trabalhando este exemplo para adicionar mais ferramentas e gerar mais informação para a comunidade.

É importante que todo desenvolvedor saiba trabalhar com diferentes técnicas de teste, exemplo testes de unidade ou testes funcionais. Ainda, que busquem técnicas e ferramentas de automação que levem a maior produtividade.

Afinal, tempo é dinheiro certo?

Não! 🙂

Como já diz o Jaime Wagner, tempo é vida. Então use seu tempo para automatizar ao máximo seu trabalho e invista seu tempo em outras coisas ao invés de ficar horas testando uma aplicação manualmente. Faça certo da primeira vez, construa seu software com qualidade, seja transparente com seu cliente, e trabalhe em equipe.

Bom, você pode fazer download da apresentação ou assistir a mesma online. Ela dura pouco mais de 1h e 10min. Aproveite e qualquer comentário, por favor, colabore, critique e mande feedback.

— Daniel Wildt

en: Mixing Tomatoes with Songs? That’s a SongDoro!

Quer ver esta história em português? Siga por este post então: Songdoro! Ganhe tempo ouvindo música!

You may be aware of the pomodoro technique, a simple time management tool where you run short cycles on “full focus mode” during 25 minutes, rest 5 minutes and then you run again another cycle.

After four cycles, you have a big 30 minute break.

Repeat that and get all your things done in a funny and focused way during your day.

Simple right? It’s awesome, and it works!

How it works?

To run this you need to have a prioritized list of tasks you want to accomplish and you can use those to focus on your “pomodoris”, a.k.a. the short cycles. If some new task comes up, you add that to the bottom of the list, in a section called unplanned tasks, so you can understand what came up during your day.

I always used a kitchen timer or my cellphone timer to manage my time. Here is my kitchen timer, that I use to celebrate my pomodoris:

So far, all the same right? So here I go again.

Well, a friend of mine was talking about how he introduced the subject to a friend. He ask the guy to focus on one task while listening to a Ramones CD. No interuptions during that period. None. The guy finished one task before the CD finished. Somewhat like 30 something minutes. That’s Ramones. He was supposed to take 2 hours to do that. The guy loved!

That’s one story. Keep that in mind.

I was talking to my sister, about Power Songs. She is a runner, and she always use Power Songs to get that extra motivation. You may run listening songs, using a default or random playlist. But, you gotta have those special songs right? Well, those are your power songs!

By using a Power Song the runner can find that “instant” energy needed to finish a course. You can find some products like iPods+Nike kit with that resource or something, you can find people, like runners and bikers talking about Power Songs.

Ok?

Ok.

So…

If I use those two ideas together, I get the SONGDORO! 🙂

The idea is simple, you build playlists to focus on what you have to focus, and everytime you build a playlist, the last two songs, are your power songs.

When you listen those powersongs, you know you are at the end of a songdoro, and you gotta do what you gotta do!

And, when you listen to your break song, you stop doing and break for five minutes. My break song is Harvest Moon, from Neil Young. Duration? 5 minutes!

So, that’s the idea. 30 minutes playlist, where 25 minutes of songs + 5 min break song. The break song is always the same!

Take a look into one of my SongDoros. I’ve built a sample playlist at Groove Shark to share this. This is for one songDoro, atually I could say a “songdori”, with 25 min + 5 min break 🙂

Example: from a classic songdoro I have, the break song is Harvest Moon. My power songs in this example are:
– 12:51 from The Strokes, and
– Basket Case from Greenday.

Try it! Enjoy it!

Criando um ambiente de aprendizado

Quebrar paradigmas, inserir novas idéias, criar foco, criar disciplina, criar sinergia no time. Podemos olhar o papel de um coach dentro de um time ágil como alguém com iniciativa para trabalhar estes pontos. De início.

Olhando outra perspectiva, temos Terry Tate, que participou de uma série de propagandas, mostrando o papel de um “Office Linebacker“. O que Terry faz em diversos pontos é criar jogos mentais, e trabalhar muito bem a disciplina, mas não simplesmente criando avisos, alertas ou padrões, motivando as equipes. Ele garante que o time deve manter o foco.

Continue a ler “Criando um ambiente de aprendizado”