There is no shortage of to-dos at a startup. On these small and scrappy teams, you’re often wearing multiple hats.
In this fast-paced environment, how can you make the most of your limited time?
We sought to learn from software developers who have spent their careers working in the startup world and asked: What are some time management tips you’d give to software engineers working in the startup space?
We combined their valuable advice into the following tips on becoming more efficient and making the most of your time and how to set the right goals and priorities.
Here are 10 of the most effective time management tips for engineers (especially if you work on a small startup team!):
- Don’t Burn Yourself Out.
This tip is arguably the most important one.
You work at a startup, which means things move fast. The work you’re doing is often exciting and important, so you may find yourself wanting to spend all of your time on it.
To succeed, though, you have to take time away from work to prioritize family, friends, and your overall health. Except for short periods of time, pulling long hours results in a recipe for long-term burnout. There will be long days, but don’t grind 24/7. Set explicit boundaries about your time and availability. Your peers and boss are not going to be cognizant of your workload or time commitments. Frankly, they shouldn’t have to be. You need to be clear:
- About when you start and stop work
- If you’re working weekends (you shouldn’t do that for long)
- If you can’t work at certain times.
Good managers and founders know that technologists who are mentally and physically able to take care of themselves build better systems and stay onboard for longer.
- Embrace Continuous Learning.
While you may be an expert in a certain technology, working on a small startup team means you may have to take additional responsibilities for a while, or your job role might even change. To keep up with the company’s growth, it’s key to embrace lifelong learning and continually increase your knowledge, skills, and competencies.
As you approach learning new tech stacks and languages, just remember that no technology is magical, and you can learn anything if you give it enough time. Make sure your managers and founders are allowing you space and time to become proficient in the technologies you are using to build your new great thing. It’s a huge ROI for them, for the systems you build (which will be more scalable and stable), and for you.
- Spend time with the customer.
It can be super helpful to join sales calls and spend time hearing from the customers, especially at a startup.
It allows you to have internal empathy for what the customers are facing, which means you know how to prioritize tasks and manage time based on the customers’ needs.
At a small company, you don’t necessarily have a product manager pointing you in the right direction. Or if there is a PM, they may just be very busy. In that case, developing customer empathy will allow you to prioritize your time well.
Getting that user feedback allows you to stop second guessing what is needed.
- Use The Pomodoro Technique.
If you find yourself getting burnt out in a day, the Pomodoro Technique is a great way to separate work into manageable chunks and make sure you’re taking enough breaks.
Here’s how it works.
- Get a to-do list and a timer.
- Set your timer for 25 minutes and focus on a single task until the timer rings.
- When your session ends, mark off one pomodoro and record what you completed.
- Enjoy a five-minute break.
- After four pomodoros, take a longer, more restorative 15-30 minute break.
These breaks are a great time to do something non-work related. Your brain will be thinking about the problem in the background and you’ll think of new ideas. Keep a checklist of the most important things to do so you can make sure you’re making progress in the right areas.
- Do not ship software that isn’t tested.
Writing tests should make you go faster and it should keep you from having to fix problems later. When something is “done” but then has bugs you need to fix, it means it wasn’t really completed and now you are going to move slower as you juggle new work while fixing the old bugs.
If you need to move quickly, it can often be better to cut scope, instead of corners. That means if you need to get something up quickly, instead of skipping tests and shipping something that wasn’t built well, find a partial solution that is well built and tested. Ship that, then ship the rest later.
For example, suppose your company wants to start reminding customers that they have an appointment by SMS, using email as a fallback if they have no mobile number. If you choose to quickly build with no tests, then you have all the risks that could become a huge drag on productivity at a later point. As an alternative, you could first ship a version that only uses emails for the reminder. Since that’s less scope, you could test more easily and get it going quickly. After that, you could add SMS, or maybe not, if you discover it isn’t necessary!
If you do end up needing to add SMS, you have a solid, tested base for notifications you can add to, which will make the SMS part easier to add and reduce the risk for bugs and bad data. That is less scope, so you could test it more easily and get it going sooner.
- Block out time on your calendar for a task.
This could look like creating a calendar invite for yourself or updating your Slack status to something like: “:headphones: I’m heads-down coding and won’t respond for the next hour or two”
This is especially helpful for complex tasks or tasks that you don’t want to do. By blocking off the time on your calendar to be fully devoted to the task, you’ll be able to stay focused. No meetings, no food breaks, just get the work done.
By setting up the status, it also enables you to defend your time from interruptions because you’re letting others know that you’re busy and need to be left alone in order to focus.
- Automate your tests and deployments.
This has saved many an engineer. Some argue that everything should be automated, while others think that would be a waste of time, and lead to writing code that isn’t valuable. You’ll have to use your judgement on when and what to automate.
When it does come time to automate, here are some simple steps to go through for every task:
- Do it manually.
- Document it (write down what you’re going to do).
- Write a script for it.
- Incorporate it into the project to make it self-serve.
Each of these steps require more and more software development time, but less time to get the process done once you’ve automated.
- Communicate roadblocks.
Engineers often end up sitting on issues or trying to resolve them alone. If you get stuck, try to communicate that to your team as soon as possible to avoid wasting time.
Work on estimating your tasks as accurately as possible. Do your best to define the scope of your given tasks by sizing the Stories, Epics, and Bugs you’re working on. This will allow the team to plan ahead and know what timeframe you’re working on.
If you get stuck on something, raise that up so others know that the timeframe might be slower than expected. A lot of time can be wasted if the team doesn’t know that you have a different timeline, so it’s important to communicate these updates as early and frequently as possible.
- “Time Box” any unknown actions.
This is a favorite practice for engineers for several reasons. It’s a good way to not get stuck on something for too long without getting the necessary support. It also helps you stay on track instead of going down a rabbit hole.
Start by establishing a set amount of time that you’ll spend on a certain task on your own. During that time, stay focused and do everything you can to work on it. If you aren’t able to make progress or accomplish your goal in that time, then reach out for help.
This method can be especially helpful when you don’t know how long it will take to familiarize yourself with a new technology your team is starting to use. It’s also helpful when diving into tasks that are unfamiliar.
- Learn when to say no.
The last piece of advice we’ll leave is to learn when to say no. Sometimes engineers and software developers can have a superhero complex. This can be both helpful and harmful at the same time. It’s important to build a practice of knowing when to say yes to something and when to say no (or not now). That way, you’re free to focus on the biggest priorities.
It is also key that your startup’s management values the engineering team’s time and tries to shield from interruptions.
Even if you are great at coding, producing anything substantial requires time. But having time on your hands isn’t easy to come by in a fast-paced startup. Instead, you have to ensure your available time is completely productive.
We hope these tips will help you work more efficiently and prioritize the most important aspects of your work.
If it’s daunting to start using all of them, begin by incorporating just a few of the above tips into your daily routine. Test out which ones are most helpful and then go from there!