Skip to main content

Are you in Software Design or IT?


Different engineers have different calling, some create mass-market products and some create local solutions.  There is a problem when you use the wrong personality for a wrong project.  More specifically if you apply “solution mindset” to a product problem you end up getting crap.

I love opening up Apple packages.  Over the years I’ve been spoiled by Steve Jobs’s drive to deliver amazing out of box experience and intuitive interfaces.  I open up the box, the device is most likely going to be charged and within minutes will start making my life better and more fun.

I also like putting stuff together.  I learn new computer languages, model airplanes, do-it-yourself electronics kits.  It’s really awesome to pick up a new language, start playing around with tools and let my creative side go nuts.

My suspicion is that I am not alone.  Most of the people have two modes – have fun because things are intuitive and easy, and have fun because things are flexible and powerful.

In my engineering and design I have always tried to be mindful of those two sides.  Things have to be fun because they are intuitive or they have to be fun because they are powerful.   Creating the right products and the right designs is what gives someone a title of “Software Design Engineer” (feel free to add whatever hierarchy prefix you want – director/manager/VP).  Software Design Engineers create mass market products and platforms.

There is also another type of engineer out there.  This type of engineer is more responsive, more accessible and is good at putting together solutions. This engineer is no more or less important than the software design engineer but his tasks are about a deep dive into a particular problem and coming up with a solution.  The solution engineer shines in IT.  You love having those guys that put together products, processes and make the Legos fit together.

The danger lies when you get the “solution guys” into the product business.  What happens is they start solving every customer’s problem with adding small features that address every single edge case.  The solution guys want to make sure that they solve a particular problem and the product starts having a bunch of different personalities.  Those personalities start growing without any rhyme or reason and sooner or later you get a monster with a bunch of heads.  The new customers are intimidated and their experience sucks.

Thankfully with modern software you can address this issue.   In todays applications you can create easy and intuitive user experience and then supplement it with a powerful API.  This is the best of both worlds design.  It gives people what they want without creating a monster.

Your Enterprise customers are probably going to complain – “but why don’t you put a button in your software that solves a problem for my department of 50 sales reps” The answer is to challenge this request and figure out if that same button can be useful to 5,000,000 sales reps.  Don’t let your product lose it’s personality and let the solution engineers take your API and solve the edge cases.
Post a Comment

Popular posts from this blog

SDET / QA Engineer Interview Checklist

After interviewing and hiring hundreds of engineers over the past 12+  years I have come up with a few checklists.  I wanted to share one of those with you so you could conduct comprehensive interviews of QA Engineers for your team.

I use this checklist when I review incoming resumes and during the interview.  It keeps me from missing areas that ensure a good team and technology fit.  I hope you make good use of them.  If you think there are good questions or topics that I have missed - get in touch with me!


SDE/T or QA Engineer interview checklist from Mike Borozdin
If you like this checklist you might want to check out these posts:
Emotional Intelligence in Software Teams  and Good-bye manual tester, hello crowdsourcing!

Highly Effective Software Teams

A few weeks ago our Board of Directors asked me to present my assessment of the state of software.
 I was hired to organize and grow the software team and the directors wanted to know what kind of a team we needed to build.  I was hoping that I can just reference an article somewhere that would give me the answer, unfortunately I didn’t find anything suitable. During my research I did find some great material that will be helpful if your job is to put together a highly effective software team.
A highly effective software team has the following key characteristics: dependable, committed to shared goals, passionate about technology, respectful and compassionate.  These are not limited to technology industry, it can easily apply to finance, medicine, or sports as well.  Below is the summary and references that I found. Dependable If you are creating a software product, you need to deliver your software to your users.  Your users need to know that you are able to solve their problems on …

There are Only Two Ways to Treat Your Team

There are only two ways to treat your team: take care of them or let them go.  Early in my management career there have been times when someone has been underperforming on the team.  Before I knew better I let my emotions get the best of me: I’d give them the cold shoulder, avoid including them in conversations and look like I was upset with them. Thankfully with some good mentorship I came up with a simple rule: we are helping each other or you are off the team.

One of the biggest mistakes that folks make a lot of times is letting people linger on for too long.  Hiring good engineers is hard and getting new folks up to speed is hard.  You feel like you are going to miss your product delivery plan if you let someone go.

Letting folks linger when you are unhappy with each other creates a toxic environment.  This toxic environment is generally contagious and brings the entire organization down.  Of course you can’t have a constant state of euphoria on your team, but if a productive and…