Retire to something, not from something [Dave Anderson]
Planning
Most people overestimate what they can do in one year but underestimate what they can do in 10 years. [Bill Gates]
No plan survives contact with reality. Circumstances will inevitably change over the course of a multi-year plan, and so the plan will have to evolve. [Ethan Evans]
Be stubborn on the vision and flexible on the details [Jeff Bezos]
Predictability in Software Engineering
Treat the need for predictability as a defect. When you assign dates on every project, it is a disaster for the teams involved. It encourages heroics to meet dates, long hours, or a team which is encouraged to sandbag all their estimates (what I mean is that teams will inflate their estimates to make sure they can hit their dates). Instead, you should avoid the need for predictability like the plague. Only in extreme situations should the organization assign predictability as a priority. An example might be a hardware product which needs the firmware available before testing. All other situations should be focused on throughput of tasks, not predicting tasks. Get your employees delivering efficiently, and then get out of the way. [Dave Anderson]
Get things launched fast. In a perfect world, your team would work on one thing at a time. You would smash that single project, get the thing out the door, and move on. No excessive code in flight, everything code reviewed immediately. In reality, you just need to minimize in-flight tasks, and focus on finishing tasks, rather than making progress on multiple tasks. [Dave Anderson]
Techdebt
I've identified the critical areas of technical debt in our codebase that are actively slowing us down. I've created a roadmap that lets us address these issues incrementally while continuing to deliver business value. We'll improve the most problematic components first and gradually enhance the architecture over time. [Steve Huynh]
Regulations
The Indistrial Revolution cam about through major technologic and agricultural advances, and it brought sustained economic growth and significantly improved living standards in the long run. Yet it also came with major problems: pollution of the air (due to smoke and chemical processes) and water (from industrail and human waste) was dreadful. Child labor was common, including dangerous and poorly pair work in mines. It took long time before safeguards were established, such as environmental protection regulations, safety protocols for workspace, outlawing child labor, and helath inspections for food. Undoubtedly the cost of doing business increased when factories were no longer allowed to dump their waste into rivers, sell tainted foods, or exploit workers. But society as a whole benefited hugely from those regulations, and few of us would want to return to a time before. [Martin Kleppmann]
Ambiguity
Coding interview problems are so unrealistic because all of the problems are well-defined. Clear constraints on input. A battery of test cases with known solutions. But real-world engineering is filled with fog and uncertainty. [Steve Huynh]
When confronted with ambiguous situations, your goal isn't to find a solution. Once a suitable problem has been framed, the ambiguity doesn't exist anymore. When it comes to dealing with ambiguity, the problem is the solution. [Steve Huynh]
This completely transformed how I approach vague directives. Instead of spinning my wheels trying different solutions to poorly defined problems, I now focus my energy on problem definition.
If I had an hour to solve a problem, I'd spend 55 minutes thinking about the problem and 5 minutes thinking about solutions.
Ambiguity is inevitable but by reframing it as an opportunity to ask profound questions, you turn what most people see as a frustration into your competitive advantage.
Software engineering is creative and unpredictable. If it was predictable, it wouldn’t be real software engineering work. Real software engineering work means you’re inventing a solution which hasn’t been built before. These new features (and bug fixes) are by their nature unpredictable. Pretending confidence and predictability is dangerous. [Dave Anderson]
Chaos and order:
Chaos is not a bug, chaos is a feature of all ecosystems where individual choice is (mostly) unconstrained. If you want simplicity and efficiency, you give up a lot of individual choice and you are opting for a slower pace of evolution. Chaos is the price of freedom. [Jos Visser]
Creativity:
If you find yourself heads down thinking hard (and failing), it may be time to take a walk. Stepping away from your work isn’t simply a stress reducer, it might be the necessary path to a solution. [Dave Anderson]
(There are) two different ways of our brains processing problem-solving: focused mode vs. diffuse mode thinking. [Dave Anderson]
Motivation
Ask the question "What would make this work fun?" when confronted with work that you're avoiding. [Ali Abdaal]
Making work feel more like play isn't about changing the work itself, but about changing how we frame and approach it. After all, if we can find joy in managing virtual resources and overcoming digital challenges, perhaps we can find similar satisfaction in life's real challenges too. [Steve Huynh]
Working time
We say that our work is a marathon, not a sprint. That means that we’re out to create value over years, not over months. [Dave Anderson]
Building a team of employees to repeatedly deliver value is a marathon.
A tenured team working sustainable hours will accomplish more over the course of years than an overworked team with low tenure. Those additional long hours may gain you brief productivity, but they’re insignificant compared to the cost of replacing your best employees.
On average, setting limits doesn’t actually limit your career. Instead, it’s a major factor in driving your career forward. By working on the most valuable work (and saying no to the rest), you ensure that you’re looking at your position as a marathon, not a sprint.
Complexity
A complex system that works is invariably found to have evolved from a simple system that works [by John Gall]
Vision vs. Goal, by Dave Anderson
There is surely nothing quite so useless as doing with great efficiency what should not be done at all.
We had jumped from an idea to a goal, without taking the time to fully understand where we wanted to go. We had accomplished nothing valuable for [the company] or for our [customers].
A vision, is usually not specific. It’s about the future you desire. It explains what you value, and why you value it.
Setting a vision is harder than setting goals. They take hard work and thought. They’re less tactical, and more ambiguous. They’re not about the obvious, so they’re often a step or two away from a common sense next step.
Vision is a statement about what you value, and what you believe your customer cares about. It doesn’t try to speak to what you’re going to do to accomplish your vision.
Actions vs Intentions, by Ethan Evans
We judge others by their actions; ourselves by our intentions. With others, we only see what they do. Then, we ascribe motives to those actions based on assumptions and biases.
When you assume negative intent, you're angry. If you take away that anger and assume positive intent, you will be amazed...You don't get defensive. You don't scream. You are trying to understand and listen because at your basic core you are saying, 'Maybe they are saying something to me that I'm not hearing.'. Indra Nooyi (former Chairman & CEO of PepsiCo)
Failures, by Steve Huynh
In the most critical systems, failure isn't just possible, it's inevitable. What matters isn't the mistake itself, but how quickly you catch it, how transparently you handle it, and most importantly, how you prevent similar issues in the future.
I hadn't failed because I didn't know my material. I'd failed because I forgot that presentations aren't about showing how much you know – they're about helping others understand. Technical presentations aren't just about the technology – they're about connecting with your audience, telling a compelling story, and bringing others along on the journey.
In software engineering, as with any career, failure isn't just inevitable – it's essential. Each failure is an opportunity to learn, to grow, and to become better. The key isn't to avoid failure entirely – that's impossible. The key is to fail forward, to learn quickly, and to share those lessons with others. Because in the end, the measure of your career isn't in never failing – it's in how you handle it when it comes. And it always comes.
Debugging, by Jos Visser:
Debugging is a methodical treasure hunt: You need to start with a map and then follow all the clues. It is a bug hunt where you need to corner the bug in a location where it cannot escape from.
Being perfect:
It is okay for your design not to be perfect. It’s okay for the codebase not to be perfect. I am not here to make everything perfect, I am just here to make things better. Never let your critics compare your work to utopia [Jos Visser]
Impostor syndrome is a well-known phenomenon, not because it’s fake, but because we can see our flaws. I think it’s great to be able to recognize your flaws. It helps us improve. [Dave Anderson]
Leadership often involves navigating trade-offs, not just enforcing technical doctrine. The pursuit of the "correct" solution can lead to endless debate or over-engineering, preventing the team from shipping and learning. [Steve Huynh]
Being right, by Jos Visser:
One of the reasons why being right isn’t all that important: Being right requires a lot of knowledge, insight, and experience, but only the people who have at least as much knowledge, insight, and experience can actually know that you are right. Everyone else has to take it on faith. If you don’t know anything about anything and you hear two different takes on something, you have to believe someone.
If you want to make a significant change, being right is just the first step. Without being right, you have no hope in hell of succeeding, but it is not nearly enough. You cannot expect to tell people you are right and then sit back and let events unfold in your preferred direction. Being right is a necessary but hopelessly insufficient condition; it is the 1% inspiration that might motivate you to get going, but you better also be ready to put in the 99% perspiration to drive your idea all of the way.
Advices, by Jos Visser:
Advice works only if you know the person you are giving advice to very well so that you can target your advice to their needs. Most of the time, the only one who knows the person needing advice well enough to formulate that advice, is that person themselves! This is why good coaches, instead of giving advice, help you figure out the answer yourself. When push comes to shove, only you can give good advice to yourself.
So, don’t give people the answer, help them find the answer for themselves. And start doing that by making them imagine a world where the problem is already solved. If they can do that, figuring out how to get there is easy.
Management:
Joel Spolsky, the cofounder of Stack Overflow and creator of Trello, once said, “Your first priority as the manager of a software team is building the development abstraction layer”. He further explains that if a developer is directly exposed to infrastructure issues like access to the project repo on GitHub or overriding a firewall for necessary project work, then the abstraction has failed.
Management vs Leadership:
Leadership is the act of inspiring, influencing, and guiding others towards a common goal or vision. In short, a leader is someone who says, “This way everyone!”
Management is the responsibility to coordinate and organize resources (usually people) to achieve an objective or set of objectives. In short, a manager must ensure the work is organized, everyone knows their role, and resources are on track to achieve their objectives. This responsibility typically comes with organization given authority.
One of the most important qualities of a good leader is optimism, a pragmatic enthusiasm for what can be achieved. Even in the face of difficult choices and less-than-ideal outcomes, an optimistic leader does not yield to pessimism. Simply put, people are not motivated nor energized by pessimists. [Bob Iger, CEO of Disney]
Optimism in leadership isn't about denying challenges—it's about maintaining confidence in your team's ability to face them head-on and overcome them. [Omar Halabieh]
It's difficult to understand the sum of a person's life. Some people will tell you it's measured by the ones left behind. Some believe it can be measured in faith. Some say by love. Other folks say life has no meaning at all.
Me? I believe that you measure yourself by the people who measure themselves by you.
Carter Chambers (Morgan Freeman) - 'The Bucket List'
If our Gods and our hopes are nothing but scientific phenomena, then let us admit it must be said that our love is scientific as well.
Auguste Villiers de l'Isle-Adam - "The Future Eve"
People never forgive themselves and so they would always be dangerous.
Mario Puzo - 'The Godfather'
You cannot say 'no' to the people you love, not often. That's the secret. And then when you do, it has to sound like a 'yes'. Or you have to make them say 'no'. You have to take time and trouble.
Mario Puzo - 'The Godfather'
Life is not the amount of breaths you take, it's the moments that take your breath away.
Alex Hitchens (Will Smith) - 'Hitch' (movie)
What if there was a species above us in the food chain? How do you think you'd feel if that species lost total respect for us and started slaughtering us, wholesale?
Aaron Hallam (Benicio Del Toro) - 'The Hunted' (movie)
The object of a question is to obtain information that matters to us and to no one else.
William Forrester (Sean Connery) - 'Finding Forrester'