Time Minimalism

We are constantly being bombarded with notifications, alerts, feeds, and messages. I have 43 apps installed on my phone. Each one of them has the ability to send a push notification. The average iPhone owner in the United States has 32 apps installed. South Koreans have 40!

I am exhausted (and so are you)

This past Friday (4/7/2017) I received 256 emails. If I spend an average of 1 minute per email I spent around 4 hours of focus on email.

We use Slack at Voray. We have 14 active users, and a handful of helpful bots. On Friday (4/7/2017) we (as a team of humans) sent 684 messages. Over the same time our bots sent 121 messages. A very high percentage of our messages are important, and need some attention. If I spent an average of 15 seconds of focus on each message I spent 3.5 hours of focus on Slack.

I spent 7.5 hours of focus on email and Slack!

Focus is finite (so is time)

On average my brain works a 7.5 hour day before even having a chance to do my actual job. Assuming you aren’t in Limitless you have a finite amount of focus per day. Tim Ferriss says it is 4 hours a week. I think I can do 6 hours of deep work per day.

Just email and Slack cause me to start my workday with a negative balance on focus. I have to generate an extra 1.5 hours of focus (coffee?) per day!

How am I supposed to focus on the hard problems?

Engagement is a naughty word

Ironically we have a metric that we use to track how much focus we are stealing from something else: engagement. Every day something new will come along to take your focus! Read the Snap S-1…

Here are thoughts on breaking the cycle:

  • Turn off email push. Do you really need email to be real-time? Check your email on your own schedule
  • Setup VIPs! This allows me to be notified when my boss (hi David!) emails me and when my family messages me
  • Unsubscribe from all emails that aren’t transactional. All of those marketing emails are designed to take your focus away from whatever you should be doing. Make your email work for you
  • Turn off push notifications for iMessage / Slack / Messenger / Hangouts / VRBO / WhatsApp. Check them when you want to give it your focus not when it wants it
  • Do you need a notification for every Slack message? Can you leverage the “Unread Messages” functionality on your own schedule? Slack is an important communication tool when it is working for you
  • Leverage “Do Not Disturb”-modes. Set boundaries on when and how you want to be notified
  • Use RSS/Atom to ingest information when you want to spend the time on it
  • Read Essentialism: The Disciplined Pursuit of Less and apply it to your time. Remember that there are only so many hours a day, days a week, weeks a year, and years in a life
  • Always remember that we are designing software to keep people engaged. I am hoping you focus on this blog post instead of on something else

Arbitrary Constraints Power Creative Problem Solving

Google Ventures does a lot of research on sprints. What they don’t say directly is that a sprint is a tightly constrained by time. In five days you have to decide, build, test, and iterate a new idea.

After building software for nearly ten years, I’ve come to the realization that the thing that drives both my ability to deliver software is being constrained. As soon as I believe that I have “free time” and can still be successful I tend to find failure. I run my team in one week sprints to focus on what we need to do in simple, themed five day bundles of work (sprint).

Gone are the days of waterfall and with that deadlines in the far future. Some Agile pundits believe that deadlines are bad. I actually disagree. I agree that deadlines six months away are bad but a deadline in five days is powerful. You can feel the constraint of time. Five days away is on the horizon, you can mentally grasp a weeks worth of work. You cannot grasp twenty four weeks of work. Can you wrap your mind around planning a dinner out in a few days? How about planning one in a few months? You will immediately start thinking about solutions to this weeks deadline, but you’ll naturally tend to put off the deadline months away. This is the true power of constraining yourself, and your teams.

Don’t be cheap

Cheapness is natural when thinking about constraining. We can shave off this work, and that work because it doesn’t fit the model. I am not suggesting you skip the hard stuff because it doesn’t fit in to your environment. Do the tough stuff but break it up into consumable chunks of time. As an example, we are rebuilding our permissions system. We are moving from a RDBMS to a graph. We spent a one week sprint on choosing what graph store to use, one week on building a proof of concept, and will now spend one week on taking that PoC turning it into an MVP we can test with a subset of our users. Hopefully after a week of testing, and monitoring we will release it to our entire customer base. The entire project took five weeks but we broke it up into sprints to constrain us. We were able to take a fairly complicated piece of work, break it down into week long challenges, and are tackling each. We are forced to attack each bit with our best creative problem solving skills.

