7 Things Engineers Should Think About

Builders, you are always near and dear to my heart. I know the challenges first-hand of investing a huge amount of time, effort and care into producing something great. I emphasize with the difficultly that goes along with making a product that is simple to use, yet powerful behind the scenes. There are other points to always keep in mind however, that are important in being a continuously successful engineer:

People aren’t bits

We work hard to control all of the input and output of a system or process, but those rules almost never apply to people in the same way.

Remember that in all things, there is good to be found, and we should celebrate that success

A great engineer focuses on those things that can be improved. To the point that even if things are great, they are most interested in that bit that isn’t, and how we can either eliminate it entirely or relentlessly improve. Opportunity lies in the less than perfect, but we need to recognize what is working too.

Software is 99.997% people

Software migrations are a people problem, treat them that way.

Communicate simply

Engineers aren’t always your target audience, and most times people aren’t interested in the bytes and bits that make up a project. Focus on the non-technical. Make it easy for them to understand. Seventh grade reading level or less. Repeat your message in every medium. Wash, rinse, repeat.

Little things matter

Whether you like Apple products or not, we can all agree their packaging is world class. They realize packaging is important as the initial touch point people have with a new Apple product, and they built something that not only works, but makes “unboxing” an experience. Before the iPhone, when you bought a new phone, it wasn’t even charged for use. Can you imagine charging your phone today before getting to actually use it? I can’t either.

Create experiences

People tend to think engineering is typically where we build something, solve a problem, or create a process. It’s also possible to create an experience along the way. The very best products and processes so comprehensively own their domain, that its hard to determine where things start and end.

Tell the story

Explaining a technology is rarely as exciting as the story behind what ability that technology provides. “Artificial intelligence” doesn’t have quite the ring that “talk to your phone and it automatically figures out what task you’re asking it to perform”.

10 Things I Learned in 2015 About Attempting Big Things

  1. Power of Vision. Arnold Schwarzenegger taught me, “The most important thing is to have a vision. You have to have a goal. I had the vision that I wanted to be the greatest bodybuilder of all time. Your goal doesn’t have to be the same that mine was, but the vision has to be there. That’s why I always recommend to people to sit down, take your time, and think about what you want.”

What does success look like? How do I get there? How do I stay motivated when times get tough? Vision drives all of these things, it removes doubt and question, it provides relentless motivation.

“That’s why I always smiled when I was in the gym, because I knew that with every rep that I did, every set that I did, with every weight that I that I lifted, I got one step closer to turning my vision into reality.”

Enjoying yourself as you work toward your vision is an essential part of success. Every little step should feel like a victory. Any PR, great set, pound lost, or new thing should be cause for celebration. If you’re not happy, then you can’t enjoy the progress.

Substitute anything for bodybuilding in Arnold’s story, and the reasoning always holds true. If you can’t see the vision, you won’t get there.

  1. Respect Pushing People - My job is in innovation, and almost every company today has a strong interest in being an innovative company. However, a part of innovation lies in what is not known today and in pushing people past their comfort zone. Push too hard, and doing so makes it more difficult the next time. Max out doing this too often, and pushing results in active push back. I might have a duty to push, but not everyone might like it, nor might every time be the right time to do so. I often remind myself it is not everyone’s job to be out on the edge of the known universe.

Also, sometimes the edge of the known universe can be a lonely place.

  1. Therefore, consult the three corners of workplace happiness a few times per year with the realization that you have to let go of one periodically. Those three things are: 1) To be challenged. 2) To learn. 3) and To own something.

I remembered late in the year that I am required to provide these opportunities to others as much as I might feel the need for them myself.

4.​ In that same vein, sometimes you need to do what the world needs, but sometimes ​what the world needs is for you to go and do what lights your soul on fire. Because seeing someone do something with a ton of enthusiasm is infectious and creates sparks in others.

Also, I noticed that people who do this are typically really good at that thing they are doing.​

  1. For technical picks, MongoDB really is the DB you should always start with. Always. Transactional DBs did nothing for me in 2015. Plus Mongo is cheap. Cheap. Fast. Reliable. You don’t have to pick just two.

  2. C# is still a workhorse​. It’s not sexy, it’s been around for a long time, but Microsoft keeps adding features. It now runs on OSX. Parts of it are OSS. The best IDE out there is free for all intensive purposes. You can do a lot worse than to pick .NET today.​

  3. That said, AWS Lambda is amazing. It is the infrastructure behind my beloved Amazon Echo, but I used it for plenty of other things, like S3 bucket processing, moving files around, and the like. You should endeavor to go to AWS Re:Invent next year, it is an amazing conference.

  4. I did some UI work in D3 early this year. It is wonderfully powerful and pretty straightforward for the simple stuff. ​

  5. Context switching still kills​. Avoid it at all costs. Observe that most people agree, but do not take active precautions to avoid. I’m a focuser when I need to get work done, and I found it often difficult in 2015 to get into a state of flow.

  6. Slack is the best app of 2015. The experience is the same, easy to use UX on any device. It seems to drive collaboration really well, and I actively used it to work asynchronously and effectively on a bunch of different projects. In many respects it went so far as to effectively replace texting on my phone. You should try it.

In the End

“Heart is a game changer in everything.”

I was referring to this post about how players with heart change a team, but I was thinking bigger, much bigger. So, who has heart? What is heart? What does it mean to “play with heart”?

Does it mean to be passionate about what you do?

Does it mean to be competent in what you do?

Does it mean to be the smartest player on the field?

Does it mean to learn something new and bring it back to the team?

Does it mean to try the hardest?

Playing with heart might be trying things others haven’t envisioned in order to solve a problem, push a new idea, or to just make things better. Heart is having the courage to try that which is truly hard and being comfortable with a possible failing outcome.

That doesn’t mean we have to like failure. That doesn’t mean we start out assuming anything but ultimate success. That doesn’t mean foregoing proper preparation. That doesn’t mean less than 100% effort.

Heart is no denying you gave it all. We can think you wrong, silly or nuts, but you played your heart out. You may have succeeded, you may have failed. Regardless, we salute you. You took it on, where others would not, could not, or should not have.

We see heart play out dramatically on the field of our favorite sports teams every week. Why do players that were once mediocre suddenly break out and change the entire game? Why does one player suddenly change the outlook of the entire team? Why does optimism spread to others?

We also see it play out in many other areas of our life: Life at home, our own personal ambitions, and yes, software development teams.

It seems to me that as we age, we steer away from risk, from new, from challenge. Browsing the web certainly turn up many examples of can’t, won’t and shouldn’t. These three tar pits of mediocrity leak out at every opportunity; and this just gets amplified by experience. We start to lean into an uninteresting and unhealthy balance of risk and reward as the years of experience stack up against us.

Think of a hard problem to solve, in any aspect of your life. Now think of how you might attack that issue. The test is how many people would say, “Awesome, go for it!” and how many would hand you a wouldn’t, couldn’t or shouldn’t as an out? Would you take that easy exit?

Ask yourself, how have you failed lately? What were people’s reactions at the start? What were they at the finish? Do we get a different reaction based on success or failure? Why is that?

Are there things you want to try but are afraid of? Did someone talk you out of something that you regretted not following through? Do you have the heart to attack those things that are important to you? To run up against those things that others will let slide? Will you regret it later if you do nothing now? Do you have a crazy dream that you are not following?

In the end, it’s all a question of heart. Heart changes the team for the better.