Hara-Kiri from Engineering (Best?) Practices :: Future.works 2020

Last Wednesday, on the 29th of April, I gave my first “virtual”/”remote” talk of my life. It is definitely very different from speaking in front of a “live audience” but taking in consideration the current situation (i.e. covid-19) it was pretty much following the saying “the art of the possible”. Congrats to Future.works for organising a tech week and proving that it is possible to share knowledge and to foster a sense of community even in a less positive moment of the human kind.

The conference had fabulous speakers as you can see by yourself in the event’s agenda.

My talk was called “Hara-Kiri from Engineering (Best?) Practices and you can see the intro/abstract here. The subject is around engineering practices that although are considered best practices, they also have pitfalls that you should watch-out for.

Here are the key take-aways from the talk:

  • Tech Debt shouldn’t pile up nor be fully paid. It should be managed;
  • Bus Factor should never be 1 but shouldn’t be huge too. It should be in the sweet spot;
  • Squads are a great concept but are a challenge in broad/deep architectures. The Squads’ depth is key for success;
  • It’s easy to get lost in resiliency, availability, and scalability work. Your systems should be dimensioned for your near future reality;
  • Code coverage is a great metric to keep track of. You can have 100% code coverage and still have bugs in your code;
  • Being Agile is not about (blindly) following a process. Agility is the ability to quickly gather and act upon feedback;
  • It’s easy to fall into the trap of adopting complex, oversized approaches. You should favor simple and elegant solutions with your near future in mind;
  • It’s easy to find “flaws” in others’ solutions (you find what you look for). Using existing solutions (e.g. open source, SaaS) accelerates time to market;
  • Loosely coupled services are great to scale but not brilliant to start with. Make sure you know the effort and cost of using them right off the bat;
  • Adopting a new coding language shouldn’t be a light-hearted decision. Usually architecture solves problems not coding languages;
  • Remember that the code you write today is legacy tomorrow. “Legacy” is usually what pays our salaries;
  • Pull/Merge Requests are great guardrails but it adds a step on your flow. It enables feedback and knowledge sharing if taken seriously;
  • It is normal to be risk averse and avoid deploying code on certain occasions. You should strive to deploy at any moment, ideally multiple times a day.

If you are interesting in seeing the slides you can see them here.

And last but not least here is the video if you would like to watch the talk:

See you soon!


The last time I wrote here was during the Summer of 2019. August to be more precise.

I’m wondering why I “stopped” writing… I guess I didn’t have the will to do it. Writing is a strange phenomena, at least for me, or you have a crazy will to write with a good cadence… or you don’t have the will to write at all.

Now here we are, with the first quarter of 2020 gone… and with so many changes since the last post. To name a few:

  • The World is in the middle of a pandemic that will change the World as we know it. In a couple of quarter a new normal will settle in;
  • I’ve changed jobs. After near 4 years working at Talkdesk I decided to take a new challenge at Salsify;
  • I’ve moved to Lisbon. Yes, after living and working in Porto, Lisbon, London and then back again to Porto… I moved to Lisbon to work at Salsify (it’s where the EMEA offices are).

So as you can see the only constant in life is change.

I also decided to take a break from Public speaking… but I “failed” miserably at that attempt since I accepted the first invitation that came up (thank you Future.works for the kind invitation).

I’ll write a post about my presentation (it was yesterday) since I have the slides and the video to share with you all.

In the meantime, stay safe, stay home, and look after you and your loved ones.

See you soon! 🙂

Loose thoughts on Remote Work

(I’m going to write this post in English since I believe this is a concern to everyone in the World and not just for Portuguese speakers)

Some years ago I was one of the non-believers of Remote Work (RW).

And the reason for that was because RW for many years (and even today) has been misused, let’s see:
– it was for cost reduction (e.g. salaries, office space);
– to deal with crappy work (that co-located folks didn’t want to do);
– to work in an asynchronous way;
– it used several timezones (some of them with +8 hours difference);
– to have access to a very specific skillset;
– to have the minority of the team (usually one person) working in satellite mode (i.e. all the team is co-located with just one or two people working remotely);
– for the developers to be productive / be in the zone without noise/interruptions (in fact the only behaviour that was being valued here was individualism and not productivity).

No wonder a lot of people (like me) didn’t believe in remote working.

And we also need to take Agile in consideration and the legion of Agilists “preaching” for the co-location of teams.

But… And there is always one but… RW can actually work and be an amazing thing! You just can’t mess things up and follow a KISS approach.

