I've spent around 34 years writing code so far. My last project was an online order system for a lunch restaurant. To get an idea what kind of problems they're dealing with, I started by working two weeks in the restaurant.
To my surprise I found that I actually enjoy delivering food more than writing code. As long as the customers get the food they ordered delivered in time, everyone is happy. And once I'm done, I'm done. No more lying awake at night going back and forth over some design decision and worrying about consequences from choices already made.
It's not as mentally stimulating, and I earn way less money, but I'm finding it harder and harder to find the motivation to go back to writing code.
I get this entirely. And for me, this is driven by broken feedback loops in software.
Some years back, I started a company with an excellent product manager, one very focused on actual user impact. One of the first things we did is build a tiny, cheap usability lab; every Tuesday we'd have 4 users in to try things out. We rigged it so engineers could watch the sessions remotely, and for the sessions we didn't watch, he'd share key bits. It was really satisfying to see stuff getting used, what worked, what didn't.
Later, as we grew, we still kept the user tests, but added on a slick system for experiments. All of us were involved in thinking about what to test next, how we could make things better. My cofounder was definitely the best at that, but we all made contributions. We all were engaged. We all paid attention to what we were doing for users.
And it helped that despite being a startup, we were big on automated testing and pair programming. When my mom got sick, I took two weeks off and everybody was fine without me. They carried on releasing a few times a day, trusting in each other and in the safety net we had built for ourselves.
It seems to me that the average development process, which is generally about building whatever people with organizational power want, is emotionally corrosive. It wears us down, because it isn't satisfying on a human level. Which, IMHO, makes it way less efficient.
Tight feedback loops that include everyone from the customer through to developers have been the key to success on every successful product I’ve been a part of.
It’s been difficult for me to reconcile these feedback loops and whole-team involvement with the current online push for asynchronous workflows. In my experience, the developers who want to isolate themselves at home or in their office, pull tickets out of a queue and submit a PR at their leisure were the least likely to succeed at improving the product. The developers who never hesitated to jump into a discussion or meeting with the rest of the team or get involved with the product planning sessions were the ones who moved the product forward the most.
Don’t get me wrong: There’s a time and place for isolated, heads-down work. Frivolous meetings and endless planning sessions must be minimized in favor of action. However, the current online mentality in favor of asynchronous work, minimal real-time in-person interaction, and strict “not my job” separation of developer/product manager roles is swinging the pendulum too far in the other direction, IMO. Everyone, from developers to customers, tends to be happier when they’re all included and active in the decision making processes.
100% agreed. This is my big fear about the shift to remote work: it can deeply exacerbate organizational pathology.
For what it's worth, I've worked with a couple teams that were remote and great at this, so it's not impossible. One was a small startup. The developers had worked together in person for years and were really well bonded. Once they added in some remote pairing, it was fantastic. The other was a Mozilla team where they put a lot of emphasis on close collaboration. Between the two, I have a fair bit of hope.
Screen sharing is a big deal when doing validation as well as usability studies. Random movement of the mouse and the tone of voice can tell you a lot about how the user is handling the new functionality.
Maybe one of the silver linings of this mess will be that people are more familiar with screen sharing software after this.
I hope that after a while you think about building some product for an audience you like. Your natural empathy and willingness to engage users make me think you'd be stellar at doing your own thing.
Depends a lot on your audience. In our case we were making a general consumer product, so we just advertised on Craigslist saying we were doing market research. You get a lot of dross that way, but my cofounder had a sophisticated screener questionnaire and ways to root out most of the goofs.
Definitely. I think it's worth paying well in comparison with other gigs.
Two screener tricks that I recall:
One is getting in a little market research. Add a few questions that you've been wanting to know anyhow.
The other is including plausible-sounding answers that let you reject liars. For example, we had a grid section that asked, "How often do you use these sites?" One axis was frequency, "several times a day", "daily", a few times a week", etc. The other axis was the name of a bunch of sites, including popular things like Facebook and Amazon. But we'd also make sure to include more obscure things, and a couple of entirely fake ones.
My wife does live production (AV) for big shows and concerts. It's a stressful job; for a lot of it, you're on tight timelines and have one chance to get it right. Any mistake you make is pretty clearly obvious to all of the people in the room. You plan the shit out of it ahead of time: one missing item on a truck can be a (pardon the pun) show stopper.
But like you said, at the end of the night, when the trucks are all packed up, you get to go home and never worry about that particular job ever again. If something went wrong, there might be a post-mortem the next day with lessons learned for next time, but it's over.
Some days I am thankful that I don't have her job. Some days I am jealous that she gets to walk away from it all at the end of the night.
As someone who has both coded and worked in restaurants for over a decade each, I assume that once the novelty wears off, you'll a) probably get start getting frustrated with restaurant life, overall and b) the lower income has its own long-term stressors that will grate on you.
I could be wrong though. If you end up just genuinely being a restaurant person, maybe occasionally doing some coding to supplement your income, that's fantastic. There are many things I loved about the restaurant industry.
A few years ago I picked up a dumb mechanical second job at a rental store where I worked ~20h/month after work an on weekends. I didn't need the money but I needed the feeling of truly getting something done.
When I left the store at night, every customer had been served, every piece of equipment had been cleaned, the money had been counted. I was just done. It felt great.
I solve problems every day, I never get done, every day its something new that needs fixing. Every year that passes I feel more and more that I'm just not made for this kind of work :(.
I find I like lots of "menial" work a lot better than programming. As long as it didn't wreck my body (I like doing construction labor but it'll destroy you) I'd much, much rather do that than programming. Food delivery seems like it'd be great, bonus if it's bike delivery. Clerking at a small non-chain retail business would probably be a great time (if the owners weren't dicks—always an important qualifier with these sorts of jobs).
A while back (I'd guess about 15 years ago, so suddenly I feel old), Jack Ganssle (http://www.ganssle.com/tem-subunsub.html) said he was selling his embedded tooling company, SoftAid because after doing it for so long, he had gotten tired of "pushing the same bits around."
At the time, I simply couldn't understand that. Sure, I hadn't been writing code as long as he had, but I couldn't imagine enjoying anything more than that. I absolutely loved twiddling bits and watching mechanical systems do what my code told it to.
Fast forward to now. I still really enjoy software/hardware/mechanisms/coding/design etc., but if I had to give it up tomorrow, I know I could find something I love just as much.
It's a really big world and there are a lot of sandboxes to play in.
It was their idea, and I was a bit surprised, but it felt like the right thing to do and for once I was my own boss.
The guy who's running the restaurant together with his wife is/was an engineer, he hasn't done any coding but he knows enough to be aware of the specification problem.
I'm reminded of that time I got an after-work part-time job at a higher-end sports store. At first they might not have wanted to hire me for being overqualified and leaving, but they had trouble hiring anyway so there I was. They provided a full week of training on textiles and other things I found fascinating. Surprisingly, it was actually quite enjoyable. I just talked to customers about products and things and there was really no preparation or follow-up after the day is done.
The only stressful parts were getting there on time after work (because I tend to linger at work doing that one last thing) and the parking tickets because it was so limited and some spots required top-up payments (before apps). I ended up in tennis-wear because a mature person giving frank opinions of how things look on people (mostly women shopping) seems effective. Anyway I lasted longer than most of the younger hires and gave it up part way through the winter because driving/parking in that was just too much. Maybe something like that but outdoors might be a great thing to try.
As The Little Prince would say were he a coder: you are forever responsible for the code you write.
Every new system an organization takes on requires maintenance, training, etc. This takes time from the coders and is frequently not taken into account.
My wife was reading our kids The Little Prince the other day when I was getting ready to leave for work. I really like that book. The movie they made for it is pretty good too.
Agreed. I’ve been developing at the same place for nine years. High growth company. You gain insight into writing maintainability that I don’t think is possible for folks that jump ship so often.
Good for you! You can always go back if you get the itch. Most tech changes too quickly to catch up with only at the cosmetic level anyway. For evidence, see any of the cycles of coders in new stacks rediscovering patterns from two stacks ago "for the first time".
Im on the opposite side. I worked at a restaurant for 12 years and it was the worst time of my life. I would constantly get called into work at 3 am due to random people not showing up. Inventory, dealing with 20+ people who don't care about the job. Terrible customers, and horrible people really left my bitter. To top it all off I was stresseed out of my mind and broke. Im a dev now and its deff stressful but doesn't compare to my days in a restaurant,plus I have some money now.Guess the grass is always greener
Yeah this feels very American Beauty, rose-tinted glasses. Kevin Spacey goes to work in a drive thru stress-free because he doesn't care about the job or need the money and is sick of responsibilities. Same thing here. Except we needed that job and had to be responsible because we didn't want to make $5.25/hr or have terrible shifts.
You're only there for 2 weeks, you know you're only there for 2 weeks and everyone knows you're not going to get the terrible end of the stick unless they're specifically going out of their way.
I delivered a lot of different food in high school and it honestly was one of the worst jobs of my career, I'd much rather work in retail or clean pools. All of my income went into gas and repairing my car. If I got a tip it was a few bucks and back then we had the 30 minute delivery thing that caused so many drivers to get into wrecks I'm pretty sure it was eventually banned or made illegal (or they all just dropped it).
Ah this was 20 years ago for me, I'm glad delivery driving has changed some for bigger/wealthier deliveries. I worked for tiny little pizza shops so they just gave us a shirt and a car topper and told us to deal with car insurance ourselves.
It is a relaxing job when it's going well and not rushed. I like driving around aimlessly.
To my surprise I found that I actually enjoy delivering food more than writing code. As long as the customers get the food they ordered delivered in time, everyone is happy. And once I'm done, I'm done. No more lying awake at night going back and forth over some design decision and worrying about consequences from choices already made.
It's not as mentally stimulating, and I earn way less money, but I'm finding it harder and harder to find the motivation to go back to writing code.