artsy / mobile

Mobile Team TODO
http://www.objc.io/issues/22-scale/artsy/
84 stars 11 forks source link

Time management & development speed #68

Open sarahscott opened 8 years ago

sarahscott commented 8 years ago

How do you manage your time w/r/t Artsy apps, and what are some of your best practices for consistency and speed :angel: ?

Also, what are some of your worst practices :-1: ?

Might make the result of this into a post.

@alloy @orta @ashfurrow

orta commented 8 years ago

General Techniques

I have two styles of working, in the office and OOO.

In the office, I expect that I will ship less code. I do everything I can to try pair with ash/sarah, go to relevant and optional meetings, and make sure that we as a team are on course with Artsy.

OOO I will write a lot more code. I skip all optional meetings, and aim to mostly communicate via GitHub issues / Slack. I effectively treat artsy like an OSS project. Working in batches here & there.

I treat email / slack / github notifications like a twitter stream, I can take a look over them, if there's something I should do with one, then I do it straight away. If I can't do it straight away I use slack's reminder function. /remind me in x minutes to something. They then get scoped to the right slack so I know if it's CocoaPods or Artsy stuff.

screen shot 2015-12-15 at 3 25 57 pm

I believe strongly in a pull request a day when remote, for me it's really hard to keep motivated for longer projects. Incremental improvements are how big things get made. If I know I'll be blocked at some point along the way on something I need to do, I make a TODO list in the PR, and make a WIP PR

screen shot 2015-12-15 at 3 28 24 pm

Time Management

I don't have a straight up method for keeping track of my time, more a collection of timely reminders in the form of notifications from slack or OS popups. I experimented with OmniFocus/a markdown file/VooDoo Pad, but couldn't really find a flow that fits me.

screen shot 2015-12-15 at 3 29 09 pm

Speed & Consistency

Worst Practices

Working Offline is both my worst/best practice, I use it to write huge amounts of code without distractions, it's the tool I use when I really need to ship something.

ashfurrow commented 8 years ago

Yeah Orta, the PR-per-day thing has been really useful for me, even when I'm in the office.

I treat my email inbox as a todo list even though I know it's bad. Usually for short-term things (<1 week). Other than that, OmniFocus is the "source of truth" for me. If it's not in OF, it won't get done. But it – and the GTD system – let me not worry about things. I can put something in there and I trust myself that I'll get back to do, but it's taken some effort to become diligent enough. OmniFocus makes it a bit easier, too.

Something I really miss since moving to NYC is long periods of uninterrupted time to work. Nothing is better than like a three-hour block of afternoon time to get stuff done, but it's rare. So I try and focus on smaller things and work from home on bigger items.

I don't perform consistently – I need significant down time after a crunch, sure, but even day-to-day. Sometimes I'm wildly productive and sometimes I just can't write code. Lately (six months or so) I've tried to not write code when I'm really really not in the mood. Like I'll force myself if I can, but beyond a certain limit I find it's counterproductive. If I can't code, I'll dig into OmniFocus and there's usually an idea for a blog post, or a lunch-and-learn, or theres an upcoming conference talk I need to prepare. I used to feel really guilty about not working, but eventually I realized that I get more done if I capitalize on this feeling.

For example, contrast the following two scenarios:

  1. Can't concentrate on code -> force myself to concentrate on code -> feel bad, anxious -> repeat
  2. Can't concentrate on code -> write a blog post (even a personal one) -> feel good about being productive -> "oh hey, you don't what would be a good solution for that coding thing I tried to do earlier ..."

It feels a bit counterproductive to say not writing code helps me write code, but it follows the same logic as "if you don't take a vacation, you won't be as productive." The key thing for me as been to let go of the idea that everyone is secretly measuring how many hours I'm at my desk, or how many lines of code I'm writing, because they're not.

Other than that, saying "no" has been a skill that I've had to learn – I've been meaning to write about it in more detail for a while. Like if someone here asks me if I can get something done by the end of the week, I want to say yes, even though I don't really have time to do that. My favourite trick is the following: instead of saying "no", I say "I'd love to, but I can't." It's honest and preserves their feelings.

That's all I have for now... I'll mull it over and post any more thoughts I have.

sarahscott commented 8 years ago

I'll just add to this here and then possibly compile all of the responses later. @alloy , if you have a spare 10 minutes at some point, your response would be super valuable!

I've found that my productivity fluctuates every day and I'm looking for better solutions. I do use the email-inbox-as-to-do-list thing sometimes, which is hard to manage. I also have a disgusting number of tabs open in Chrome 24/7. I've tried a ton of to-do list apps but I don't like any of them... maybe OmniFocus is different?

Sometimes I write code really late at night if I can't sleep and I get a random urge to be productive. I try to counterbalance that by taking a longer lunch or morning break the next day and this seems to work well. It's a leftover habit from college but sometimes it's the most enjoyable coding time for me.

ashfurrow commented 8 years ago

Sarah, if you want some time we can go through the basics of how I use OmniFocus. I know @mennenia is also an OF fan, and has a different workflow than I do (it's a very extensible tool).

orta commented 8 years ago

If you don't change it @sarahscott you'll end up working like how I work, you just get better at keeping a lot of tiny contexts around. If coding isn't working out, jump to emails, or jump to cleaning issues for project, blog posts, etc etc.

mennenia commented 8 years ago

1) Be productive when you feel like you can be. If that's sometimes at night, go for it. If you compensate for it, that's good. For me, it's usually the mornings. I try and get something out of the way as soon as I can, or sometimes at night as well. Basically when it's quiet, and less people / things are distracting me or requiring attention.

Consistency is something I've definitely struggled with in the past. I do try and stick to when I say I will get something done. If that sometimes means cramming more into one day, but a bit less coding the next, so be it. It's hard to output the same kind of work distribution on a daily basis.

2) Quick wins and hard tasks I either pick a really quick win to do first thing, or the hardest thing / the thing I'm putting off. Either will put me in a good mood, and fill me with energy to tackle more :).

3) Daily lists While I use OF (see next point), I have to have a "scratch pad". A place (often physical paper - how analog haha), that I can use so not everything is in my head as I'm thinking it. This sounds strange now that I type it out haha. See it as an extension for ram memory, plus the fact that I'm very visual. I have to sketch things out, write things out, doodle, etc. On here I usually also write down the main things I need to get done today, as well as a small personal todo list (e.g. "call GP", "pick up bananas").

4) General todo / information management To make sure I don't forget things or I can easily access information, I rely heavily on Evernote and Omni Focus. Evernote contains everything. I pin things from the internet, I drag files, images, and text from my desktop onto the menubar saver thingy, I forward emails, it has everything.

Omni Focus is primarily so I get reminded of tasks at the right times (I use the "defer" function a lot), and I have an overview of all my projects, so I don't forget to switch things up and work on some of this, or that. I do indeed think I have a slightly different approach to Ash, and am happy to show you sometime in a screenshare call or something :).

5) Email I fall into the habit of using it as my todo (Mailbox was amazing for this, unfortunately shutting down), but I'm trying to not do that. This is a work in progress that's currently overhauled quite a bit. Will let you know when I know more!

At the end of the day, in all honesty, I rely most on having some paper around and a pen just to write out my thoughts :).

alloy commented 8 years ago

:clock12:

:chart_with_upwards_trend:

:chart_with_downwards_trend:

orta commented 8 years ago

@sarahscott you should turn this into something useful ^