Tuesday, March 28, 2017

Professional bragging

No one likes a bragger. In the workplace, however, it is crucial to be able to articulate your value and successes in ways people can relate to and remember. This is what I call "professional bragging." When done well, it is one of the keys to being recognized and rewarded at work.

Learning to see your value
Many people I mentor fail to see the big picture of how their work creates value for the company, customers, or even themselves. Often times, they view success only as large project completions. While major launches are important, I also view success as all the smaller "wins" along the way, including process improvements, learning, cost savings, etc.

The key is being able to consistently assess your value through a broader lens; one in which others can understand, even outside of your immediate team. Some questions to help broaden your lens and identify value:

  • How does my work impact our company? Our customers?
  • What improvements have I made to our team? Myself? Our processes?
  • What positive feedback have I received? 
  • How have I grown in the past few weeks? Months?
  • Where have I been proactive?

Your list of wins
The questions above can help better identify your "wins." Even small wins are important because of the cumulative value they bring.

My suggestion is to write down your wins each week. Keeping an ongoing list is important for two reasons: 1) it's a great list of accomplishments which we can use as a basis for our future "professional bragging"; 2) it trains the brain into continuously seeing (and seeking) value in our work. At first it might not be easy to think of 1 or 2 things each week, but over time your lens expands and identifying wins comes more naturally.

Making it meaningful to others 
So now you have expanded your lens, and are documenting your wins -- great, time to "brag!"

Just like wins, professional bragging can come in all shapes and sizes. Identifying the appropriate opportunities (or timing), message, and audience is most crucial with professional bragging.

  • Opportunities: These are literally endless. It just takes some creativity and awareness to identify them. Some of them can fall in your lap: for example, your boss may ask you to present to senior management. Some may require you to seek out opportunities yourself: for example, requesting to post on your company's internal blog or intranet site. Forwarding an appreciation email to your boss is an (easy!) opportunity, or perhaps you can host a lunch-and-learn session to present new learnings and benefits. The list goes on...
  • Message and audience: Utilize your list of wins to help shape topics or ideas. Crafting a message which resonates with the audience is the most important aspect of professional bragging. The message must be one which answers the question for the audience: "Why is this important for me?" This means the focus should remain on value to them and your mutual interests. Answering this question when thinking of your message content can also help ensure your intended audience is appropriate. 
Professional bragging is a skill which takes time to develop. Be sure to continuously assess reactions and feedback to your messages. You will know you are doing well if others refer to them positively or unprovoked afterwards. Ultimately, this can significantly help your career progression, as you become more visible within the company, and synonymous with positive, valuable, and impactful work.

Saturday, March 18, 2017

Technical debt

There were times in college when I would not do laundry for weeks (gross, I know). Then finally I would have no choice but to spend an entire Sunday in the laundry room. I could not do any of the fun things I would normally associate with a Sunday, and I would kick myself for not doing it more regularly to make it less of a hassle.

That is exactly what it is like when software, systems, and tools are not upgraded, patched, or replaced on a regular basis. The time and money associated with these legacy systems piles up and contributes to your company's "technical debt." The longer it lingers, the harder technical debt is to clean up.

The perils of too much technical debt...

Preventing and eliminating technical debt
The best way to avoid technical debt is to have a continuous pulse on your systems and their health. This is everyone's job. Everyone must be aware of the risks and understand the impact of their technology's lifecycle. This requires the people most familiar (usually the most technical) to be able to articulate the need and value of an upgrade, for example, in ways senior management or product owners can understand. That is not always easy to do, so I recommend ways in which addressing technical debt becomes part of the process:
  1. Continuous improvement culture - A culture in which people are rewarded for making things better and always striving to improve is the single best way to minimize technical debt. When team members inherently feel motivated and empowered, technical debt goes down exponentially.
  2. Mandate open standards - Utilizing proprietary technologies can lock companies into vendors or tools for many years. This can be quite costly. Mandating the use of technologies which are built upon or use open standards is required to be nimble and relevant long term. Open standards prevent team members from re-inventing the wheel, help avoid vendor lock-in, improve agility and choice, and dramatically increase application portability and integration. These all in turn help minimize technical debt.
  3. Add a hardening sprint - If you are following Agile practices (and even if you are not), you can consider adding a hardening sprint to your schedule every quarter. So if you do 2-week sprints, the last 2 weeks of each quarter can be dedicated to working on stories related to reducing technical debt (or "hardening" the system). The beauty of this is it becomes part of the whole team's routine, and increases visibility to the importance and benefits of eliminating technical debt. It does still require those closest to the technologies to be proactive in identifying improvements and articulating the value to the product owner.
  4. Semi-dedicated Systems Team - Having a separate team of people dedicated to "owning" the architecture and maintaining system health sounds good on paper, but actually it leads to accountability problems. Instead, having everyone support what they build makes people think twice about cutting corners and throwing things "over the fence." As a result, I suggest having a group of senior technical folks dedicate 20-30% (not 100%) of their time to continuously improve and monitor system health. This does not mean that they do 100% of the work, but rather set the standards, goals, and requirements for the them and the rest of the team to do and follow. Some (or all) of the work done in a hardening sprint, for example, likely will be suggested by the Systems Team.
  5. Call for back-up - In many cases, legacy systems come with significant risks to the business, usually security-related. Leverage your friends in the security department to help you build a business case for making the necessary changes to your systems (or what might happen if the changes are not made). Be sure to also paint a positive picture of the business benefits to come in the future as a result.
  6. Governance - While my least favorite on the list, sometimes it does take some hard and fast governance rules to help prevent technical debt. Projects should not be approved which build upon legacy systems or have no clear plan for future upgrades.

