Comment by sfllaw

Comment by sfllaw

I am a Director of Engineering in a software development company with a small team of really awesome programmers. I report directly to our CTO. I'm going to assume that you're trying to juggle the classic focus/interruption tradeoff that often results in heated arguments between business and engineering teams. These answers are my opinion and they seem to work for us — maybe it will work for you.

1. It depends on what you define as work. My experience, and that of the team I work with, seems to validate Paul Graham's Maker's Schedule, Manager's Schedule dichotomy: http://www.paulgraham.com/makersschedule.html. If the goal is to communicate, clarify, or design something with others; then the standard business day (Manager's Schedule) is the most effective. If the goal is to write a proposal, analyze customer behaviour, or program a bugfix; then I find I'm most effective when there are no distractions during (Maker's Schedule). For me, this is after I make dinner and into the wee hours of the morning.

Since this is equivalent to putting in double time, this is also not very sustainable. Because I work with both types of schedule, I stick all of my Manager's Schedule tasks early in the day, with meetings booked back to back. Then, after lunch, I'm able to focus on my Maker's Schedule. Unless there is a fire to put out with a customer, I'm concentrating on tasks that require deep focus. Anything outside of that can be postponed until the next morning.

2. I believe that each team must have "office hours" where they are available to communicate with the outside world, and the rest of the day should be allocated according to each person's preference. You basically trust each person to contribute to their own ability, otherwise why have that person on board? But you also need the whole team to be available so that you can form social bonds between each other and also the other teams you work with. People who don't overlap with those office hours aren't going to mesh with your team very well, so either pick a new timeslot or only work with that person as a consultant.

To look at it another way, I need to contact people without caring that I'm interrupting a focus-oriented task. During office hours, I don't have to worry, and other people don't have to worry about interrupting me.

Finally, none of this forbids people from independently agreeing to times that they work with each other. For example, I love pair-programming with coworkers, and we work out the best times to do this activity amongst ourselves. Office hours merely guarantee that our productivity won't get ruined, and we're available for discussions every day.

3. As answered above, office hours are for what a programmer/maker would call an "interruption" and other people call "real work".

For more urgent incidents (failing servers, flooded offices, angry customers, etc) we all agree that these are emergencies that are dealt with by a standard IT Escalation Procedure. The procedure is a one-page decision tree that you walk through: what time is it? how urgent is it? It tells you how to contact people (email or phone) and which people you ought to call. We haven't had to use it much, but nobody ever complained when it got used.

One important caveat: your staff won't be amused at being told something is urgent if they discover that someone else in the company had predicted this incident would occur. There will probably be some angry words, a severe drop in morale, and an instant loss of trust if an urgent incident happens because someone cut corners, ignored some warning signs, or outright lied to a customer.

4. I identify more closely as a developer who has a strong engineering background. My training leads me to think about: problem analysis, root causes, cost reduction, and maximizing profit. I am neither a hacker nor a business guru, which are both extremes that us engineers like to avoid. My Myers-Briggs type is ??T?.