You will need to have clearly defined success, and failure metrics. Find what is important, and what you think is realistic. Trust the people around you to take ownership of getting across the finish line. Perhaps if you can’t decide on the storage engine after a full week of work you are solving the wrong problem. This will all depend on your team, and its makeup.

Read the book by GV on Sprints. It will help you think about your team’s cadence and how you can be more consistent. It’ll also help you decentralize the problem solving. Everyone will feel like an integral part of the successes and failures. They will clearly understand the problem before them — one week instead of twenty four weeks!

Are You Managing Your Manager?

This post originally appeared on FirstMark Community.


Insights from FirstMark’s Code Driven series, a monthly event for developers to learn and get inspired.

Are you doing a good job managing your manager?

Duncan Grazier, ShopKeep’s VP of Engineering, has a simple formula that can empower engineers to get the most out of their managers, and to ultimately take charge of the direction of their careers. In fact, the formula — — shared at FirstMark’sCode Driven NYC — has the potential to unlock personal and professional growth for anyone with professional ambitions.

There is a virtually endless library of business writing dedicated to being a good manager, from classics like High Output Management or The Goal, to newer managerial approaches like radical candor. But this advice does little to empower employees to take charge of their own careers. Grazier’s formula turns professional development on its head: how can employees draw great management out of their managers?

The idea holds enormous promise, whether you’re currently working under a terrible manager or a great one. Drawing from his experience managing engineers, Grazier’s formula consists of four simple steps, succinctly summarized as dreams, alignment, goal-setting, and feedback.

Step 1. Dreams: Know What You Want

“Cat: Where are you going?
Alice: Which way should I go?
Cat: That depends on where you are going.
Alice: I don’t know.
Cat: Then it doesn’t matter which way you go.”

Lewis Carroll, Alice in Wonderland

First, you have to know what success means to you. What are you working toward? Do you want to become a CTO? Start your own company? Or, are you happiest as an individual contributor? Do you want to write a book on software development? Become a widely recognized thought leader? What do you want to be when you grow up?

Countless employees clock in every day without having any long-term career objective. Others may have blind ambition to “advance” their careers, without any specific achievable outcome. Both of these scenarios leave you and your manager unable to make progress, because there is no specific end state you are working toward.

With a specific dream in mind, you can approach every day like it’s one more step on a longer journey. Without direction, you may still “advance” in one sense of the word — but, like Alice, it doesn’t matter which way you go if you don’t know where you’re going.

Step 2. Alignment: Make Sure You and Your Boss Want the Same Things

The next step is to figure out how your dreams align with your manager’s and your company’s priorities.

What’s critical is not simply to know what you want. It’s equally important to know what motivates your manager, as well as your company. Because the success of this formula hinges entirely on figuring out how getting what you want also enables your manager and your company to get what they want.

If your ambition is to become a VP of Engineering or CTO, there are countless ways you can take steps toward this objective while simultaneously supporting the growth of your manager and your company. For example, you can seek out opportunities to mentor new or junior team members, who will benefit substantially from guidance from an experienced hand. This gives you the opportunity to practice doing what managers do (providing mentorship), and prove to others that you are adept at it. It also makes your manager’s other reports more effective (an outcome aligned with her interests) and your entire company stronger.

So, the crux of step two is to have a candid discussion with your manager about how your dreams align with your manager’s and your company’s goal. Make sure she understands what you want to accomplish and how you intend to get there. But do so in a way that emphasizes areas of overlap between your interests and the organization’s. From there, you can work together to figure out what specific areas of focus — the heart of step three — are aligned with the objectives of everystakeholder.

Step 3. Goals: Agree on Specific Objectives to Get from Here to There

Grazier believes goals are the single most important tool you have as an employee to become successful. (He also believes it’s the single most valuable tool in the manager’s toolkit, as well.)