And what showed that to me was actually two examples, that although didn’t work flawlessly… they did work:
– I once worked next to a team that had a remote person (with one hour difference) and in order for the team to work well he was projecting himself all the time and had his microphone “open” all the time and he was accessible to all the team. He was on being projected on a computer and if anyone from the co-located team needed the person they would just walk to the computer and spoke to the remote person. The team also worked all the time in pair programming which I believe helped a lot;
– I also worked for about a year with a brilliant person that remotely ran a team of +100 engineers. This particular person helped the engineering team grow from 10 engineers to 100 remotely. Yes, you read it right… Remotely!

Now that (hopefully) I convinced you that RW can work… I’m going to tell you what I believe RW should be like in order to work flawlessly:
– everyone is remote. There is no middle ground here… or everyone is co-located… or everyone is remote. Plain simple;
– everyone should be in the same time-zone… with “tolerance” for one hour (plus or minus) difference max;
– all work should be synchronous (just like co-located teams);
– you need the right tools (e.g. Sococo) where you are all projecting your video and talking to each other all the time (just like in an online First-person shooter – FPS – videogame);

And the advantages of that are:
– you are all remote with the (majority) of the benefits of co-location;
– you can work from wherever you like (e.g. home, coffee shop, country house)
– it can give you access to some people (and some skillsets) that due to their location you couldn’t count on them (e.g. Alaska, Grenada, Tuvalu, Freixo de Espada à Cinta);
– you’ll be working from a more comfortable place than the typical office
– you won’t need to worry about commute time;
– you can (be closer and) spend more time with your family, friends, pets and other things that have meaning in your life.

For me, it is a no brainer that RW works and it will be an increasing trend of this century.

So hopefully we’ll stop “suffering” from so many approaches from recruiters (usually on LinkedIn) asking for professionals to relocate to locations thousands of km/miles away from where you are currently based… and we’ll see more remote jobs appearing and with that changing (and dramatically improving) people’s lives.

Don’t get me wrong… Co-location is (usually) better than RW… But not only RW can work… As it can unlock some very interesting possibilities that co-location can’t. So both are great… you just need to decide which one is better for you.

Unicorn On-call :: “Portugal tour” :)

Apesar de estarmos no Verão, estamos a viver um Agosto a fazer lembrar o Inverno.

Com o Verão faz-se uma pausa no calendário das conferências (salvo exceções).

No mês de Junho tive a honra de fazer a minha apresentação “Unicorn On-call” em três eventos nacionais:

  • DevOpsDays Portugal;
  • Tech in Porto;
  • Landing Festival Lisbon.

A apresentação tem como objetivo celebrar a coragem, determinação e dedicação dos engenheiros que abdicam do seu tempo livre para olhar pelos sistemas das empresas e por consequencia pelos seus clientes. Esta atividade é normalmente designada por “on-call” ou “prevenção”.

Dos vários temas abordados na apresentação, gosto de destacar três:

  • Sofware Engineer a fazer on-call, na medida em que não acredito em equipas dedicadas a fazer on-call e porque acredito que as pessoas que desenvolvem sistemas devem também mantê-los;
  • O on-call deve ser em regime de voluntariado, ou seja, as pessoas não devem participar por serem obrigadas mas sim porque acreditam que o devem fazer;
  • Quando utilizamos “gamificação” conseguimos excelentes resultados (em vários níveis).

Deixo ficar os meus slides, aqui, aqui e aqui. Todos têm (ligeiras) diferenças. 🙂

Deixo ficar aqui também o video de apresentação do programa Vanguard (programa de on-call com gamificação):

E aqui fica a minha apresentação no Tech in Porto:

Até para a semana.

Product Panel – “How to scale a product team?” :: Landing Festival Berlin 2019

Por vezes escrever um post cedo de mais dá nisto… 🙂

Acabei por ter mais uma participação (que não estava à espera) na Landing Festival: Fui convidado para ser o moderador de um painel com o título “How to scale a product team?”.

Os painelistas foram:

Tivemos 60 minutos à conversa sobre como “escalar” uma equipa de Produto. Foi uma sessão muito interessante com a prespectiva de 3 pessoas com background e experiencias muito diferentes.

Foi uma experiência inesperada mas a repetir! Obrigado Pedro Saraiva (e Landing.jobs) pela oportunidade! 🙂

Até para a semana.

When Product meets Engineering :: Landing Festival Berlin 2019

Esta semana está a ser uma semana de “estreias”:

Ora bem… primeiro sobre a conferência: é simplesmente impressionante como é que a Landing Jobs consegue organizar uma conferência em Berlim com imensos profissionais, curiosos e estudantes da área. A conferência tem speakers espetaculares como a Sandi Metz e o Gojko Adzic e ainda um espaço para as empresas marcarem presença com as suas booths a tentarem atrair talento.

