The Evolution of Software Architecture

I came across this great overview of each software architecture trend since the 1990's. I remember fondly (and sometimes not) dealing with systems in each of these areas - each having their own array of benefits and challenges.

Evolution of Software Architecture

If you can’t feed a team with two pizzas, it’s too large. That limits a task force to five to seven people, depending on their appetites — Jeff Bezos

Source - @benorama

Chess, Not Checkers

The first few years of my career were relatively straightforward. I came to work every day, grabbed my new user stories or defects and started working. Most of what I developed was in a vacuum and I rarely had to worry about my code changes affecting anyone else's part of the system. Mostly, I was playing Checkers - a fast paced, reactionary game where the object is speed and there's not much strategy involved.

However, as time progressed and I gained more responsibilities in my day-to-day work, I learned (the hard way in most cases) that almost everything I did somehow affected someone else. Even more importantly, I learned that my decisions had direct and lasting impacts on the rest of my team. I could no longer handle my work life day-to-day like before. My straightforward game of Checkers switched to a more complex game of Chess without me even knowing it.

This is a common problem people at all levels of leadership face. The key is to recognize when the game has changed and adjust your strategy accordingly. How, You ask? In Chess Not Checkers: Elevate Your Leadership Game Mark Miller outlines four key strategies, loosely based on Chess, to help you re-frame your thinking as a leader.

  1. Bet on Leadership - Growing leaders grow organizations. Investing in leadership is the single most important thing your organization should be doing, whether you're a dev team of 3 or a Fortune 100 company. The leadership "bench" you establish will help instill the culture and cadence the rest of the organization follows. If you get this wrong, you'll find yourself wondering why it's so difficult to get things done, and live in constant disappointment that everything takes much longer to complete than expected.
  2. Act as One - Alignment multiplies impact. In Chess, one bishop is worth 3 points, but two bishops together are worth 7. Having a clear vision and direction for an organization will ensure everyone is marching towards the same goal. Organizational structure will act as a multiplier (division of labor) instead of a drag (communication complexity). It's always better to focus chunks of your resources on a few, high value, goals instead of spreading them too thin and trying to do everything at random.
  3. Win the Heart - Engagement energizes effort. Understanding the strengths and weaknesses of each member of your team and pointing them towards the right objectives will help foster motivation. Thought workers are not interchangeable cogs in a machine and the more individualism you give your team members, the harder they will work. They'll also be happier and more creative.
  4. Excel at Execution - Greatness hinges on execution. Putting systems in place to actually deliver value is vital. The best plans, tactics, strategies, and visions in the world mean nothing if the actual work doesn't get done. Setting goals, measuring results, and striving to constantly improve are the cornerstones of executing well. Get this wrong, and the rest of the gains listed above fall apart.

I really enjoyed Chess Not Checkers. It's told in a fictional story narrative and contains some great nuggets of wisdom that any leader at any level could benefit from. Best of all, it makes you aware of the deadly process of playing Checkers (which we're all guilty of) when you should be playing Chess. Failure to recognize and address this shift in your professional life could have drastic consequences.

Five Qualities of People-Focused Leaders

When you’re in a relationship, if you are aware of a problem, it’s your responsibility to make a concerted effort to make a positive change. - John Maxwell

I was reading Be a People Person: Effective Leadership Through Effective Relationships. by John Maxwell over the weekend. The "big idea" of Be a People Person centers around getting the most out of those around you in work, family, and social life, by improving your interpersonal relationships.

At the end of the day, the effort of a single person (you) doesn't scale well. To achieve remarkable results, you must rely on those around you. Unfortunately, people don't work effectively together by default. As a result, a large chunk of your effort as a leader should be spent on relationships in order to achieve the results you're looking for.

According to Maxwell, there are five qualities leaders possess who excel at building relationships with those around them:

  1. Encourage others - In short, you don't build great relationships with those who have a negative attitude towards you or your accomplishments. Encouraging those around you will not only build trust, but it will give them the confidence they need to succeed when times get tough.
  2. Appreciate others - Humans crave appreciation. Recognizing the importance of those around you and communicating their value to the team will pay huge dividends in the future. Appreciating others can take the form of giving credit for suggestions, correcting grievances, providing encouragement, and asking for the opinion of others.
  3. Forgive others - When we look back at mistakes we made in the past, we typically view our actions through the filter of intent. After all, we didn't mean to criticize so harshly. However, when we look at the actions of others, we judge through behavior. This allows us to easily jump to the conclusion that the negative actions of others were somehow done on purpose. However, this is rarely the case. Giving those around you the benefit of the doubt when something doesn't go as planned will help you focus on what's important and not waste time/energy fighting over things that don't matter.
  4. Listen to others - People want to be heard. If you have to make a tough decision, especially one that some of those around you disagree with, it's important to ensure everyone has an opportunity to voice their point-of-view before moving on. It's much easier to get buy-in from your team after everyone has been heard, regardless if they fully agree or not.
  5. Understand others - Peter Drucker says "60 percent of all management problems are a result of faulty communications." Taking the time to understand those around you will help avoid feelings of disappointment and resentment when navigating tense situations.

These five areas serve as the foundation for leading others. Success here can turn good leaders into great leaders through bringing out the best in the people on your team.