Under the Radar

Under the Radar 61: Back to Work

 

  welcome to under the radar a show about

  independent iOS app development I'm

  Marco Arment and I'm David Smith under

  the radar is never longer than 30

  minutes so let's get started

  happy new year everybody happy new year

  we decided to talk about what it's like

  to get back into work after a break like

  the New Year's break you know just the

  kind of getting your brain back into

  that space into like the pace of work

  and then once you finally get there how

  do you decide even what to tackle

  because chances are you know after a big

  vacation or after the holiday break

  holidays are especially bad at it but

  but after these things we tend to have a

  lot of stuff piled up a lot of things

  that we need to address work that

  accumulated while we were gone things

  that we should probably get going on and

  so there's a bit of a tricky question

  but how do you prioritize those things

  and then once you get going with working

  like how do you like how do you get

  going how do you begin work and then

  after that I think we want to talk a

  little bit about how do we plan kind of

  the first few months of the year you

  know that in the case of a New Year's

  break like this you know we have there's

  a lot of things about the corporate

  world that that go by years things like

  you know ad budgets PR and everything

  else we talked before about seasonality

  and so the first three months of the

  year is an interesting time to plan for

  to get things done to consider you know

  what to work on whether to release

  things and everything else we're gonna

  get into all of that David are you back

  to work yet yes only just I think I've

  essentially did I mean and it's kind of

  a strange end of the year because I was

  launching a new app which I usually

  don't like to do that time of year but

  for this particular time like I'd hoped

  originally to launch workouts plus plus

  in probably November or something but it

  just didn't end up working out like if

  the project took longer than I'd

  originally expected and so it was you

  know launched I think it was December

  21st or something which is not not

  advisable and be especially because you

  kind of go through the process of

  launching something you get it out and

  then all of a sudden you have a lot of

  you know delightful but just sort of

  distracting family

  and things such that you know I really

  put myself so most like I just took this

  took this app through it or threw it

  over a wall into the world and they just

  like ran away for a couple days which is

  not exactly what you want you know I did

  my best like I checked into the support

  thing every now and then and you know I

  hadn't there are a few little out sir a

  few little initial bug fixes that you

  inevitably have I was able to get those

  put together and they're you know

  they're currently waiting interview but

  then you're just gonna fall off the map

  in a in a good way and like I think it's

  probably also good to start up this

  discussion off by saying that like

  taking breaks and having periods of time

  when you're not working is desirable is

  a good thing like it's a bit of a

  problem that we're kind of looking at it

  from the perspective now of how do you

  deal with that when you come back to

  work but there's certainly an advantage

  to having that that separation to take

  some time away both in terms of your

  just mental health and overall

  well-being and also probably just to

  build a little bit of perspective to me

  to come back to things and be like what

  do I actually want to work on what was I

  doing before that I was just doing out

  of inertia rather than out of desire but

  for me yeah now I'm back working again

  and kind of it's especially weird for me

  right now cuz I'm coming back to edit

  after essentially skewing all work on my

  side project all my other apps except

  for workouts plus plus for the last like

  2 or 3 months so I gotten all those apps

  into a pretty good state roughly with

  the launch of iOS 10 like I'd done you

  nice like I did a big update and then a

  bug-fix update for most of my apps

  around Iowa's ten they were all in a

  good place and I go off and work on

  workouts plus plus for a couple of

  months and now I'm in a place where I

  have to look at all my work and say like

  what do I actually want to work on next

  what should I work on next and I do find

  it really awkward and like tricky when

  you end up this kind of it's the paradox

  of choice I think it's called or just

  being overwhelmed more simply where you

  look at all of the universe of things

  that you could do and have to having to

  try and understand what the right thing

  to do and especially when you have to

  deal with these weird tensions between

  like what do I think is the

  best thing financially for my business

  for me to do well the thing what I enjoy

  most working on a thing do I think my

  customers are most expecting what you

  know where should I go in terms of what

  what project I think I would learn the

  most from like there's lots of different

  reasons and I like my first day back

  which I think goes on I guess the day

  after New Year's Day whatever that is

  January 2nd January 3rd looking at I

  just sat down and have like opened up

  the omnia focus for the first time in a

  long time because when I'm gonna period

  when I'm working on an app like

  warehouse plus like been a pretty

  focused manner if I could Afeni if I

  come across any things in my other apps

  or I get feature requests or things that

  sound good I just kind of throw them all

  into there which i think is you know a

  sane system to just kind of rather than

  thinking about them and trying to manage

  them as you go just postpone that until

  you until it's time that meant that you

  know this week I've been having to sit

  down and be like you know filter through

  just page after page of ideas of

  thoughts of things and in general I

  think my approach to this kind of thing

  is I just tend to latch on to one or two

  things that I think I can reasonably

  make progress with and in some ways this

  kind of makes me think of like I used to

  run track in high school and it sort of

  looks like the warm-up lap it's the

  before you actually can start working

  properly you have to go out and do a

  little bit of work but not really hard

  work just a little bit of something to

  get you back into this into the flow of

  things and so like today I've been

  working on a little you know it's like a

  minor feature and pedometer plus plus

  that I think is useful and good and

  isn't a particularly high stress or high

  risk feature but it's something that I

  think would be useful and I can kind of

  go through the process of working on

  something again get you know sort of get

  back in the flow and then once I finish

  this little once I finished my warm-up

  lap I expect to then dive into me some

  of the bigger features and some of the

  bigger tasks that I think are going to

  take more of my mental energy take more

  of my focus and you the kind of things

  that I don't really want to do Cole's

  after you know spending a week or two

  with very little work one of the

  challenges I face in getting warmed up

  you know as you put the warm-up lap was

  great one of the big challenges I face

  is that when you've been away from a

  project for a while whether that's just

  like you know a five-day weekend and

  we're yury your mind totally somewhere

  else or whether it's you know something

  something like a big break where you're

  working on something else for a little

  while and you got a like sideline

  something else one of the big challenges

  I have is knowing where to even start

  because this is the kind of problem

  where like you know people people like

  us who are indie developers who don't

  really work with other people we're

  basically the the job of everything

  falls on us it's very easy to get lazy

  with your organizational system about

  things like your your to-do list your

  your you know tracking of what you have

  to do next and and also like

  documentation of things like your code

  and your app and what these things do

  what these different parts do it's very

  easy to fall into the trap of well it's

  all in my head as I'm working on it and

  I could just remember these things so I

  don't need to write this down I don't

  need to document this code I don't need

  to to manage a to-do list because I know

  what I have to do you know and I am

  guilty of this worse than anybody else

  like I hardly ever write anything down I

  keep only a very basic to-do list in

  task paper of like you know things I

  need I want to do for this version and

  like like the entire like overcast 3.0

  to-do list is something like twenty

  lines long it's not this is not like a

  very granular thing to do move to the

  time and you know towards the end I'll

  have like a bug punch list basically

  that's a little bit more granular but

  otherwise you know most of the time I'm

  working on something I don't have

  anything like that it's just kind of all

  in my head so when I'm facing the

  problem my biggest challenge is just

  like I know what I have to do I have to

  keep things more documented I have to

  keep my - duze more organized but I

  don't usually do it or or I do it to a

  very half hardier degree and it's it's

  more of a challenge of personal

  discipline than anything else I'm just

  like you know when you're when you're

  solo it's it's so easy to to not do

  things the way that you have to like it

  when you work in a job with other people

  you kind of always have to be writing

  things down and coordinating to dues and

  having a road map because it's kind of

  possible to work with the people without

  having some degree of that and they're

  also usually like a well working place

  should usually be at least somewhat

  prepared for somebody leaving or

  quitting or getting fired at any time

  and some and other people being able to

  pick up their work where they left off

  and when you're when you're a solo

  developer like like us it's so easy to

  not have those kind of safeguards

  because you think you don't need them

  but when whenever you have to take any

  kind of a break or juggle multiple

  projects you really do need to think

  about those exact same strategies yeah I

  mean and I actually was bit by exactly

  that the last day or so where in this

  work that I've been doing on pedometer

  plus applies so I haven't worked on the

  app for probably since October I think

  so like two or three months and I sit

  down and I start using it I noticed

  something weird going on in my data

  system where a certainly iOS API call

  wasn't returning the values that I

  expected it to and as I started looking

  into this and this is really weird like

  it's a very one of these weird edge case

  bugs where if I give a certain value to

  healthkit API I get no data back but if

  I do a lots you know sort of other

  things it works fine which is really

  weird bug like man this is strange and I

  spent about a half a day working on this

  bug seeing if I can come you know find a

  workaround if I can avoid it in the end

  I found like I found no solution and I

  was like alright well I should probably

  use for file a file at radar about this

  just to make sure that Apple knows that

  this is a bug and I go open up bug

  report at AFRICOM you know go into my

  little account and one of the the top

  radars in there was me reporting this

  exact bug in August of last year which I

  was reporting it against like beta 2 or

  beta 3 in iOS 10 clearly I had

  completely forgotten that I'd done this

  exact process before but this is a great

  example though of this like I just

  wasted half a day trying to track this

  thing down that a few months ago I did

  exactly the same thing and I suppose

  it's it is such a tricky thing though to

  want to document in great detail all the

  varies these kinds of things because it

  is so easy to rely on your own memory

  and like I think in many ways I find

  really like one of the

  core skills of development is memory

  wear like I am at my most effective

  programming the more of an application I

  can sort of hold in my head at once

  where I know where all the features are

  I know how they all interconnect and

  having that kind of like loading that at

  loading all that information into my

  brain is like where it gets really

  efficient and helpful where I don't I'm

  not like sick constantly you know

  command effing all over the whole

  project trying to find the various

  things like I just know where they are

  but if you take a few months off and you

  come back to a project you can find

  yourself in these situations where like

  you just forgot that you've solved this

  problem or you've gone through the all

  of the work to determine that no

  solution exists and like in this case

  like what I really should have done when

  I could solve this the first time I ran

  into this problem the first time is I

  should have just had a little comment in

  my code that said you know this this API

  fails in this way you know radar filed

  here's the radar number you know for my

  own reference just so that you know it's

  like when I could this morning when I

  ran into this I could thank passed south

  you know pest Dave for going back there

  reporting this short-circuiting this

  whole thing and knowing that like okay

  yeah it's a bug is filed Apple hasn't

  fix it yet but you know I can move on

  and don't need to worry about it or at

  least I already did worried about it but

  that disciplined about that is I think

  really hard because yeah it doesn't feel

  like I think it's really difficult to

  judge how far into the future you're

  going to need to know where you are and

  on the flip side obviously you could

  take the other extreme and get really

  carried away and be documenting

  everything and all of your everything is

  like super detailed and you end up in

  like a proper like a formal like

  software model where you have like the

  requirements and you have the

  development and you have the testing

  documents and like you can go way

  overblown as well but there is

  definitely something that experiences

  like I had today definitely reinforces

  for me where like I need to be a little

  bit more and honestly it's probably the

  kind of thing where just being like 10%

  more descriptive in my gig commits in my

  comments would have a disproportionate

  impact in my ability to come back to

  work

  and to feel that I understand what's

  going on is it's almost like a like a

  hierarchy of caches you know it's like a

  terminology it's like you know we all

  know that you know as you said like when

  when you have a whole bunch of the

  program in your head you are way more

  effective that's what we refer to when

  we're talking about being in the zone

  and as programmers like it's basically

  having a whole bunch of the program in

  your head which is like the highest

  level cache like the l1 cache or the

  registers and then as as things like you

  know get evicted from either time or or

  crowdedness hey you have to start you

  know relying on other on other things to

  to keep the stuff in your head or to or

  to refer to other resources to get it

  back in your head and you know a quick

  little Doc comment in the code or good

  documentation of like the architecture

  of the code is way more effective at

  like when you when you have a cache miss

  in your brain and you have to go fetch

  it from this external resource that's

  way faster than like having to repeat

  eight hours of coding only to make the

  same mistakes over and over again only

  to discover the same eventual truth at

  the end that you could have discovered

  with what you know a quick little

  comment on in the code and it's in too

  many ways it reminds me of a some advice

  I remember hearing once about when

  you're like writing a little - duze for

  yourself like if you're capturing those

  kinds of thoughts of the importance of

  capturing complete thoughts not things

  that just would just make sense at the

  time you know so like if I record a

  little to do that says you know it's

  like table view height adjustment like

  at them at that moment I may know

  exactly what that means and it sounds

  completely silly to behive a show you

  feel like fully expanded out like table

  view height adjustment in stat screen of

  pedometer plus plus like that if I don't

  include all those other nouns I'm gonna

  come back to that later and be like what

  does this mean like it becomes just

  complete gibberish and garbage even

  though at the time it feels like

  completely unnecessary because I know I

  understand entirely the context and so

  the thing in the same way it's like when

  you're ready to do is it's important and

  then use in something similarly with you

  in your

  in your code or your internal

  documentation and I mean obviously we

  have the benefit though I will say of we

  just have to write things that make

  sense to us that we know ourselves

  better it's not like we're trying to

  write something that anybody with any

  level of sophistication or understanding

  would be of the project or of

  programming in general we'll be able to

  pick up like we know ourselves we know

  what you know like what short hands and

  what terms and things we can just use

  but I think it's very important to have

  that kind of perspective of like how can

  I be kind to my future self in my

  current self rather than just assuming

  that my future self will like kind of

  work it out oh yeah because like

  especially like you know as as the

  amount of time extends you know if

  you're writing something for your future

  self of four days from now that's very

  different from your future self of four

  months from now or four years from now

  and as like I think it very quickly gets

  to a point that the this is this is not

  like a slow progression I think even

  after a few weeks or a few months of not

  working on something you approach it

  almost as if a stranger would approach

  it like you're your future self is way

  less familiar with what you're working

  on right now then your present self

  might realize and if you could if you

  can kind of get that into your head and

  internalize that and start remembering

  that as you're doing this kind of

  documentation or prep work or or

  anything like that

  you can really save your future self a

  lot of hassle because your future self

  is going to look at your current code

  and projects almost as if a stranger

  we're looking at them anyway or sponsor

  this week is somebody who never takes a

  break because they're a hosting company

  and you want your hosting company to

  never take breaks

  it's Linode Linode gives you fast

  powerful hosting for your projects that

  you can set up in just seconds they ve

  to understand tools to let you choose

  your resource levels and Linux distros

  giving the power and flexibility you

  need and little plans start at just $10

  a month for a two gigabyte RAM Linux

  server in the Linode cloud Linode I mean

  this is the best stuff I've ever used in

  the web hosting world and tell you I'm

  telling you I've used a lot between all

  the different things I've worked on I've

  used a lot of web hosting I've used

  literally hundreds of servers in web

  hosting

  and Linode is by far by far my favorite

  and now I think almost everything I have

  is there now and the only things that

  aren't there are things I just haven't

  gotten or it's moving there yet because

  you know moving things as a pain but if

  you're looking for a new host or if

  you're willing to go through the hassle

  of moving to a new web host I'm telling

  you you're not gonna be sorry with

  Linode it is amazing the control panel

  is great their performance per dollar is

  I think unmatched in the industry highly

  highly recommended anyway it's never

  been easier to launch a little cloud

  server they offer the fastest hardware

  and network with fantastic customer

  support behind it all if you need it

  even on the holidays even on Christmas

  Day New Year's Day they are working they

  are there little guarantees 99.9% uptime

  for server ability once your server is

  up they intend to keep it that way and

  let you know this is great for things

  like running your own private get

  servers hosting a large database running

  a mail servers hosting the entire web

  app like David and I do and so much more

  so as listener of this show if you sign

  up at lynda.com slash radar you'll not

  only be supporting us but you also got

  $20 towards any Linode plan and with a 7

  day money back guarantee there's nothing

  to lose so go to Linode comm slash radar

  to learn more sign up and take advantage

  about $20 credit or use the promo code

  radar 2017 that's of radar 2017 at

  checkout thank you so much to Linode for

  supporting this show so I think it's

  also probably fair and now that we've

  kind of come back into our work to

  discuss and work through a little bit of

  what makes sense to plan out for the

  first part of the year because maybe we

  talked about it before with like iOS

  development has a schedule and a cadence

  kind of dictated to it's somewhat

  externally we're you know starting

  around June 1st or so you know we get

  into the new stuff cycle we're from June

  until about September we'll have new iOS

  betas new devices new what Evers that

  are going to be announced the fall is

  the kind of fall out from that period

  where we start to you know all these

  things actually go out into the wild and

  they get to see how that you get used in

  practice and then we kind of get into

  this next phase which i think is in some

  ways my most enjoyable part of this

  go where you know from roughly now

  you've gotten through Christmas and New

  Year's so from now until June we have

  about six months to just work on

  whatever we want in a lot of ways and I

  tend to like this time of year for

  polishing doing a lot of like point one

  point two releases working on a lot of

  things that you know didn't make sense

  to try and squeeze in with a major iOS

  update the things like that where I can

  sit down and I can spend you know it's

  you know a significant amount of time

  without quite the same time pressure as

  I would if I was doing it over the

  summer or in the fall you know where now

  I can kind of if I take stupid ends up

  taking an extra couple weeks it's fine

  there's no there's no external

  constraints or things that I'm trying to

  fight around and so I tend to look at it

  and that's kind of like my planning

  right now for all of my apps you know

  it's like I century I'm just gonna be

  sitting there making out these kind of

  big point releases for all my apps do

  you know I have taken these kind of nice

  features that I think are value-adds

  and honestly even a lot of what ends up

  happening with me is I as I have so many

  apps but they're all kind of related you

  know all my plus plus apps are health

  and fitness

  oriented and so what I've started what

  I've started to do too is I'll end up

  doing something in one of them that I

  feel like will make sense to kind of

  incorporate back into the other ones and

  so I expect to be doing a lot of that

  this sure if I guess what we're gonna

  call this period like in the new year

  / - through the spring where I can go

  through and kind of just get everything

  in a nice solid robust kind of like

  making these features a little bit

  deeper like maybe that's right I could

  way to think of it - like in this summer

  and in the summer and fall I tend to

  think of it as kind of widening the apps

  making them incorporate these new

  features incorporating these new

  platforms whatever makes sense and then

  you know sort of the first half of the

  year is more about taking those things

  and kind of digging them deeper and

  adding at all those little touches that

  make the app that richer that you didn't

  quite I wasn't quite a didn't quite have

  time to do in the first place yeah

  because you know the fall is you know we

  spend so much of the fall just and the

  summer even just like

  adapting new things or adopting new

  things and keeping up with all that

  bells new stuff and you know from from

  January through June apples pretty quiet

  usually and so yeah we it's it's a great

  time you know as you said like to work

  on you know quality to broaden your

  feature base I would say it's a great

  time to address things like user

  requests like feature feature requests

  from people they're very common like

  because you don't have anything else for

  the most part competing with this time

  most of the rest of the year you have

  like external pressure of things you

  need to be keeping up with or doing or

  planning for right now

  this part of the year is basically like

  work on the core make the app better

  make your stuff better try you know if

  you want to start experimenting with

  with brand new features or start

  planning what your next big release

  might be this is a good time for that of

  course I'm following on this advice

  myself I'm actually of course preparing

  to launch my 3.0 now but that's not

  because it was planned this way it's

  because it took too long was a long shit

  in the fall and I just didn't but but

  you know this is and honestly this is

  not a bad time to release a big point

  your a big point o update because

  there's not a lot else going on and

  there there is some concern there that

  you know you need to be aware of things

  like the PR seasons and calendar and

  advertising and everything everything

  like that one of the good things is that

  well a good thing if you're if you're

  looking to buy ads or you know things

  like a store search ads you know or ads

  on people's podcasts or ads on websites

  or whatever else Facebook ads usually ad

  inventory is is pretty low in January

  and February and this is a terrible

  thing if you make your money via ads as

  you taught me and you were right that

  basically your ad revenue tends to drop

  pretty sharply in you know in the first

  few days of January compared to the year

  before and you know compared to the week

  before even like in December and and

  sometimes it takes like big corporate ad

  budgets a little while to get organized

  and start buying things for the new year

  and so if you are an indie making money

  via ads you know I think it's important

  not to freak out too much about that

  because it's temporary and if you are

  buying ads

  this is kind of an awesome time to buy

  hats if you're indie because you don't

  have to work on the annual corporate

  budget and get approval from a bunch of

  in departments you can just buy the ads

  right now and so you actually might be

  able to get a pretty pretty good deal on

  an inventory where things are a little

  bit cheaper than they normally would be

  so this is that's also worth considering

  but for the most part I think you mainly

  have to have to be aware of like you

  know not releasing things too close to a

  holiday or a slow time or a slow weekend

  but I think we're mostly past that now

  you know as we talk about those it's a

  January 4th probably coming out on the

  5th so you know we're past New Year's

  Day and and like the day or two after I

  think pretty much any time now

  from now forward is ok to release things

  without too much trouble yeah and it's

  just a good like in some ways I it's a

  good is just a good time to get back to

  work like in a good way like I always

  find that the the fall just feels just

  so disjointed for me like it's really

  hard to really get stuck into things

  because there's just so many things

  going on yes certainly both

  professionally as well as personally

  that I kind of like the thought of like

  nothing's really gonna happen for the

  next couple of months and so getting

  into a normal rhythm getting into about

  in you know kind of starting some new

  habits not necessarily like you know

  like have New Year's resolutions

  perspective or just by benefit of there

  not being things that are going to be

  messing with your schedule you know it's

  kind of a nice time to be able to to

  look at that and to hopefully like I

  really enjoyed this process of sitting

  down and eating like what do I want to

  work on you know what what is actually

  going to be an interesting thing to

  build when I'm listing or what about

  would I enjoy in that and so it's a good

  time to be thoughtful about that and to

  kind of think that you know what is

  something that's maybe like the level of

  difficulty might be a little higher you

  know this is a good time to maybe to try

  and fail it's true you try something

  that's a bit risky that might work out

  like it's a better time to do that now

  then you know later in the year or when

  things are a bit more high pressure you

  know like though I've I think we're

  three Christmases ago back when the

  Christmas bump was just drew

  like I remember never late isn't the

  AppStore I would you know the Christmas

  stay and the day after Christmas were

  something like 8% 10% of my yearly

  revenue like he was huge and dramatic oh

  yeah

  thankfully that's kind of settled down a

  bit like I was as cool as it was to make

  that much money like was it bit

  terrifying because I remember a couple

  years ago I had a bug in my main app

  that I released like I think about five

  six days before Christmas I hate it and

  it turned out the bug like the app works

  completely fine except for all of the

  in-app purchase didn't only have

  purchases didn't work it worked fine so

  I couldn't make any money exactly so

  that was a bit terrifying and I you know

  did the book it was one of these like

  trivial things there's a bit of debug

  logic that I had to flip over and then

  you know resubmitted to Apple did the

  expedited request and in the end it was

  fine like the app was you know working

  in a functional way on Christmas Day

  which was super important but I loved

  that one who sort of sort of passed some

  of these things where you have that high

  stakes that high stress that if that app

  had been broken on Christmas day it

  would have had a dramatic impact and so

  I in love this kind of time of the year

  where if something gets if something

  gets busted if something gets broken

  like the stakes are much lower like it's

  still impactful it's not like that I

  want to just be cavalier about things

  but it's nice to kind of have that

  pressure taken off a little bit and to

  be able to kind of really dive into some

  bigger projects in that way oh yeah I

  mean and you said earlier main it like

  about how this is such a great work time

  because like there's no interruptions

  like I love this time of year I mean I

  hate winter in general because I can't

  go outside because the outside world is

  just just hates me but I'm a huge fan of

  the amount of work I can get done during

  this time because yeah there's no

  holidays there's no well there's fear a

  few holidays there there's no like

  family needs really it's just a solid

  like couple of months really where

  there's nothing else to do but work and

  I kind of like it so anyway thank you

  everybody for listening good luck

  getting back to work yourselves and

  we'll talk to you next week bye