Em relação à minha talk tive uma receção (surpreendentemente) muito positiva! Basicamente questiono a estrutura clássica “Produto vs Engenharia” ou “Negócio vs IT” (depende dos termos usados em cada organização) e proponho uma estrutura chamada ARM: “Acquisition, Retention and Monetization”. A ideia por detrás desta estrutura é simples… Produto e Engenharia devem co-existir em áreas verticiais estratégicas da empresa (Aquisição, Retenção e Monetização de clientes) e não serem áreas por si. Podia escrever mais sobre o tema em si… mas é mais fácil assistirem à talk. 🙂

Me on stage

Quanto a Berlim… é uma cidade bem diferente das que eu já visitei: podemos estar numa zona chique / posh com preços caríssimos… e passamos para a rua do lado e parece que estamos de volta a 1980 com preços iguais aos do Porto (ou Lisboa). Aqui ficam alguns fun facts de Berlim:

  • Toda a gente bebe cerveja (de meio litro);
  • A cidade é bastante suja… faz-me lembrar o Porto há muitos anos atrás;
  • Tem ruas muito bem cuidadas e estimadas… e outras completamente vandalizadas;
  • Um café custa tanto como uma cerveja;
  • É fácil para um visitante (como eu) beber mais cerveja do que água (tipicamente com gás);
  • Vi mais pessoas de bicicleta nestes dias que num ano inteiro no Porto ou em Lisboa;
  • Não vi trânsito nem o metro cheio (mesmo em horas de ponta);
  • Para se viver em Berlim não é necessário falar Alemão (mas dá bastante jeito porque há muita informação espalhada pela cidade apenas em Alemão);
  • Tem empresas espetaculares como a Zalando e a N26 (para além de imensas outras startups).

All in all a experiência tem sido espetacular e agradeço imenso à Landing.jobs a oportunidade de viver esta experiência. 🙂

Até para a semana.

Psychological Contract, Internal Branding and Employee Turnover in an IT Company

Foi publicado ontem um artigo que teve como origem a minha tese de mestrado.

A Mediterranean Center of Social and Educational Research, através do Academic Journal of Interdisciplinary Studies, publicou o meu artigo com o título Psychological Contract, Internal Branding and Employee Turnover in an IT Company.

Deixo um especial Muito Obrigado ao Abílio Oliveira e ao Sérgio Moro por toda a ajuda, trabalho, empenho, convicção e perseverança. Sem eles este artigo não seria publicado.

Para quem tiver curiosidade pode aceder ao meu artigo aqui ou aqui.

Até para a semana.

Comunicação em equipas Ágeis: Desafios e Conquistas

Aconteceu no passado sábado o evento de referência da IPMA Young Crew Portugal, o PM4ALL, em Lisboa.

Foi um evento muito interessante onde tiver oportunidade de conhecer a Marisa “the Lucky PM” Silva, a Andreia Henriques e onde revi vários amigos. Parecia que estava em casa. 🙂

O dia foi muito bem passado com sessões (painéis e apresentações) excelentes. Gostei imenso da apresentação sobre Rapport da Ana Maças e da Lara Cunha.

Tive também oportunidade de abraçar a Sara Batalha o que foi, no mínimo, inesperado! 🙂

A apresentação que foi simplesmente overwhelming pelo conteúdo e pela forma super original foi a do Eduardo Espinheira que fez-me ganhar o dia. Ligar Gestão de Projeto com o “Principe” de “o tio” Nicolau Maquiavel e não dizer uma única palavra durante uma apresentação foi realmente uma lição de creatividade e de como estar em palco.

A minha apresentação foi sobre comunicação (o tema do PM4ALL deste ano) e equipas ágeis e tinha como título “Comunicação em equipas Ágeis: Desafios e Conquistas“. Abordei o tema mostrando que a pobre / falta de comunicação é um dos maiores motivos de insucesso dos projectos, demonstrei como é difícil comunicar (por causa da diversidade de canais disponíveis, das emoções, da urgência, da efetividade e do efeito “telefone estragado”) e como o facto de termos equipas grandes torna a comunicação muito difícil dentro da equipa. Falei do livro “The Mythical Man-Month” de Fred Brooks e falei sobre equipas co-localizadas e remotas.

Tive imensa pena de ter de “fugir” às 17h00 de volta para o Porto mas a um Sábado não tinha margem para ficar até ao fim do evento.

Foi um evento espetacular, organizado exclusivamente por pessoas em regime de voluntariado, e que não me deixa dúvidas que para o ano ainda será melhor. Recomendo!

Aqui ficam duas fotos da praxe:

Até para a semana. 🙂

Agile is Dead :: Wrap-up

