Ask HN: How to keep yourself accountable?

231 points by lamchob ↗ HN
Hi HN,

lately I realized I'm struggeling to keep myself accountable, mainly for work I am the main stakeholder in.

When working "after spec" or together with someone else on the same code, I can to stick to it and deliver quality I'm satisfied with. But as soon as I work for myself my standards, quality and even goals start going down hill. Short term I'm okay with less and sloppy work, and after a while I regrett no doing a better job.

Do you guys have ideas, techniques etc. to deal with this behaviour?

101 comments

[ 2.7 ms ] story [ 175 ms ] thread
Write yourself a spec.

Even better, follow the full process

1) Problem Identification

2) Requirements Capture

2a) Technology selection (optional)

3) Specification

4) verification and validation

Maybe you do some TDD and mix it up on 3 and 4, but this is the minimum process to meet an intent for a v-model, call it a shallow v.

Try and maintain at least minimum traceability thru the stages, but can easily fit each on a tab on a spreadsheet and link cells across the phases.

Once you get a few done, they are really very little work compared to the benefits yielded.

If you can't articulate what you need, want, how to do and how to check, even if only one stage in advance as you go, then you probably aren't ready to start.

Sometimes it might be instructive to write one to throw away if you aren't sure how it might best pan out, then make the plan for the actual thing.

(comment deleted)
Whenever you work for yourself the key is to DO SOMETHING THAT YOU ACTUALLY CARE ABOUT. If you care about what you are doing, then you will hold yourself to high standards.

Another thing to think about is what part of what you are making do you actually care about. Code quality/idioms/dialects/languages? functionality? Look and feel? You might be so caught up in making a kick-ass gizmo that you completely forget to write "nice" code (for certain values of nice). THIS IS COMPLETELY OK- you are not unaccountable, you are just prioritizing.

Find your support network.

You know that you work well with other people, so find ways for other people to help you be accountable.

I have two thoughts.

First, I find this happens to me when I get busy. The key is doing the work "for me" before the work "for others". Wait up earlier and make my work matter.

Second, I used to get up from my desk where I met clients, and literally sit on the other side to write out what needed to change. And then I would get up and go back to the first side and get to it. That mental shift of looking the other way was very useful.

Just accept the tradeoffs and have fun either way.
Sign your code.

Every piece of code you work on should be signed by you. Your reputation gets attached to your work, fear of what your impression will be on someone reading sloppy code written by you should be motivation enough to write good code.

This is just one of the many useful tips I learned from the Pragmatic Programmer.

Sign your code.

Doing this attaches your reputation to your code. Anybody reading it knows to expect a certain level of quality given it is written by you, and you get the much needed motivation to write good code.

Amazing piece of advice I picked from the Pragmatic Programmer.

This is an incredible advice - from my experience I know it works, though I never formulated it this way (or even thought about this). Thank you for spelling it out!
Well that's what version control does, so if you remind yourself that when someone does a git blame later, and they see who wrote the awful code and dread your existence, you might want to fix it up.
Since you seem to care what others think about your code, it’s worth considering making your code public or find someone to share your pull requests with. Someone who occasionally reviews your code. You can even pay someone to do this.

Alternatively you can set up a linter that doesn’t let you push your code until it’s properly formatted and/or well-tested.

With regards to more higher level stuff such as setting and working towards goals, I find a “mastermind” group invaluable. It’s a group of like-minded insividuals who meet up regularly (offline or online) and discuss what they are working on. Having a structure in place to make sure everyone has to share their progress or lack thereof is key.

Shameless plug: I built WIP ( https://WIP.chat ) To solve this exact problem. It’s a community + group chat of makers where we actually share our todos and the progress we make. (this makes it very different from your typical group chat)

Of course you could also set up something similar yourself with a group of friends. A weekly Skype call with Google Doc. Etc. Whatever works best for you.

Edit: typos

Making your code public -- this works.

I open-source all my code by default, and giving it to the world in good quality is a big motivator to do it well.

It also builds you a nice portfolio which is useful outside of "work for yourself".

Hey, WIP looks cool but the price is a bit steep for something I might not use after the novelty effect wears off in a week (which is the typical problem with todos/productivity apps). I understand it acts as a barrier to the worst timewasters polluting the chat, but maybe there should be some sort of ramp...? Just my £0.02.
Nice example how price anchoring can be put to practice though ($300,000). So you're saying it didn't work on you? ;)
In my experience the novelty effect of a good productivity tool doesn’t wear off that quickly. It will become an indispensable tool in your workflow.

For most members $20/mo (or $150/year) is well worth the boost in productivity and connections made. That said, if you decide it’s not for you I’d be happy to refund the $20.

Ages back when the CEO of the company I work for came by he talked about somebody who worked in the communications department (where they tell the company everything happening). He told us how she organized her work:

Every day she would start with a white board or piece of paper and write down everything she needed to do for that day. The next day she'd take whatevers left and start the list over. Her goal was to make sure nobody ever could say they have no idea what was happening in the company, and honestly she did a phenomenal job at it: she wrote up transcripts, shared videos and pictures as well. You just knew what was going on: some people don't like reading: there's audio / video, or they don't like video: there's a transcript.

In any regard, what I personally do is I create tickets in whatever ticketing system I'm working with be it Jira, Trac, GitHub Issues, whatever system and I write out or take the tasks / stories / issues (man devs really need to pick a darn uniform term) and write out a checklist of what I need to do even if I go back to the ticket. As I'm working and I realize something new I need to do, I write it down. I check things off, or cross them off (to make it more obvious what isn't done in longer lists) and I found this helps me when I go "what was I trying to do again?"

When you are working for someone, or with someone else, you have their voice as authority, or as someone you are helping. Find what motivates you. This is similar to going to the gym yourself versus going with a personal trainer.

What are your expectations? What would go good or bad if you do or do not succeed?

How much do you really regret, what aspect of it do you regret the most? Identify one specific problem and seek to improve that specifically. Once you are good at that little thing, pick the next one.

I’ve seen tremendous improvement in my productivity lately simply by documenting everything I do in a spreadsheet.

Any interval of time with a discrete task, even if it’s answering emails, I note and occasionally provide supplemental information.

I’ve noticed that it’s helped most with clearing through lots of small tasks, because when I record my start and stop times, I feel less inclined to let “answered an email” take any more than a few minutes.

I still don’t have a productivity boosting solution for big complex projects with lots of research, except “lots of coffee.”

I struggle with this typically, but now have a loved one with a very serious medical condition that I need to help out regularly and everything has basically gone to hell at work. I've lost all semblance of strategic thinking and what I used to encourage as open feedback from my team now rings like overly entitled whining. It's a mess.
I can absolutely relate, but sadly have no advice, only sympathy to offer.
Thanks...I know there are lots of folks dealing with worse, at least i'm fortunate to have a good paying job with a compassionate employer to worry about. But it's still not always clear how to prioritize and when it's appropriate to start making decisions to reduce responsibilities and impact of away time.
(comment deleted)
Its okay it happens. You can compete with yourself on what you created in the past.
I don't code, but every time I work on a document I share it with someone within an hour of starting it. An hour gives me plenty of time to get a framework down and to put some thoughts together, and then I make it a public (internally) shared doc and ask others for their thoughts. Knowing that people are in there helps my complete the work quicker and often gets good edits and suggestions.

I also publicly announce a time frame I'm working to - I'll have this complete by 4pm for example.

Often you need far less time than you think to do a good job of a spec or other written doc, so saying 'next week' won't improve the results and will likely just mean it drops down my priority list.

I'm in a relatively senior role, but still need these 'hacks' to get the best out of myself.

If I understand your question correctly, then you are looking for ways to hold yourself accountable when doing work for which you are the main stakeholder. Does this mean a side project outside of what you do for a living or does this mean when working solo at your job? If it's the former, then you have at least two options: see the work through or quit and find something that excites you enough to follow the task through to fruition. If it's something that that you are working on solo for your paying job, then perhaps consider keeping to a schedule, asking colleagues that you respect to review your work, and to taking some time at the end of the day to identify why working by yourself produces the observed results. Does some rational (or irrational) belief lead to a dip in quality and goals?
See focusmate.com, I’ve been using it a lot. Video conference with accountability partners
I tend to write stories on a board the same as I do at work (actually better than work). I have estimated hours, etc.

Then I pull them into programs as I go, document throughly, and close.

This helps me later work through my progress, but has also helped me onboard people to help on my side projects. If you think you’ll be adding people, it’s good to just develop with the same rigor as work. It’ll help you improve and keeping yourself accountable

Maybe you are motivated by fear of failure/rejection?
I make public commitments that would be hard or damaging to myself to get out of. Basically committing to a deadline with real consequences.

(Example if I am interested in a side project, I promise to speak at a local meetup about my work)

I tried doing that once. My stress level went through the roof. Does the same thing happen to you? If so, how do you deal with it?
I once presented with softwaredoug before a room of 400 people on a project that we didn't quite get finished! Yes... massive amounts of stress as we approached the deadline and realized that we were not going to hit it. Nevertheless, b/c of the stress we pushed harder than we normally would have, we learned a lot more than we otherwise would have, and _despite_ not finishing, the talk was one of the better received of my career. (We turned it into a lessons learned talk. We had plenty of great questions.)

How did we deal with the stress? I think we just sat with it. It was always there. Over time you recognize it for what it is, an illusion. That doesn't make it feel much better, but it gives you a bit more control and equanimity. And being able to push through hard situations despite the illusory feelings of dread opens the doors for doing some really interesting things.

It's somewhat mitigated by the fact that Meetup talks are informal, and in general people like hearing what worked/what didn't work - not perfection. People are generally nice at meetups, especially towards side projects. Of course I'd prefer to show something amazing, but sometimes that doesn't work out :)
Oh hey! And you remember that time we wrote a book about a technology we were unfamiliar with? Shame driven development in action right there!
I like to log everything I do in a log file. I use OneNote for this as it is very easy to create checkbox lists.

