5 Habits of Hyper-Productive Developers
The Alpha Engineer rules Silicon Valley and all great technology ecosystems. He is tough to find, a genius in thought and a workhorse in productivity. He is worth 100 or more mediocre or lower-skilled engineers. Product managers are lucky to work with just one in their career.
Elite software companies know the value of having an Alpha Engineer. His work ethic and ability to ship quality code quickly drives product breakthroughs and true thought leadership in market.
As the product czar, and product manager, you might be thinking that your competition is moving faster and you need to double the size of your development team just to keep up. Before you spend millions of dollars solving your problem with more people, I would encourage you to make sure you are getting the most out of the team you already have.
Our development team at Aha! is not only talented, but also incredibly productive, helping to serve more than 10,000 users with a variety of product development use cases. These developers are fundamental to efficiently growing our business.
So far in 2015 our engineering team has managed to ship 13 new releases and six third-party integrations. So, how do they manage to get so much done as a team?
Over the years, my good friend, co-founder, and CTO, Dr. Chris Waters, has introduced me to some key concepts about the way development teams should work. We apply these principles every day to our business, so we know they are effective. Our founding team has also run product and engineering in six software companies, so we have plenty of experience at this point.
These important tips can transform the way your engineering teams work, increasing your overall output so you can build what matters.
Prioritize and prioritize again Many teams waste a lot of their time solving the wrong problems. Keep asking yourself if you are solving the right problem, and if it is the right problem to solve right now. The answers will help your team stay on track.
Do things manually until you break I see a lot of other people advocating automation, but I disagree. Not everything needs to be automated. It is often more efficient to do the simple, manual thing rather than trying to script everything. If you try to automate everything, before you know it, you will be deep in a problem trying to debug your script, rather than solving that top-priority problem.
Separate creative work from the tedious work There may be times of the day when you are naturally more productive. Think about the types of work you have to complete. Do the creative problem-solving work while you are fresh and save the tedious work for later on, when you are lagging (like after lunch). By staggering the types of work you complete throughout the day, you can use more of your time productively.
Take on just one project Constantly switching your context to side projects takes a lot of mental energy. You will be much more productive if one main project gets your attention. Starting with a goal-first mindset separates great developers and companies from their competitors and can lead to disruptive innovation. When you focus intensely on one project, great ideas can happen.
Implement iteratively Make your code do something useful right from the beginning. The sooner you start using the code integrated into the overall environment, the sooner you will realize when you are solving the wrong problem.
Over the years, we have learned from getting many things right and some things wrong. We have found that this approach works best for us.
I will not go so far as to promise that your team will immediately be the strongest if you start applying these principles to your work. But over time, your team may begin to surprise you with how brilliant and productive they can actually be.
What else do hyper-productive developers do?