Ask HN: How to keep yourself accountable?
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 ] threadEven 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.
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.
You know that you work well with other people, so find ways for other people to help you be accountable.
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.
Or real people. Ha!
https://en.wikipedia.org/wiki/Rubber_duck_debugging
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.
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.
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
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".
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.
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?"
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.
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 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.
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
(Example if I am interested in a side project, I promise to speak at a local meetup about my work)
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.
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.
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?
Bangladesh minimum wage for garment workers (1000+ of whom died when a poorly maintained building collapsed) is 95 dollars per month.
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.
Whataboutism is not useful.
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'.
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 :)
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.