Sunday, February 19, 2017

Customer reliability engineering

I was blown away when I spoke with Dave Rensin during my visit to the Google campus. He is Google's Director of Customer Reliability Engineering, and his views on customer support are world-class.

Dave's goal is to drive customer anxiety to zero; to remove the things that would cause customers to want to leave.

To do this, Dave's team has several principles they follow:
  1. Make sure your customer understands they are not alone. They need to feel a sense that "we are in this together" and you will stay with them until the problem is solved.
  2. Ensure customers never feel like they are talking in a vacuum. Never let the customer feel like you know more than you are telling them. Tell your customer all the details (without sensitive info, of course).
  3. Create a shared fate with your customers. Arbitraging issues with money (or credit) is not good enough. Dave's team reviews their customers' production systems and provide guidance on how to make it up to Google's standards. If the customer meets those standards, they will then identify when issues are caused by their customer's system, and proactively reach out with possible solutions (utilizing a shared dashboard both his team and the customer can see) -- and they do that for $0. This drives mutual accountability; truly being "in it together."
Dave goes into some details of the above in the video below. More details can be found in Dave's Google Blog post.


Sunday, January 8, 2017

Bet on machine learning

Companies like Google and Microsoft offer impressive machine learning capabilities in their public cloud products. This means artificial intelligence is significantly more accessible to any business than before.

How does it work?
At a high level, machine learning is a data analysis method which uses historical data, examples and experience to devise a model to automatically predict future outcomes (instead of hard-coded rules). The key is the "learning" part: the algorithm continues to evolve to make the predictions more accurate over time.


The traditional ways of machine learning involved more manual methods of developing models and algorithms. IBM's DeepBlue, for example, was programmed to learn to play chess in the 1990's (and beat the world champion). However, chess has a relatively small and finite set of moves per position (about 20) -- fairly easy to program a computer to learn through brute force.

Fast forward to 2016 and Google's DeepMind project AlphaGo. It utilizes sophisticated neural network algorithms, and was used to defeat the Go world champion. Go has about 200 moves per position, with more possible board configurations than there are atoms in the universe! This demonstrates the power of the neural network algorithm. Most importantly, it shows that general-purpose artificial intelligence can exist.

Neural networks mimic the learning process of the human brain. The AI from DeepMind uses a technique called Deep Reinforcement Learning. It learns from experience, using raw pixels as data input. AlphaGo was shown hundreds of thousands of Go games so it could learn from human players. Then Google had the AI play against itself 30 million times. Over time, it got better; to the point where one of the algorithms had an almost 90% win-rate against the other. That was the one selected.

Naturally, a human could never play 30 million Go games in their lifetime. The machine does not get tired, nor make emotional mistakes. The AI's experience becomes super-human, despite the fact it originally learned from humans.

Watch what happens when Google used the same algorithm to train the machine on the famous Atari game Breakout. The goal given to the machine was to maximize the score it could achieve in the shortest amount of time. At first, the AI is pretty terrible at the game. However, after about 2 hours of playing, it is very good. After 6 hours it does something amazing: it becomes super human.


Swiftkey, the makers of a keyboard app for mobile devices, nicely demonstrate how a neural network helps improve their word predictions.


Using ML in your organization
The ability to plug directly into some of Google's (and others' like Microsoft and Amazon) algorithms in the cloud make ML much more accessible. I am more familiar with Google's offerings, so will highlight a few:

Google's Cloud Vision API is image recognition in the cloud. It can detect what is occurring in images (including sentiment analysis of humans). A city in Canada trained Google's AI using thousands of school bus stop sign videos. The goal was to have the machine watch the videos and identify if a vehicle went passed the bus' stop sign illegally. The algorithm was trained to identify when the sign was out and active, and when vehicles had passed through it. It turned out to be 99% effective, while humans were only 83%. This resulted in increased revenue through traffic violation tickets.

Disney used Cloud Vision for their marketing campaign for the movie Pete's Dragon. The site set children on a hunt in their homes for common objects (like chair, door, tree, clouds, etc.). Once detected by the algorithm, Elliot the dragon would magically appear on the screen.


Google's natural language processing API is something which could be leveraged in the example given in my earlier blog post on data. By analyzing millions of public social media posts for certain sentiments and cues, the sales team can potentially land deeper leads.

Google also has a translation, audio-to-text, and even a new job search API.

Lastly, Google's open-source TensorFlow is a machine learning library for numerical computation using data flow graphs. Developers can use this to build models with very little code and eventually translate them into products in Google's cloud.

The future: humans + machines
I believe the businesses which adopt and master machine learning the best will be the most successful in the future, regardless of industry. (Of course, it helps to have a lot of data to train your model.)

While ML may eliminate some jobs, I feel it will be the successful partnership of humans and machines which will bring the most fruitful benefits. Take a radiologist, for example: she may leverage ML to assess her readings faster, but also provide additional oversight for deeper analysis. 

Ultimately, where the AI takes us is hard to predict, but the positive impact and advancements made will most certainly be exponential.

Monday, January 2, 2017

Boss vs. leader

I strive to be the best leader by emulating some of my favorite leaders. They tend to be the ones who put others' interests first, drive collaboration and teamwork, and promote and inspire a positive future.

The following two graphics demonstrate what I feel is the difference between being a "boss" and being a "leader."




I wrote earlier about the importance of being a great leader.