Ask HN: I am delivering mediocre work and feel awful about it. Should I commit seppuku?
When I started working for my company, I was ploughing through code at a good rate. A few months in, I was given a project that I never liked.
I don't know what an acceptable level of programming productivity is; I just feel as if I am 5-6 times slower than when I started.
Should I commit seppuku (this feels like the most honorable thing)? Should I renegotiate to take long unpaid breaks (this should revitalize me)? Am I panicking too much (I always panic too much)?
51 comments
[ 2.9 ms ] story [ 138 ms ] threadIf you are asking this all seriously, then yes, you are panicking too much. Calm down.
Talk with a superior candidly about the situation. Taking breaks is not going to solve things if it is the project you don't like. Something about what you are working on/with is what needs to change.
How about a new project, a new job or find a way to make this project interesting (i.e. use a new approach, a new language, switch tasks with someone else working on the same project). Anything!
Is your career progressing? Have you accomplished anything in the last year that you'll put on your resume? Yes? Good, continue. No? Consider other options.
Is the project proceeding? How does your manager feel about your work? Good? Maybe it's a perception problem on your part. Anxious? Perhaps you're not being applied well and should be moved to a different project within or without the company.
Things checked out OK so far, but you're still not happy? Perhaps you should consider trying to flip your role in the company to something that would be more beneficial to both you and the company.
My productivity plummets during certain phases of projects. If you're feeling that way perhaps you just need to get past a milestone onto a better or more interesting task.
Don't panic about it! Some corporate structures can withstand an almost malicious amount of unproductive behavior; in fact, managing the spectrum of productivity is in large part what corporate management is about. That said, don't abuse it -- long term it will definitely hurt you more than them -- but think of it as productivity insurance while you figure out how you can succeed.
"Well, I wouldn't say I was missing it ..."
That movie help motivate me to quit a boring cube job.
That's ridiculously self referential. It's not fun because it's something which is defined to exclude fun?
It's not "work", it's "creating value" and there's no rule about creating value requiring laborious, menial, maddening, un-interesting work. Particularly not IT/knowledge/computer-based work.
I don't assume it should be fun, I demand it should be fun. (Well, I don't, but someone else should on my behalf ;)
(Also, I know there must be troughs, it can't be peaks all the time. I'm just in the middle of some frustrating, dull, un-interesting work too)
Work, in the way I use it, neither excludes or includes fun. Whether or not my "work" is fun changes from 'assignment' to 'assignment', however it does generally include some activities which I do not consider fun. Luckily, a large part of the non-fun portions of what I do can be automated.
For instance, every time I start a new cherrypy app, there's a bit of stuff that I know I'm going to do - create a certain directory structure, possibly a database/tables, put some files in said directory structure, create a python file for the main app, etc.
This is boring, but can be handled easily by writing a small shell script that accepts a few options. On my machine, I have a few cherrypy apps that are mounted at any given time. When I create a new app, I just use my little script - and if I tell it to, it will open the file that runs the main cherrypy server on my machine, add the import line for the new app, and add the part to the server configuration that mounts it under a specific URL, by default the name of the apps class.
All of the steps handled by the script are generally part of the "work" I need to do, but instead of taking 20 minutes, it takes half a second. Granted, not every boring, menial task can be automated away like this - but a much larger proportion of boring, menial tasks can be than is found in other lines of work.
I think the problem I have is that the assumption it is based on is wrong. I can only speak as a representative of the millenials, but the motivational power you have identified is incorrect. I am not working off of the assumption that everything I do ought to be fun. Given the discussion I've observed here so far, this seems like a gross exaggeration of what has been said.
The primary motivation for me is to be productive and build things people find useful. It seems that this is the same primary motivation of the original poster, too. If things are uninteresting, if they are laborious, if they are maddeningly menial, but they need to get done, then I have no problem getting them done. If, above all of that, they are pointless or otherwise seem like a counter-productive waste of time, then I will get demotivated, and my productivity will slow. As a result of my productivity slowing down, I will become unhappy and start asking questions similar to that of the original poster. I like getting things done, and when I feel like I’m running in place, it begins to make me ask why I’m not just standing still. Your position on this seems to be that I should shut the hell up and just keep running, if I know what is good for me. Can you be so kind as to explain why it is good for me, or those who have ordered me to keep running?
Obviously, if fed with an endless stream of menial work, my motivation will suffer as well, but I suspect that is not where the original poster is at right now. If it was, would you still be yelling at him to suck it up and get back to work? At what point do you decide that there really _is_ a field somewhere else with greener grass? I hope you are not so cynical as to say the grass everywhere is indistinguishably parched.
Here's what you need to remember: the difference between a professional and an amateur is that a professional comes and in and delivers work they'll stand behind all the time, whether it's fun or not. You are always going to work harder and faster when things are fun. Things are not always going to be fun. If you're a pro, you're going to keep going regardless.
Obligatory essay (not that they've set the world on fire either, but the sentiment is good): http://www.joelonsoftware.com/articles/fog0000000339.html (Fire and Motion).
Best of luck.
Somehow I always thought that no-one else had this problem. Seriously.
I hope I can finally give up my youthful arrogance. I always believed that when people spoke about getting experience they meant learning more about writing software (and how I scoffed at that). But it's just as much, if not more, about learning how not to turn around and run away.
I eventually snapped out of it, but it took that whole week of just recharging my batteries to get back into it. I even managed to start working a few times during that drought and I always stopped almost immediately afterwards, never getting into the zone.
Maybe it's the nature of the work, maybe it's a common character flaw of people who do our work, I don't know. All I know is you're certainly not alone.
I also have this problem. It seems like every once in a while, I get stuck in this weird anti-productivity loop. I know I should be doing things, and I'll tell myself that I'll start in just a little bit or the next day, but end up not.
I've noticed that I can put a halt to this process quickly (hopefully this works for other people as well) by forcing myself to stop thinking about whatever it is I'm doing for a while, and do something creative or intellectually stimulating that is entirely unrelated to the problem at hand.
In my case, the "recharge" activity tends to be one of:
- playing musical instruments
- reading
- drawing / painting
- going outside and doing one of the above, or thinking about nature, physics, etc.
- studying (as in going through a book that I need a pencil and paper to make sure that I am understanding what's being shown in it).
In the case of studying, the subject matter doesn't have to be entirely unrelated to what I'm doing. I've been using Concrete Mathematics for this purpose lately. Studying, however, doesn't help if I'm stuck in anti-productivity mode and feeling like my brain's a bit burnt out though.
If I don't force myself to do one of my "recharge" activities, I remain in the "anti-productivity loop" for a while, at most a week or so.
It should be noted that the "anti-productivity loop" is a powerful force. It's easy to fall into, and it takes a bit of a force of will to break out of.
Perhaps it would be more appropriately labeled "state of negative-flow".
It's from weight training. I just heard of it a couple of days ago, but it's eerily similar. Also, plain common sense (but I needed to hear it). http://www.reddit.com/r/programming/comments/79fu6/7_ways_to...
Thanks for the tips, kaens. I will certainly keep them in mind in the future.
I think everyone goes through those phases, but honestly I haven't since I left my "real job". Whenever I find myself in a small rut, I just switch to another task or take a nap. There's always so much stuff to do at a startup - it's never ending work - that I always can find something else to work on in the intermediary. Being able to say that your website/blog/product literally gets better every day feels euphoric especially when talking to your investors, friends, family, cofounders.
I haven't worn a tie since I worked in a supermarket, and I sure as hell wasn't a professional there.
That doesn't mean quitting immediately (and potentially jumping into another bad situation).
Rather, start making inquiries (either internally, at other companies, or start your own) and see what else you could be working on.
Just don't accept the idea that "work/life sucks, get used to it" as that's the surest way towards becoming a drone.
Don't commit seppuku. That's an overreaction. Suicide should never be an option until you have exhausted literally everything else, and "everything else" is such an immense field that really, suicide never makes sense.
You have a choice. Either you keep what you're doing any try to find meaning in it, or you change your life and do something else. If you're not satisfied and have something better to move on to, then do that.
This is one situation where being a hacker is not recommended.
I had to do a search for this word when I read the post and didnt quite get what a moral suicide means.
http://en.wikipedia.org/wiki/Seppuku will tell you more than you ever wanted to know about this ritual >.>
Apparently, a knife to the gut, then slicing across is very painful. To end the pain, there's someone else that beheads you after you do that. Imagine if that person didn't make a clean cut, and went into your shoulder instead. Now, not only are you suffering a slow and painful death, you have blades sticking out of you.
If I were you, I'd look around for other jobs and see what else is out there. If there's another job that you really want to do, or you see a viable startup opportunity, jump ship. If not, buckle down and finish up the project. In my case, a friend from college IM'd me a couple months after I'd started feeling discontent, and said "We're starting a startup, and need a technical person. Wanna join?" I stayed long enough to get my current project into a sellable state, and then quit.
Some reflections in hindsight:
1.) My feeling of lower productivity was mostly a mirage. In LOC/day, I was almost as productive as I was in the previous project, it's just that more of those lines were boilerplate, and so I guess my productivity in function points/day was lower. Boss was relatively happy with my productivity, he just didn't like my complaining.
2.) In terms of it being a dead-end professionally, I was absolutely right. Actually, both technology stacks (Swing/Netbeans for first project and JSF/Facelets/A4J/Hibernate for the second) were dead-ends; overall job markets for both seem to be declining, and anything new that I'd start now would need a modern web framework (Django or Rails) and/or C++ WinAPI experience.
3.) 90% of products fail, whether they're done by a startup, a small company, or a big company. The only variable seems to be in how fast they fail, and how much resources they consume. So you should expect that your project is doomed and do it anyway; that's the only way to find out if it's one of the failures.
4.) There was just as much grunt-work for my startup as for my job, but it didn't feel nearly as onerous. I think this was because I knew that even if the product didn't pan out, I was building skills that I'd want to use in the future. For me, it's okay to work on a project that'll fail as long as it leads to one that'll eventually be a success. At the last project at my employer, I felt that not only was the product doomed, all future projects using that skillset would also be doomed. (This feeling was not helped when we e-mailed some mailing lists on how to do simple things like integrate other AJAX libraries, and the response was "It's not possible. In fact, the engineers here have recommended to management that use of JSF be banned for all future projects.")
'risky code sucks up tons of time'
i don't think i have ever been on a project when expectations could realistically have been meet if i did not already do something just like that.
the current project i am on, i was hired to work on a flash widget, and i ended up working on a java applet that had to communicate with JS, and the struts backend. there was a ton to learn, and most of the time i spent looking stuff up on google.
on other programing jobs i always feel more productive when i am not spending my days on google.
Well, unless the question is "I spend all my time sleeping and working out and I don't have time for a job and a life, what should I do?"
But that's not the question, so I agree.
I'm not saying my management style was exceptional, but their insight into the nature of work was: if the project bores the crap out of you, ask for two or three more. By working on the more interesting projects, you can save up willpower to tackle the dull-as-rocks first project. You might actually get through the first one faster.
You need to map your way out of this situation - demotivation (regardless of the cause) is bad for you and your employer. Persisting with it is unprofessional. If you try and 'suck it up' you will travel the path to burnout and damage to your health and career.
Try and identify the cause before you take the appropriate action - it could be boring/unsuitable work, a medical problem like depression or even something like anemia, burnout, poor diet/exercise, or a lack of fulfilment from other areas of your life.
That being said, that was due to my not feeling appreciated and feeling that I was being taken advantage of.
We all go through slumps. We're writers. Neil Gaiman just blogged about how he had to slog through parts of books and he would regularly call his agent and try to cancel the book so he could work on something else. He's not alone. We all do it.
You think Gaiman would blaze through a novel about the mating cycle of the South American Gazebo? Hell no! Well maybe he would, I can't really say.
Anyways... In the first example, I tried to make it right. I spoke with my boss and my boss' boss to try and fix the situation. While mine did not end well, you first need to communicate with your boss. The squeaky wheel gets the oil.
The second thing is to keep on plugging. So long as you're making progress it'll get done. It may suck and may not be your best code but it has to get done, it is your job.
Be strong my friend, you're not alone as this thread has shown you.
Seppuku!
Seppuku!
Seppuku!
Get it on video and sell it for $9.95
http://www.aaronsw.com/weblog/productivity
I remember pg saying that if he had uninteresting programming work, he would try to make it interesting by making a language design problem.
My dad's brother told him once that "Everything's interesting when you look hard enough." I've found that to be true so far.
But even if you find your work interesting at large, I think everyone has their cycles. It helps to notice how you got out of the last one, and what you did to get out of it. Even the coolest job and most interesting work has its lame parts that you have to slosh through.