Software, Team and Strategy

Mike Borozdin - Kubernetes @ Google. Previously: Dir of Eng @ DocuSign, Lead @ Microsoft. I help companies focus and engineers grow.

Tuesday, May 27, 2014

Don't Hate on Startup Code

I was sitting in the cafeteria having lunch with some new engineers and the conversation somehow found its way to bashing a legacy part of the system. One of the engineers said:
“I can’t believe they put these blobs in the database, that’s so dumb.” 
Many engineers, who join a company once it has already grown substantially, don’t have much experience in early-stage startup culture and subsequently love to hate on the architectural decisions made in the early days. This behavior really gets under my skin. As a person who started when the company was less than 25 people and now has grown to more than 1000 employees, I’ve come across these conversations a few times.

Of course there are many hacks and bugs that linger while a startup team builds their rapidly growing system, but it’s challenging for people who arrive later in the development process to appreciate how the process of conceptualizing and constructing an entirely new product unfolds.  Here are a few things to keep in perspective when you are reviewing an existing system:

Direction reveals itself. When a minimum viable product (MVP) is first delivered to your beachhead customers, you have very little idea about the direction the product will go in. Of course you have a broad vision, like “this will enable paperless workflow” or “this will allow instant communication”, but the details and the scale are largely unknown. After getting a dozen customers up and running with your software, you begin realizing that your customers might actually want to take your MVP in a different direction than what you originally thought.

Revision is inevitable. At one point, at DocuSign, I remember we sized up the documents that were being sent through our system and most of the documents people were working with were 300-700KB. There were only occasional outliers of a few megabytes. Then one of the customers was sending in scanned mortgage documents that were close to 50MB! We had to rework our storage and introduce asynchronous operations because some requests became way too big.

Demand can surprise you. Some parts of the system that we thought were going to scale never did so someone might consider them “over architected” and others that we thought would be barely used became extremely popular. Initially when we introduced the ability to brand your signing experience we only thought that large Fortune 500 companies would use the feature and we had a manual process of uploading CSS files to specific accounts to accommodate that. After the word got out that we had the capability, hundreds of companies wanted to brand their e-mails and the signing experience. The manual process with a bunch of customer CSS files became unmanageable and we had to create an easier way. We also had to migrate all the previous customers to the new system.

Adaptability precedes success. When you are starting a new product you are operating in unknown territory.  In order to grow and scale, you need to listen to what your customers want and sometimes it’s totally different from your original design. It’s a lot better to be flexible and successful, rather than rigid and unsuccessful.  For people who join the startup team later remember this: what got us here, was not a straight path and because we were able to pivot you now have a great job.

Labels: , , , ,

Wednesday, May 07, 2014

Emotional Intelligence in Software Teams

I generally get questions about API design, platform marketing and software management, but recently
I was asked something a bit different: “Which emotional intelligence traits do you value in your co-workers?” Good question!

In order to explain my perspective, I should first clarify the type of office environment I value. I work because I want to be in an exciting space; I want to be the best at what I'm doing, and run a team that’s committed to success. For these criteria to align, I need to work at a company that employs smart people with high intelligence quotients (IQs) in their respective areas of expertise.

However, even on software teams equipped with high IQs, having even one member with a low emotional intelligence quotient (EQ) can interfere with the entire team's ability to achieve project goals. Here are the top EQ traits I value on my teams:

1. Control your emotions. Nothing gets in the way of productivity more than someone “losing it” by getting overly caught up in their emotional reactions to a situation. If someone throws a chair across the office, the physical mess is a lot easier to clean up than the emotional one. What will frustrate me more than the act itself is if the entire company starts talking about it for a week, then my co-workers shift their focus off the projects that can further our shared goals.

2. Understand the perspectives of others. In sales, you need to empathize with your buyer if you want to turn them into a champion. In customer support, you need to understand that complaining customers are frustrated because they are experiencing difficulty using your product. In a meeting, you need to appreciate the variety of differing opinions and backgrounds of your colleagues in the room. Embracing these perspectives with openness and curiosity allows a team to collaborate creatively and uncover potential opportunities.

3. Be positive. Nothing was ever created by people who said "No" to work. "No" is a sure way to get nothing done. A “can-do” attitude enables people to explore and invent. It also comes in handy as a reminder to keep going when the going gets tough. Colleagues with this outlook exude positive energy that spreads to other team members and unites everyone around the excitement and attainability of the goal. This approach attracts positivity from others both within and outside of the company.

4. Share. Successful companies know how to share. Leaders who know how to “grow the pie” are the ones who attract and retain the best talent. Growing opportunity and sharing it is a way to build a bigger team with more talented people. A bigger team with more talent wins.

Screening for these EQ traits in an interview can be challenging, but it’s very much worth it! Surrounding yourself with people who have high EQs will make for a better journey and a better destination.

Labels: , , ,