Todo desenvolvimento de software tende à mediocridade? Sim, e tem muito pouco que podemos fazer a respeito - perdemos a luta por um ecossistema de tecnologia que preze pela qualidade de software, consistência de entrega e ritmo sustentável. Um desabafo:
Sinceramente acredito que não existem mecanismos adequados hoje, nas organizações, quem possam fazer isso de maneira duradoura.
Apesar dos exemplos louváveis de quem está tentando a duras penas manter um ritmo sustentável e algum tipo de maestria no dia-a-dia, o principal da nossa indústria de software é mediana, medíocre, incompetente e que não pretende melhorar: é mais fácil trocar de empresa, ou desistir do lançamento de um produto, do que preparar uma evolução real que no longo prazo trará frutos: é a indústria TikTok de TI. Ninguém fica tempo suficiente na empresa para entender o impacto das decisões ruins que estamos tomando: nem executivos, nem funcionários, nem empreendedores. Só resta o ciclo vicioso de catar os cacos de tecnologias cada vez mais fragmentadas até não aguentar mais, com profissionais cada vez mais estressados e menos experientes para atender a demanda sempre crescente.
Poucos meses necessários para que toda uma equipe de tecnologia seja substituída e que todo o histórico de decisões seja perdido - Saímos de um mundo em que as pessoas se aposentavam no trabalho, pra um em que ninguem chega a 2 anos numa empresa. E os incentivos gerais só pioram a situação: Executivos medidos por resultados trimestrais, tomam decisões absurdas para garantir o número de agora, mesmo que isso gere prejuízos futuros. Regras salariais impedem que funcionários sejam avaliados acima de um percentual por ano, criando um cenário que é melhor sair da empresa para ganhar aumento do que esperar uma promoção.
O próprio ritmo em que equipes são formadas e desfeitas joga contra o desenvolvimento de produtos sustentáveis - em tecnologia e em negócio. Responder rapidamente à mudança não é a mesma coisa que entregar qualquer coisa a qualquer custo, por mais que seu gestor dê a entender isso no seu dia-a-dia. Com gestores cada vez mais distantes de tecnologia e ao mesmo tempo cada vez mais dependentes dos resultados do que se faz com tecnologia, não há como saber o óbvio: quase toda empresa é uma bomba relógio de TI.
Eu realmente acho que o futuro da profissão é bastante sombrio: cada vez mais pressionado por visões de curto prazo e busca por resultados imediatos, em detrimento total da sobrevivência do parque de tecnologia das empresas. Hoje em dia é mais fácil decretar falência e seguir para o próximo greenfield startupeiro. Mesmo com o avanço da discussão sobre manutenibilidade de código, métricas de qualidade e eficiência de processos em vários campos, o conjunto de incentivos pra executivos que tocam em tecnologia é tão perverso, que não há, em hipótese alguma, chance de uma equipe motivada permaneça assim por muito tempo.
Nesse contexto, inteligência artificial vem para piorar a situação. Como o @giovannibassi disse: gestores e executivos que não entendem muito de tecnologia agora esperam a possibilidade de uso de uma ferramenta cujo maior potencial é substituir a pessoa desenvolvedora na equipe, enquanto sabidamente se adiciona mais complexidade e divida técnica ao código, ampliando ainda mais o problema.
Vendors de tecnologia, por sua vez, superestimam as capacidades de suas ferramentas, para conseguirem se diferenciar no mercado já polarizado e movido ao hype: 2021 web3, 2022 data science, 2023 gpt, 2024 IA pra tudo.
Eu sigo cansado, já há bastante tempo, desse modelo que lutei tanto contra. Não quero soar niilista nesse texto, mas me questiono muito se existe algum saída…
Scrum is a cancer.
I've been writing software for 25 years, and nothing renders a software team useless like Scrum does.
Some anecdotes:
1. They tried to convince me that Poker is a planning tool, not a game.
2. If you want to be more efficient, you must add process, not remove it. They had us attending the "ceremonies," a fancy name for a buttload of meetings: stand-ups, groomings, planning, retrospectives, and Scrum of Scrums. We spent more time talking than doing.
3. We prohibited laptops in meetings. We had to stand. We passed a ball around to keep everyone paying attention.
4. We spent more time estimating story points than writing software. Story points measure complexity, not time, but we had to decide how many story points fit in a sprint.
5. I had to use t-shirt sizes to estimate software.
6. We measured how much it cost to deliver one story point and then wrote contracts where clients paid for a package of "500 story points."
7. Management lost it when they found that 500 story points in one project weren't the same as 500 story points on another project. We had many meetings to fix this.
8. Imagine having a manager, a scrum master, a product owner, and a tech lead. You had to answer to all of them and none simultaneously.
9. We paid people who told us whether we were "burning down points" fast enough. Weren't story points about complexity instead of time? Never mind.
I believe in Agile, but this ain't agile.
We brought professional Scrum trainers. We paid people from our team to get certified. We tried Scrum this way and that other way. We spent years doing it.
The result was always the same: It didn't work.
Scrum is a cancer that will eat your development team. Scrum is not for developers; it's another tool for managers to feel they are in control.
But the best about Scrum are those who look you in the eye and tell you: "If it doesn't work for you, you are doing it wrong. Scrum is anything that works for your team."
Sure it is.
Elon Musk fired 6,500 employees at Twitter.
A little birdie told me it's down to:
- 2 designers
- 6 iOS developers
- 20 web developers
- Around 1,400 sales and operations people
How is it possible that we are still using this website?
Two words:
Parkinson's Law.
Have you ever wondered why seemingly simple tech companies have tens of thousands of employees?
Sometimes, it's because they have huge sales forces or tech support/operations people.
But often it's also due to Parkinson's Law.
Parkinson's law is like lighter fluid for bureaucracy.
It's a business tapeworm that slowly eats away at companies, making them less and less efficient and innovative over time.
Parkinson's Law is the idea that the work will generally expand to the amount of time, budget, and number of people allocated to it, and no matter how many people you allocate to it, those people will feel busy.
They'll feel busy because, due to the excess time/slack in the system, they'll start focusing on less and less important tasks.
Here's how it manifests on an individual level:
Let's say you have a report due in a week.
The report might only take you around five hours to finish if you really focus and work efficiently. However, because you know you have a week to complete it, you might find yourself spending a lot more time on it than you need to.
You'll be more prone to distractions, take longer breaks, or perhaps decide to add more details, tables, graphs, and so forth.
Essentially, the task becomes more complex and time-consuming purely because you have more time in which to do it.
And here's how it manifests across organizations:
Imagine a big tech company. A social media company with various departments. Each department has tasks that it must complete to contribute to the overall productivity of the company.
Now, suppose each department is given a budget and a set amount of time to complete its tasks for the year.
According to Parkinson's Law, each department will use its entire budget and the entire allotted time, even if the tasks could have been completed more efficiently.
This is because as resources and time increase, departments tend to become more complex and less efficient.
For example, a department might add more steps to its procedures, requiring more approvals and creating more paperwork, which slows down the process.
Or it might use the full budget on additional personnel or equipment that doesn't necessarily improve productivity.
The department might also use the full budget to justify the same or larger budget for the next year, since budgets in many organizations are often determined based on the previous year's spending.
This is a phenomenon known as "budget padding" or "spend it or lose it" mentality.
Inefficiencies can also develop in staff allocation. If a department expands, it might add managerial positions that aren't strictly necessary.
More employees are hired to manage, creating layers of bureaucracy that may not contribute to productivity and can even slow decision-making.
I have seen this occur over and over again in my career. The larger the team, the larger the budget, the longer the timeline, the less gets accomplished.
I'm very curious to see how many more tech companies come to this realization.
So often, good times + revenue growth = Parkinson's Law.
When teams estimate work for a product, there's a HUGE GIGANTIC ERROR that they almost always make.
What's that error? They only count the cost of building a feature. "This feature will take 4 engineer weeks to build."
That's just the beginning of the cost.
🧵
Hey #Xbox players! 👋
Would you try this out if it was on gamepass? 🤔
We are a small indie team working on our dream game, coming to Xbox Series X | S, Xbox One and Steam
Help us out with a like or RT🔁so we can start the new year off with a bang! 💥 #goodbye2022