I have these 5 questions as sections of a Notion template.
Some rules are:
1. We can only define the "What" after we understand the "Why".
2. We can only plan the "How" once the "What" is clear.
3. Defining the "How" implies discussing tradeoffs that affect "Who" and "When".
Ten Principles for Growth as an Engineer by Dan Heller:
“These are the most important lessons that I wish I had learned ears earlier than I did; I sure wish someone had sent it to me when I was 22.”
1. Reason about business value: Reason like a CEO. Understand the value of your work to your company, and take responsibility for reasoning about quality, feature richness, and speed. Your job isn't just to write code; your job is to make good decisions and help your company succeed, and that requires understanding what really matters.
2. Unblock yourself: Learn to never, ever accept being blocked; find a way by persuasion, escalation, or technical creativity. Again, your job isn't just to write the code and wait for everything else to fall into place; your job is to figure out how to create value with your efforts.
3. Take initiative: The most common misconception in software is that there are grown-ups out there who are on top of things. Own your team's and company's mission. Don't wait to be told; think about what needs doing and do it or advocate for it. Managers depend on the creativity and intelligence of their engineers, not figuring it all out themselves.
4. Improve your writing: Crisp technical writing eases collaboration and greatly improves your ability to persuade, inform, and teach. Remember who your audience is and what they know, write clearly and concisely, and almost al-wavs include a tl;dr above the fold
5. Own your project management: Understand the dependency graph for your project, ensure key pieces have owners, write good summaries of plans and status, and proactively inform stakcholders of plans and progress. Practice running meetings! All this enables you to take on much bigger projects and is great preparation for leadership.
@RafaDelNero Projects depending on open source libraries that haven’t been maintained for sometime.. leading to blockers when upgrading major Java/springboot versions