How to fire a Software Engineer

By far the hardest thing you will do as a manager is fire someone.  But you will need to do it.  There is no way around it.  If you want to be a manager, this is just part of the job.

I’ve discovered there are right and wrong ways to execute this.  I’m hoping some of the tips below help make the best of this difficult situation.

Continue reading “How to fire a Software Engineer”

Top 5 Books for New Software Managers

Just made the switch from dev to team lead or manager?  Below are my top 5 favorite books that will give you a jump start on the management track.  You’ll find that these books are constantly referenced by other managers.  They vary from business strategy, process, to general leadership skills.

Here are my Top 5:

  The First 90 Days – by Michael Watkins

download

This book is all about transitions.  Whether you are just starting out at a new company, or are moving into a different group/position within the same company, this book is a classic that will walk you through proven strategies to ensure a successful transition.  This book claims (and I totally agree) that the first 90 days set the tone for your entire career, and getting off to the right start is critical to success.  I find myself frequently referencing this book for tips on handling various mgmt situations.  The section on diagnosing your current situation alone is priceless.

 

The Innovator’s Dilemma – by Clayton M. Christensen

download (1)

If you haven’t read this book yet, buy it right now!  It’s a classic that managers love to reference in as many meeting as possible to sound smart.  This book coined the term ‘disruptive innovation’.  Basically, the ‘dilemma’ is that as companies try to do all the right things they end up getting screwed by more nimble startups.  Solution?  Build a startup within your startup.  This book provides a great framework for analyzing innovations in an organization, which can be beneficial to understanding your own business’s product strategy.

 

The Lean Startup – by Eric Ries

download (2)

The most recent book on my list, and this one already feels like a timeless classic.  This book takes the principles of Lean Manufacturing (check out The Toyota Way, by Jeffrey Liker)  and applies them to software product development.  Terms like ‘pivoting’ your organization and ‘minimal viable product’ were coined by Eric Ries.  I’ve found that MVP gets thrown around the office way too much, mainly as an excuse to create a shitty product.  It’s better to read the message from the horses mouth.  It’s all about reducing the time to getting actual customer feedback and create the ‘build, measure, learn’ cycle.  There are a good number of youtube talks with Eric Ries available.  Also, check out the lean startup site here (http://theleanstartup.com/principles) for some more info.

 

Crossing the Chasm – by Geoffrey A. Moore

download (3)

Crossing the Chasm is a marketing book.  It’s all about the technology adoption lifecycle, the various personas at each stage, and how to market to them.  Terms like ‘early adopters’ and ‘laggards’ that are frequently thrown around the office were coined in this book.




 

How to Win Friends and Influence People – by Dale Carnegie

download (4)

 

I was initially turned off by the title of this book.  At first I thought it was a book about how to manipulate people.  In fact, this is a book about human psychology.  As a new leader, it’s critical for you to learn the skill of influencing others.  Influence is not the same thing as manipulation, though it can seem to be a fine line at times.  Basically, you need to learn the skill of understanding others points of view, and how to communicate effectively with various personalities.

 

These are my top 5 must reads for all new managers.  What other books do you recommend?

Monitoring Tools for Cloud Applications

There are a million tools out there for monitoring cloud applications.  The following is a list of the tools my current company has selected to monitor all levels of our stack.  Overall we are very happy with this suite.  Please post in the comments if you can recommend others!

Machine Level

Nagios – Nagios is used to monitor your IT infrastructure.  This tool will generate alerts (via email, text, etc.) when your CPU, threads, disk space, etc. exceeds a given threshold.  The great thing about nagios is that it’s completely free!

Logging

Papertrail – Papertrail is a log aggregator and search tool.  Like most applications, our system runs across a wide variety of EC2 instances on AWS, across many different deployment environments.  Papertrail is great because it aggregates all your logs together in one place.  No need to figure out which machine your user is on, ssh into it, etc.  Just use the web search on papertrail and then easily drill down into your logs.  Well worth the money!

Exceptions

Sentry – Sentry is a great tool that will parse your system logs and aggregate exception errors.  It will create a nice dashboard of all of your system exceptions, group similar ones together.  It allows you to track who is looking into the exceptions, assign them to developers, and even export them to JIRA.  Overall it’s just a great way to give visibility to the system exceptions without having to go through your logs manually.




Performance

New Relic – New Relic is a beast.  They have been rolling out tool after tool.  The one we use most is APM (Application Performance Monitoring), which gives you alerting on system errors and performance bottlenecks.  It provides a great way to drill down into your most time consuming transactions and help guide refactoring.  They provide a host of other tools but we don’t use them that often.

API

Runscope – Runscope is frekkin awesome!  It provides an easy way to create tests that validate REST API’s.  We’ve found this tool to be key for all integration points across our organization.  If a team provides a service that others can take a dependency on, we ensure that a runscope test is in place.  If the API is ever broken, everyone will know immediately.  The tests can be run globally, and there is also some performance monitoring included as well.

 

I know I’m probably missing a bunch of tools, but these are the ones we currently use, and they seem to cover all the bases.  Also, check out my other article “When your production system goes down”, for my personal strategy for handling prod issues, when the alarms do start ringing!

Please comment and tell me what tools you like to use?