Marco e Andrea

Questo post è dedicato a Marco e ad Andrea.

Le trasferte in macchina con le infinite chiacchierate degli argomenti più disparati e disperati, le lunghe telefonate, le incazzature, le installazioni dai clienti con i modem a chiavette 3G, gli errori, i successi, le assistenze in treno ai clienti collegati in hotspot ai 200 e passa kmh, gli aperitivi in aeroporto incastrando le coincidenze coi voli, sono solo alcune delle esperienze fatte insieme che porterò sempre con me. Elencarle qui tutte sarebbe impossibile.

Siete stati due compagni di viaggio memorabili da cui ho imparato moltissimo in questi nove anni.

Auguro a chiunque di trovare nella vita delle persone così con cui poter lavorare.

Grazie di tutto. È stato un piacere.

Hard work does not pay off

Today I was chatting with a friend about working late hours and he said that he has to much to do and he’s stressed.

This piece from Olve Mundal in 97 things Every Programmer Should know came to my mind.

As a programmer, working hard often does not pay off. You might fool yourself and a few colleagues into believing that you are contributing a lot to a project by spending long hours at the office. But the truth is that by working less you might achieve more — sometimes much more. If you are trying to be focused and ‘productive’ for more than 30 hours a week you are probably working too hard. You should consider reducing the workload to become more effective and get more done.
This statement may seem counterintuitive and even controversial, but it is a direct consequence of the fact that programming and software development as a whole involve a continuous learning process. As you work on a project you will understand more of the problem domain and, hopefully, find more effective ways of reaching the goal. To avoid wasted work, you must allow time to observe the effects of what you are doing, reflect over the things that you see, and change your behavior accordingly.
Professional programming is usually not like running hard for a few kilometers, where the goal can be seen at the end of a paved road. Most software projects are more like a long orienteering marathon. In the dark. With only a sketchy map as guidance. If you just set off in one direction, running as fast as you can, you might impress some, but you are not likely to succeed. You need to keep a sustainable pace and you need to adjust the course when you learn more about where you are and where you are heading. In addition, you always need to learn more about software development in general and programming techniques in particular. You probably need to read books, go to conferences, communicate with other professionals, experiment with new implementation techniques, and learn about powerful tools that simplify your job. As a professional programmer you must keep yourself updated in your field of expertise — just as brain surgeons and pilots are expected to keep themselves up to date in their own fields of expertise. You need to spend evenings, weekends, and holidays educating yourself, therefore you cannot spend your evenings, weekends, and holidays working overtime on your current project. Do you really expect brain surgeons to perform surgery 60 hours a week, or pilots to fly 60 hours a week? Of course not, preparation and education is an essential part of their profession.
Be focused on the project, contribute as much as you can by finding smart solutions, improve your skills, reflect on what you are doing, and adapt your behavior. Avoid embarrassing yourself, and our profession, by behaving like a hamster in a cage spinning the wheel. As a professional programmer you should know that trying to be focused and ‘productive’ 60 hours a week is not a sensible thing to do. Act like a professional: prepare, effect, observe, reflect, and change.