Goals provide a framework that enable you to be extremely deliberate about your day-to-day focus. They help dictate what tasks you focus on, encouraging actions that carry you and your organization toward your shared objectives.

One common symptom of a broken goal-setting process: engineers who feel like their only job is to write heaps upon heaps of code. Without more specific guidance, ambitious engineers can only ramp up output in an effort to stand out. For engineers, writing code is the main focus of your full-time job, but it’s likely not the only part of your job. And it’s almost certainly not the only thing you should be doing to achieve your professional ambitions.

So, if you don’t have them already, demand goals from your manager. With the alignment you’ve established in step two, it should be straightforward to set specific goals that meet everyone’s objectives.

Goal-setting is a topic that has been covered at length in business literature. In short, though, Grazier believes there are just a few simple principles that govern great goals:

  • Goals should be set at both micro and macro levels. Most often, this means setting time-bound goals with different cadences: weekly or monthly objectives (“ship feature X”), paired with broader long-term goals (“four mentorship sessions with three employees over the next year.”).
  • Goals must be measurable. If goals are not quantifiable, whether you’ve met them — or not — becomes a subjective question. Goals should be time-bound, and have an objective and quantifiable binary outcome.
  • Goals should be challenging. The purpose of the goal-setting process is not to “lower the bar and step over it.” Nor is it about setting impossible-to-accomplish targets. It’s about finding a happy medium that is achievable when you stretch to do your best possible work.

For more information about effective goal-setting, you can read up on SMART goals, or any number of other resources.

Step 4. Feedback: Make Sure Your Manager is a Mentor

The final and most important piece of the puzzle is regular feedback. Grazier is adamant that engineers demand it if they aren’t getting it. Feedback could come in the form of a weekly or bi-weekly one-on-one meeting. It could even be an email- or Slack-based check-in. The format isn’t important; what matters is that it happens.

Feedback sessions should include a systematic review of progress against your goals. The check-ins give you the opportunity to be honest with yourself about where you stand within the organization, and whether you’re making steady progress against the goals you’ve set in step three (and, by extension, your ultimate ambitions set in step one).

A candid review of your goals naturally segues into a conversation about ways your manager can help. Are there organizational roadblocks that need to be removed? Do you need resources that you don’t already have? There’s certainly somethingyour manager can be doing to help that she is not doing already. And, because your goals are aligned with your manager’s goals, it will be in everyone’s interest to make sure those things happen.

A final important note about getting the most out of your manager — you have to be willing and ready to learn from your manager. As Grazier says, “They have probably done your role. They have probably been in your shoes. Maybe they have some really interesting insights into what you’re doing. But, look to them as mentors. Don’t look to them as ‘Oh, that’s just my boss. He’ll decide my bonus.’ Sure, that’s true. But they have more experience than you, likely. They have good insights into what you can be doing better.”

Regular and candid feedback is what keeps this entire process on track. It’s your opportunity to assess your progress alongside your manager, identify how to remove roadblocks and move faster, and get the guidance that will take your career to new heights.

Conclusion
Managing your manager is as simple as this four-step process: dreams, alignment, goals, and feedback. Give it a shot; you may be shocked to discover how much you can accomplish if you decide to become a better manager of your manager.

“Begin at the beginning,” the King said, very gravely, “and go on till you come to the end: then stop.”

Lewis Carroll, Alice in Wonderland

This is life… in Trello

I used to be just like you. I used to have a mass of notecards, Post-It notes, and Evernote checklists. While I used to be unorganized, and lost I am now focused and organized. How did I do that? How did I manage to know everything, and travel through space-and-time with minimal effort? Let me take you on a journey of self-discovery and self-awareness. Let me tell you about…


A five-bin kanban system

Kanban is a well known tool for dependency management. Just ask Google about how you use it on software development! I’ve modified this three-bin system into a five-bin system. My bins are time-based instead of dependency-based. They are as follows: inbox, later, this week, today, and done.

Inbox

