Software Engineering Leadership — 2
Published in
3 min readFeb 11, 2022
Read Part 1
⚓️ Building Teams: Why does anyone want to join our team and continue with the team?
- Establish a tech culture that encourages learning and growth.
- Provide time for engineers to think and collaborate, balancing fresh graduates and experienced engineers.
- Look for attitude, focus, and leadership skills during interviews.
- Encourage ownership of the product.
- Focus on the overall well-being of team members, not just work.
- Be ready to place resources where they fit best.
- Encourage self-motivation through transformational leadership.
- Trust and keep an open mind toward team members.
🌳 ️Making Decisions:
- Effective decision-making requires gathering relevant data and analyzing it to determine the best course of action.
- It’s helpful to use prior experience to make informed decisions, even without all the information.
- Regularly monitoring the skills and performance of employees, including their ability to handle unexpected challenges, can help guide decision-making.
- Keep track of both internal and external team contacts to ensure effective communication and collaboration. When evaluating different options, consider the balance between cost, value, and effort.
- By weighing these factors and considering the impact on all stakeholders, you can make informed, strategic decisions.
👸 Prioritizations:
- Political vs Value: Always show respect to your competitors. This mindset will help you stay calm and make better decisions by focusing on practical outcomes. If there’s disagreement on priorities, try holding a vote to emphasize the importance of value propositions over political considerations.
- If you lose, take the time to reevaluate your decisions before moving forward. Use a flow chart approach to determine priority by connecting functional flows through conditional attributes.
- When working with other teams, it’s essential to prioritize tasks and rough ownership contracts between teams and their components and services. These contracts will evolve, and collaboration is key to ensuring everyone stays on track.
⏰ Deliver Programs on tight Timelines with Limited Resources:
- Quality: Focus on ensuring the desired level of quality in the system design and functional development, even with limited resources and tight timelines. Prioritize quality over other features like distributed system support.
- Scope: Research existing products or tools that can meet your requirements, considering cost and additional features like analytics and maintenance.
- Cost: Consider the costs of using well-established tools, including the cost of maintenance and resources required to use them effectively.
- Due Diligence: Don’t forget legal considerations. Account for legal due diligence from start-up to enterprise level as needed.
Stay tuned for Part #3.