Asking questions the right way
In the software development realm, asking questions isn't just a right—it's a downright necessity. Let's not just ask questions, let's ask the right ones, and let's do it without beating around the bush. Because in this game, a well-placed question can be the difference between a project that soars and one that’s ten times over budget. Let's get to it.
💡 Embrace curiosity and ask questions to foster innovation and more profound understanding in engineering.
🤔 Asking the right questions is essential for success in software development and project management.
🧐 Before asking a question, do thorough research using search engines and specialized forums to avoid asking questions that could be easily answered through research.
🚫 Avoid the XY Problem by focusing on the core issue rather than fixating on a specific solution.
🙋♂️ Don't be afraid to ask questions, as there are no “stupid” questions in the world of software development.
📱 Choose the right communication platform and approach when asking questions based on the nature of the question and the ideal respondent.
🚀 Formulate questions clearly and concisely, avoiding complexity to ensure maximum value and clarity.
🦆 Use the “rubber duck” method to structure your thoughts and questions effectively.
🔄 After receiving an answer, summarize and share the knowledge to benefit others and reinforce your understanding.
Death By A Thousand Microservices
There is a pretty well-known sketch in which an engineer is explaining to the project manager how an overly complicated maze of microservices works in order to get a user’s birthday - and fails to do so anyway. The scene accurately describes the absurdity of the state of the current tech culture. We laugh, and yet bringing this up in a serious conversation is tantamount to professional heresy, rendering you borderline un-hirable.
💡 Complexity in software development can be detrimental, and the industry is grappling with the challenges posed by an excessive number of microservices.
🌐 JavaScript's expansion into server development and the influence of FAANG veterans have contributed to the proliferation of microservices.
💰 The influx of venture capital has led to companies prioritizing growth over simplicity, resulting in the creation of complex microservices architectures.
🚀 Many successful companies, such as Dropbox and WhatsApp, began as monolithic code bases, debunking the notion that microservices are necessary for growth.
🤔 Before adopting microservices, it's crucial to assess whether your problem truly requires such complexity and whether your team has the expertise to manage it.
🔄 Microservices often lead to code duplication, complexity in managing common libraries, and challenges in developer ergonomics.
🧩 Integration testing in a distributed setup can be problematic, necessitating investments in observability and canary releases.
🔗 Instead of microservices, consider a balanced approach with “trunk & branches,” where a monolith is complemented by branch services for specific tasks.
🎢 The hype around microservices is subsiding as businesses recognize the need for practical, problem-focused solutions rather than over-engineered architectures.
Elevate Your Performance Review Conversations with these 12 Expert Tips
Performance reviews don't have to be dreaded – they can be valuable exercises for growth and alignment.
🔍 To prepare for a performance review, consider using a “Personal Press Release” exercise to highlight your accomplishments and goals.
🗂️ Managers can structure their review conversations using a template that covers accomplishments, superpowers, high-level feedback, and development areas.
🔮 To make performance reviews more impactful, engage in three types of conversations: Past (Life Story), Future (Dreams), and Present (Career Action Plan).
⏰ Spend extra time with high-performing employees, as they have the potential to make a significant impact on the company.
🥪 Avoid the “sh*t sandwich” approach and provide direct, constructive feedback.
👥 Distinguish between interpersonal and performance feedback, and use specific language to communicate effectively.
🙋♀️ Ask questions that make the feedback resonate and show that you care about the recipient's success.
💡 State your point directly and follow up with a question to make feedback more effective.
🔄 Look backward and forward in performance reviews to reflect on past experiences and plan for the future.
🗣️ Use clear and structured feedback frameworks like SBI (Situation, Behavior, Impact) and Start, Stop, Keep.
🤔 Ask clarifying questions when receiving feedback to better understand and avoid defensiveness.
🤝 Reflect on feedback before responding and consider the opportunity for improvement.
📝 Document and respond to feedback with specific actions and explanations.
💬 Foster open and honest communication in performance reviews to facilitate growth.
📚 Embrace a strengths-based approach to align individual strengths with tasks
🕒 Take the time to help individuals reflect on their learning and growth.
💬 Use tried-and-true feedback frameworks for effective communication.
🚀 Encourage growth and development by setting clear career goals and challenges.
🎯 Focus on behaviors and actions when giving feedback for better results.
Key Leadership Competencies for Transformational Leaders
Transformative leaders inspire and motivate individuals and teams with a leadership style that builds relationships based on trust. Additionally, it fosters personal development, leads change initiatives, and embraces clear communication. Moreover, transformational leaders hold themselves and others accountable for their performance and actions to manifest the vision you have for your organization.
🌟 Transformational leadership is essential in the rapidly changing post-pandemic business landscape.
🌟 Transformational leaders inspire and motivate through trust, personal development, and clear communication.
🌟 Key competencies for transformational leaders include inspirational communication, visionary thinking, emotional intelligence, coaching and development, relationship building, inspirational motivation, and change management.
🌟 Effective communication skills are crucial, with 91% of respondents criticizing leaders' lack of effective communication.
🌟 Visionary thinking involves setting inspirational goals and encouraging innovation within teams.
🌟 Emotional intelligence helps build relationships, trust, and positive work environments.
🌟 Coaching and development empower teams, inspire innovation, and lead to a motivated workforce.
🌟 Relationship building fosters trust, collaboration, and a positive work culture.
🌟 Inspirational motivation involves communicating a compelling vision and setting clear expectations.
🌟 Change management is vital for success, addressing concerns, and inspiring buy-in.
Solving the Engineering Strategy crisis
Over the course of my career, I’ve frequently heard from colleagues, team members and random internet strangers with the same frustration: the company doesn’t have an Engineering strategy. I don’t think this problem is unique to Engineering: it’s also common to hear folks complain that they’re missing a strategy for Product, Design or Business. But, whereas I don’t feel particularly confident speaking to why so many companies are missing a clear Business or Product strategy, I’ve come to have some clear opinions about why so many engineering organizations don’t have a written strategy.
💡 Many companies lack a clear Engineering strategy, and this issue extends to other areas like Product, Design, and Business.
💡 Engineering strategy comprises two core components: an honest diagnosis of current challenges and a practical approach to address them.
💡 Written engineering strategies are more effective than implicit ones, as they allow for feedback, updates, and accountability.
💡 Effective engineering strategies can concentrate tooling investment, reduce conflict, and control the innovation budget.
💡 Writing down your company's engineering strategy is a crucial step in solving the engineering strategy crisis.
💡 You can drive engineering strategy both from the top-down by aligning with CTOs and from the bottom-up by synthesizing design docs into a comprehensive strategy document.
How many direct reports should a manager have?
Ah, the classic all-time question that has probably caused more arguments than it has resolved. The answer is, of course, it depends. However, there are some guidelines that can help you make the right decision, both for yourself and for your team.
📊 The optimal number of direct reports for a manager depends on various factors, and there's no one-size-fits-all answer.
🤔 Practical limits, seniority of the manager, seniority of the reports, a manager's level of individual contribution, and the type of work the team does all influence the ideal span of control.
📉 Organizations should periodically review their span of control to ensure managers are operating effectively, especially during challenging times.
📈 The sweet spot for most managers falls in the range of 5-10 direct reports, allowing them to delegate work while providing support and guidance.
🚀 Managers with small teams can still contribute meaningfully to the team's output, especially if they are strong individual contributors.
🧐 Extremely large teams (15+) can lead to ineffectiveness and attrition for managers, and it's essential to address this situation.
💡 While some managers may claim they can handle very large teams, aiming for the sweet spot is generally advisable for success in most organizations.