Ao fim de 4 apresentações do Agile is Dead (no Pixels Camp, no Aginext, no Agile Connect e no Viana Tech Meetups)… acho que vou dar um “descanço” à minha apresentação que maior sucesso e aceitação teve (se bem que ainda devo esta apresentação à comunidade da Netponto… por isso vamos ver se não haverá uma última apresentação).

A verdade é que este tema está cada vez mais atual que nunca.

Senão vejamos:

  • Vemos novas empresas a quererem começar o seu caminho ágil;
  • Vemos empresas que já faziam há bastante tempo a sua travessia  a voltarem a trás e a questionarem/repensarem o ágil;
  • Vemos consultores a auto proclamarem-se “transformational, organisational, enterprise, technical, lean, agile coaches” sem terem experiência relevante na área;
  • Continuamos com os mesmos trainers a amealharem milhares de euros por cada “curso” de 2 dias;
  • Vemos N vertentes de ágil a surgirem: quer sejam pelo desafio de escalar (exemplos: SAFe, LeSS) quer seja pelo desafio de fazer as coisas de forma diferente (exemplos: Agnostic Agile, Modern Agile);
  • Vemos implementações de Scrum, no mínimo, questionáveis em várias empresas;
  • Não vemos melhorias óbvias, evolução na comunidade (comunidade esta que apregoa a melhoria contínua);
  • Vemos poucas comunidades ativas de aficionados e praticantes ágeis (uma boa exceção a este cenário é a Agile Connect);
  • Vemos empresas a questionar o ágil quer seja porque têm/tiveram as pessoas erradas a liderar/dinamizar o movimento quer seja porque não tem paciência para esperar pelos resultados;
  • Vemos empresas a não obterem os resultados de delivery desejados e a “culpabilizarem” o ágil.

E o que devemos fazer perante isto?

As (poucas) respostas que tenho para dar são:

  • Voltar para/continuar a fazer waterfall não é solução;
  • As empresas têm que ser muito mais exigentes com quem contratam para os papéis de scrum master/agile coach/consultor;
  • Definam critérios de sucesso claros entorno da adoção do ágil;
  • Meçam os resultados obtidos (quantitativos e qualitativos);
  • Evitem febres, modas e caminhos “rápidos” ou “fáceis”.

E pronto… ao fim de 4 meses sem escrever no meu blog tinha de voltar com um post deste estilo. O meu objetivo não é, nem nunca foi, denegrir o ágil… mas sim aumentar o sentido de urgência para que façamos alguma coisa em relação ao seu status quo.

Até para a semana.

Agile is Dead :: Aginext London 2018

A segunda edição da conferência Aginext aconteceu, em Londres, nos passados dias 22 e 23 de Março.

Os keynotes foram do Dave Snowden (primeiro dia) e do Antony Marcano (segundo dia). Tanto uma apresentação como a outra foram muito insightful. O Dave explorou a entrada no mundo Agile por parte das McKinzeys e Gartners da vida e como isso irá afetar as “Agile boutiques”. O Antony explorou um novo conceito, que tem construído com Kent Beck (pai do eXtreme Programming), chamado eXplore, eXpand e eXtract.

Umas das talks que mais gostei foi sem dúvida a talk do Dan (KanbanDan) Brown: Scrum is from Mars, Kanban is from Venus. Cada vez mais estou convencido que (de uma forma genérica) o Kanban consegue ser mais eficiente do que o Scrum nas organizações.

Em termos de regular talks/workshops destaco alguns speakers que estiveram muito bem: Richard Atherton, Dean Latchana, Roy Marriott and Portia Tung (autora do livro “The Dream Team Nightmare: Boost Team Productivity Using Agile Techniques”), Andrew Spence (Agile em auditoria), Torbjörn Gyllebring e Toby Sinclair.

Os temas foram muito pertinentes e variados; falou-se do futuro do Agile com especial enfoque em Kanban, Coaching, Comunicação e Transformação ágil.

A minha talk “Agile is Dead” foi muito bem recebida e tive inclusivamente o privilégio de ter a Liz Keogh a tweetar sobre a minha talk.

agile is dead :: me on stage


Pouco depois da minha talk tive a honra de ser convidado para abrir o painel “Why Agile Transformations Fail” com o Dean Latchana.

Panel Debate - Why Agile Transformations Fail by Dean Latchana

Foi um evento muito muito bom. Parabéns ao David Gimelle e ao resto da equipa pela organização.

A comunidade ágil Inglesa (e não só visto terem estado várias pessoas da comunidade Alemã) é realmente muito interessada e dinâmica.

É engraçado que sempre que estou em Londres fico com nostalgia dos dias que vivi nesta cidade. 🙂

Até para a semana.