I start the day by creating a new day title with the date and then add empty checkbox items for the things I want to get done, then I move over stuff from the previous day that I did not get around to yesterday.

And I also have a list at the bottom for stuff I need to do eventually but is not a priority, I review this list every morning as well.

One thing I've always wanted to do (and hopefully will) is to hire one of those cheap online assistants that can handle generic tasks for you, and both streamline what I have to do, and use them to keep me accountable.

Having someone confirm whether you've done certain things as their job seems like something that will help me, and even if it doesn't fully help they can reduce the amount of work I need to do to start on something which is helpful on its own.

I'd be curious to hear if anyone here is doing something like this?

This idea is intriguing. How much is "cheap" and do you have any recommended providers?
You can find some online workers here: https://www.onlinejobs.ph/jobseekers/jobsearch/category/offi... I've used some of the them for data entry, their price is really cheap. You can get some for as low as $2 - $5/hour, depending on what you need.
This feels very exploitative.
Is all your clothing made solely in US?

Bangladesh minimum wage for garment workers (1000+ of whom died when a poorly maintained building collapsed) is 95 dollars per month.

Does this make it not exploitative?
Good point, better to keep exploiting than be a hypocrite!
You are not exploiting the person making the garments, you are exploiting the fact that the cost of living in Bangladesh is far below the cost of living in a Western nation.

The fact that the standard of living in Bangladesh is also lower does not mean that you are exploiting the worker. In fact, in many cases (especially employing them directly online as the GP is suggesting) you are helping to improve their standard of living.

And that makes this less exploitative, how, exactly?

Whataboutism is not useful.

Maybe they are just trying to provoke some thought. They did not make any grand claims regarding levels of exploitation... Not sure why there is always someone trying to get ahead of drama and signal how woke they are despite there being no drama at all.
While I don't entirely disagree I have friends who work for < $5/hr (Eastern Europe) who would love to have the option to do this instead.

I also have friends who work for only slightly more on Upwork projects who would hate it if those jobs disappear under the premise that 'they are getting exploited'.

I'm not going to say this isn't exploitative to some degree, but I will say that this is similar to sweatshop conditions: potentially an improvement over what they were previously doing. It's hard to jump from sustenance farming to a large income.
I highly recommend you take a trip to the Philippines. Go out to some of the villages. There are young children starving. That $2-$5 is huge for them. College graduates work in department stores because there are not enough jobs.
Tim Ferris has an entire chapter on this in The Four Hour Work Week.
It's very possible this is where I've gotten the idea from and simply forgotten - thanks.
This might sound like a strange advice, but i have had you problem and found a way of being in my advice that has helped me in practicing to have high standard even in my own work.

It all started with reading the book called “The anatomy of peace”, and then reading the two other books from the same author, this helped me a lot and I then went all-in and took their coaching education, and now i am much less stuck and helping others get unstuck at the same time :)

Now Thyself

The first thing you have to do is to identify what is the real problem.

I don't know you, most of the people here do not know you personally so even if someone here is an expert on human behavior and productivity, is is way easier to identify the real problem if you are face to face with an expert.

Odds are that the problem(usually they are several problems) that you have is different to what you see as a problem(the consequence of the real problem).

This expert will read your body language, your voice nuances, your attitude much better than through plain text. This person could ask you about your life habits, that are super important(do you sleep , eat well, exercise, make love with your partner? Do you play and enjoy life?) and tell you what to do.

You probably are doing several things wrong, like working too much, not exercising, isolating yourself, judging yourself too harshly.

Over this you will probably feel anxiety that makes you procrastinate and do no work at all.

It takes a lot of reading, watching videos and practice over years in order to master productivity on your own. Just raw ideas and techniques are not enough, you need to whatch them in action, being applied to really understand. Specially watching masters.

And most important, you need to apply those techniques in your life, not just understand them. A mentor would be your external feedback if you apply the techniques or not.

Would you learn judo reading blogs? Or books? That would help, but a master will skyrocket your learning.

There are programs like "wake up productive"(from Eben Pagan) that you can watch as videos. There are torrents of it if you just want to know what is all about before buying.

A good psychologist could also help you a lot with any issues that you have while working on your own.

There are experts in programming that know the best techniques. Just ask them, make them your mentors if you can.

There are experts in human behavior. Ask them or make them your mentors.

There are experts in productivity...

Find people that are in the same place that you are, a support group. You can create it if it does not exist.