This is a dumping ground for all of the little tasks that need to be prioritized. Quick notes can also end up in here like “you should write a blog post about how you manage your life.” This is a tool to make your e-mail less of a todo list, and more of a communication tool — I believe in no e-mail in your inbox but am not an Inbox Zero zealot. Did someone ask you to do something while you were focused elsewhere? Add a card to the inbox bin.

Later

Do you have a list of tasks you need to eventually to take care of? The later bin is for tasks that don’t have a deadline, but need to be tracked or are going to take a big more work than you can support right now. An example card in this bin might be ‘re-architect pgbouncer infrasctructure to run on Mesos.’

This Week

There are tasks you know you need to get done this week because of a deadline. Do you have a presentation to prepare for on Friday, and it is Monday? The this week bin is perfect for that card. The work in this queue is generally prioritized by being moved into the today bin on the day I will have time to handle it.

Today

The today bin is the prioritized queue of work you will complete between 00:00:00 and 23:59:59 of the current day. This queue is prioritized when your day begins, and is empty when your day ends. This is the meat and potatoes of getting things done.

Done

Cards for tasks that have been completed are moved into the done bin. If Trello is your tool of choice at the end of the week you can ‘Archive All Cards In This List’ to start the following week fresh.


Tracking multiple focuses

I have a very basic labeling system to be able to quickly glance at what needs focusing, as well as what needs filtering. I have three labels in Trello. ShopKeep, Family, and Personal. While your labels may differ you must be able to deterministically label cards.


Prioritizing

Don’t be afraid of cross-prioritizing. There are only so many hours in the day to focus on and you need to find balance. Spend 15 minutes in the morning making sure things are properly labeled, and bined. Finding time to re-prioritize is key here. Things come up! Nothing is a “stop what you are doing and refocus” event so a lot of these are dropped into the inbox bin. Trello has mobile apps, and you can use those to quickly add cards to your inbox on the go.


Evernote vs. Trello vs. Notes vs. Paper

Any tool can be used to keep track of your cards, and bins. Find a tool that works for you and use it to power your life.


In conclusion

Quickly, and efficiently viewing your day as a work queue will help you be more organized, and more focused on what you need to do. You will find yourself having more clarity into your efficiencies and inefficiencies. Be retrospective on what you did, and didn’t do. Be retrospective on what you can do and you find yourself accomplishing more towards your goals.

Past performance not indicative of future results

If you’ve spent any time reviewing the outlook of an investment you will recognize this statement. This statement is so that an investment firm can show you how well they’ve done, while protecting themselves from a failure to produce similar results for you. Could we not draw a corollary between hiring and investing?

Hiring is making an investment in human capital, instead of monetary capital. When hiring we tend to review resumes, code samples, and ask questions digging into someones past to see if they are a fit for what is needed. Is this really the best way to make a hiring decision?

Knowing what someones past performance could mean for their future would make you a very wealthy recruiter. Giving someone the chance to show what they are capable is key. Are they capable of working nights and weekends when everyone else is? Are they bought into the processes? Do they contribute the best they can, or are they earning a buck? These are questions we always ask ourselves as hiring managers. These are timeless questions around hiring.

The solution is simple: we don’t know. What we do know is the risk or cost of bringing someone on to a team, giving them a shot and that attempt failing. It is a cost. As hiring managers, you must weigh the potential or upside of that cost. Have they not written a perfect binary sort in their technical interview? Does that fact outweigh their desire to go the extra mile? Does it outweigh their desire to grow and learn how to build the best software with the tools and knowledge they have today?

Give someone a shot at showing you that there are more qualities to a hire then their ability to bend to your interview process. If you give them this shot, you’ll discover a huge trove of amazing people to help build your teams around.

Always Be Cap Deploying (ABCD)

To be successful, in a fast moving startup we must move away from maintenance windows, and scheduled downtime. The team I am currently working with has been beaten into submission, and now deploys multiple times a day. This has allowed us the peace of mind to fix, iterate, change, and break production all in minutes. The idea of continuous deployment is not a new thing, nor a fully conquered problem.

You must decouple your services from your database, you must have lots of tests, and you must code review like a boss.