5. I use realtime chat throughout the day: I will respond instantly during office hours (manager's schedule) and whenever I see the message when I'm on a maker's schedule. Realtime chat is great for questions where you need an interactive response, but can wait until the other person has finished whatever they're doing.

I'm available for voice chat during office hours and we often have meetings over Google+ Hangouts. Meetings with voice and video really reduce misunderstanding that arise from tone and diction. We also are able to go over documents, numbers, and drawings during these meetings which really reduces the number and length of our meetings; because we're able to come to a common consensus earlier.

I use email for announcements and work requests. We also communicate with our bug tracking and project tracking systems. These are for requests that are highly asynchronous and package up large tasks. Features, bugs, and customer feedback almost always result in either realtime chat or a full on video-conference to hash out the details. Often, this communication will be brief (15 minutes) but they've sometimes taken much longer for difficult problems. When that happens, we try to break the work apart into Manageable/Minimal Viable Features.

As a general rule, I always prefer to have the highest bandwidth meeting possible to get people to consensus the fastest. It might seem better to always prefer something lightweight like an email thread up front, but the chance of confusion is high enough that you'll probably end up in a long meeting anyway to decide what work you're going to undo because you got it wrong in the first place.

I ask more questions than I answer, because our calls almost always involve unknowns. We're very good at keeping each other up to date with answers on our mailing lists, our shared calendars, and our shared documents. The reason we have meetings is to find out whether we are asking the right questions and making sure that the right people are working to discover the right answers.

6. For manager's schedule work, I definitely get more done around 3-5 people, which I find is the optimal size for meetings. With too many people, we are just wasting time and money. Manager's schedule work is rarely done in isolation, you need to have other people questioning your assumptions.

For maker's schedule work, I get the more done by myself. However, I find that I get higher quality work done when working with someone else. Doing high-focus work with a partner results in fewer mistakes and less time spent doing useless work. There's a tradeoff though: if I need to finish something fast, I work alone; if I need to finish something correctly, I work with someone else. Pair work is documented as effective for programming, but I've also found it effective for UI/UX design, business plans, and even writing press releases.

Replies sfllaw · 2012-12-09
Open on HN
Loading the discussion…

Domain filters

Stories from these domains are hidden from every list. Subdomains match too: blocking substack.com also hides danluu.substack.com. Type a domain, or paste a link to block its site, and press Enter.

New collection

Delete this collection?

About YAVCHN

YAVCHN is a reader for Hacker News and Lobsters, with articles and discussions in separate windows or Classic pages.

Created by Paul Parks and built with PUDL.

YAVCHN source code on GitHub

Privacy policy · Terms of use

Help

Keyboard

j / k
Move down and up the story list. The arrow keys scroll whatever has focus.
Enter
Read the marked story in the article reader.
[ / ]
Read the story above or below in the list, in the same article reader. Back returns to the story you came from.
p
Pin or unpin the marked story, which keeps it in Pinned.
n / N
Move to the next or previous top-level comment in the window in front.
c
Collapse or expand that comment.
f
Hide or show the story list.
Esc
Close a menu or this help.
Access key m
Go to the menu bar. Most browsers take it with Alt on Windows and Linux, and Safari with Control and Option.
?
Show this help.

Windows

Each story opens in a window holding its article above its discussion; drag the bar between them to share the room differently. A window can be moved by its title bar, resized from any edge, snapped to a half or a corner by dragging it there, maximised, or minimised to the bar at the foot of the page. Use Window > New reader window to open an empty reader, or Story > Open in new reader window to open another reader for the current article. Docked readers keep their articles when you select another story from the sidebar. Minimized readers can be restored and reused for their site. A window's Previous and Next buttons read up and down the list in the same window.

A link in a comment or an article to another Hacker News or Lobsters thread opens that thread in a window too. A link to a single HN comment opens the comment above its replies.

While a story's window is in front, the Story and Discussion menus in the menu bar hold its commands: pinning, Previous and Next story, sorting, collapsing every thread, jumping to the first new comment. Each window also remembers where you were in its article and discussion, so a reload, or Back to a story that Next took you past, finds your place again. Closing a window forgets it.

The whole arrangement lives in the address, so a bookmark or a shared link brings it back, and Back undoes the last change. Moving between Hacker News, Lobsters, their lists, Pinned and Find changes only the list, and leaves the windows open.

The list

The pin at the start of a row keeps the story in Pinned, and the cross at its end hides it. Pinned can be narrowed by words in the title, site or author, by source, and to the stories you haven't opened yet, and ordered by when you pinned them, by points or by comments; the filters are part of the address, so a filtered view can be bookmarked. Scroll past the end of the list to load more. Domain filters, in the View menu, hide every story from a site.

Collections are named lists of stories. Story > Add to collection files the story in front into one or more of them, and the Collections feed shows them all or one at a time; the menu that chooses collections also creates, renames, and deletes them. A note is your own text on a story. Choose Add note in a story's toolbar to write one; it saves as you type. Rows with a note carry the note mark, and the Notes feed lists every noted story and searches the text of your notes.

Browsing view

View > Windowed and View > Classic select the browsing view and save your default in this browser. Window view reuses a reader for each feed. Classic view opens stories and applets as pages. Open as a page is a one-off action that does not change your saved default. Use the Windowed selector to return an article to a window. Direct page links always open as pages.

Applets

The Applets menu in the menu bar holds three tools, each a window of its own. Replies to me takes your Hacker News user name and lists the replies to your last thirty comments and stories, checking again every three minutes while it is open, and marking what is new since you last marked them read. Look up a user opens a profile on Hacker News or Lobsters, with their submissions and recent comments, as a commenter's name in any discussion does; the bar at the top of a profile looks up someone else in the same window, and Back returns to the one before. Who is hiring? filters the posts of HN's monthly hiring threads by the words you type.

They read only what the sites publish to everyone, so none of them asks for a login, and your user name stays in this browser anonymously and is included in retained applet state when signed in.

Find

Find takes any link and lists every time it was submitted to Hacker News and Lobsters, so you can read each discussion of it.

About

YAVCHN never sees your Hacker News or Lobsters login. The discussion is fetched from each site's public API; to vote or reply, follow the link above the discussion, or the arrow beside a comment, to the source's own site. Without a YAVCHN account, your data stays in this browser. When signed in, pins, collections, notes, blocked domains, and retained reading state are stored with your account and synchronized across devices. Hidden stories and layout stay in this browser. The privacy policy has the details.

Open source: github.com/paulmooreparks/yavchn. Built with PUDL.