To get started, we want to share a bit about the software development team at HubTran. In particular, we want to talk about our core values and some practices that support our values.
Customer Aligned - Make a positive difference in our customers' lives.
Continuing Improvement - How can I get better? How can we get better?
Ownership - If you ran the company, what would you do? The world is full of tradeoffs. Are you making the right ones?
Productivity Focused - Set yourself up to contribute and deliver. Work hard while you are at work.
Putting Them In Practice
Values are nice, but it's putting them into practice that really matters. In this section, I describe my expectations and how they follow from our values.
HubTran exists to provide value to our customers. To do that, we need to make their lives easier and to let them get their work done quickly. As you do your job, keep in mind the impact it will have on our customers. How will what you are doing make their lives better? Keep in mind that slow performance or poor quality software adds frustration to their day. We can also brighten our customers' days when we interact with them via support. Are you polite and empathetic? Do you solve their problems quickly and correctly the first time? All of these things impact the value we provide our customers. Finally, being customer aligned doesn't mean doing exactly what our customers ask. It means solving the problems they have. Make sure you are picking the right solution, not just the easy solution.
- Do you know what our customers do? Spend time shadowing a customer. They've always been willing to teach us.
- Not sure how your change will impact a customer? Reach out and ask!
- Practice empathy. If you were getting this response from a support rep, how would it make you feel?
- Pop the why stack. Why are they asking for this? Why is this the solution? Make sure you get to the root of the issue, not the symptom.
We all want to get better, but are you doing the things to make that happen? This means being intentional about practice. You don't improve by going through the motions, you improve by pushing yourself and focusing on your work. Make sure you are setting aside time to learn new skills and improve existing skills. Don't be afraid to reach for something outside your comfort zone. Ask for help, but try to solve things on your own first. We don't program in a vacuum, so don't only focus on programming skills. Learn about business and transportation. Spend time learning about communication and psychology. Most of all, don't stop learning.
- Are you spending time learning? Carve out 30 to 60 minutes a day to improve.
- Pick something you want to learn, like chef, and pitch in making our setup better.
- Ask to shadow or pair with somebody on a task they are doing.
- Take a Coursera course that can reasonably apply to your job.
- Are you learning more than just programming? Ask for book recommendations.
- Want to work in a group? Ask others to take a class or be in a book club.
- Don't just go through the motions, make sure your learning is directed and intentional.
- Do more than write code, read code too. Read the libraries you're using and understand how they work. Review diffs and ask questions if things are confusing.
Life is full of tradeoffs. As you make them, consider the decisions you would make if you were the owner. After all, you are. In practice, that means don't spend time gilding the lily, but don't take lazy shortcuts either. Don't sit back and wait to be told exactly what to do. Be self directed and learn the domain so that you can make decisions. Be proactive about communicating both with our customers, your peers, and with management. If you see something that we can do better, let people know.
- Think about the value that incremental work provides. Is the two hour hack worth 90% of the two week perfect solution?
- Think about how you would explain your decision. Would you be excited to tell everyone what you did?
- Be proactive about communicating. Don't wait for somebody to ask for a status update, let people know when you hit a roadblock.
- When things change, re-evaluate your tradeoffs and assumptions. Maybe a feature was a great idea at 4 hours of work, but not 40. Don't be afraid to abandon a sunk cost.
At HubTran, our goal is to make our customers incredibly productive. We turn that same productivity focus on ourselves as well. That means doing the things to put yourself in a position to perform. Some things are simple and obvious, like showing up for work and limiting distractions. Others might be things you know about yourself, like taking little breaks during the day or getting in to work early when you work best. Whatever it is, make sure you're giving your all during the day. When you're done, do the things you enjoy to recharge to be ready to work again tomorrow.
- Use something like the pomodoro method to divide your day between focus and breaks.
- Save Slack, email and Twitter for breaks.
- Is Slack distracting? turn off notifications except for mentions. Let people know when you are focusing.
- Be present during the work day. Don't fill your day with constant context switches. It's great to be able to run an errand during the day, but group them together.
- Get your hours in. 40 hours on average excluding lunch and other distractions.
- Make sure you are doing valuable work during your day. Time spent learning and coding is value. Is tweaking your environment valuable enough that you would want to share it with the team?
- We're flexible, but be considerate. Try to have a consistent schedule and let us know if things change.
None of these are rules. After all, you're a professional. You know what you need to do. So let's work together to get it done.