Hacker News new | past | comments | ask | show | jobs | submit login

Software is generally a winner-take-all market. Software has zero marginal cost, so the company with the most revenue can invest the most upfront into making a better product, giving it even more revenue. Furthermore, in most cases there is little incentive for customers to ever use the second best product in a segment. So when building software, you not only have to meet the customers needs, you have to meet the customer needs better than any competitor. If you produce a product that is half as good or improve the product half as quickly, you do not lose just half your revenue, you could lose all of it.

The second aspect of software development is that a developer working 40 hours a week is more productive than two developers working 20 hours a week. With the sole developer, there less communication overhead, less management overhead, and the ratio of productive time to time learning the system and understanding the interlocking parts is higher. This is the classic mythical man month problem.

The third aspect of software development is that directly measuring output and effort of an engineer is very difficult. So as a proxy, managers look for signs of passion and engagement. If you are passionate and smart, but are slow to implement some feature, management will believe the feature was simply more difficult than anticipated. If you generally are not passionate about your work, and are slow to implement some feature, management will think you are slacking and fire you. Creating an effective company requires creating a culture of passion and hardwork, and having one person only work part-time can decrease the morale of those putting in 40+ hours. Asking to only work half-time betrays a lack of passion, and could be a bad career move.

So the net result of these factors is that a company must work at maximum efficiency, and maximum efficiency comes when all developers are working 40+ hours a week. It is not in the company's interest to let you work only 20 hours a week, and it could indeed be risky if you bring the idea up with management.

I should also note that the above dynamic is not just the case in software, but in virtually all high paying jobs, from professional athlete to corporate lawyer to corporate executive. Virtually all high paying jobs have some sort of competitive, winner take all dynamic in the market at large (the winners being the ones who get paid well), and within the company, the high paid people are the ones with specialized, hard to replace skills, that have a large ramp up time to learn effectively (learning a large code base, learning a set of legal traditions, learning how to hit a curveball, etc, etc). Thus in order to earn the high pay you must work long hours, and you must work many productive hours on top of a base of ramping-up hours.

One way around this, if you want work/life balance, is to timeslice on much longer increments, like a couple of years instead of a couple of days. Put in the long hours at the demanding job for a few years until you have a shippable product and demonstrable, tangible successes. Then take a year off to travel, found a startup, work on an open-source project, volunteer, or otherwise decompress, using the savings you got from the high-paying job before.

For some reason, taking a year off to travel, volunteer, or experience the world isn't looked at in the same negative career light that wanting to only work part-time is, particularly if you have demonstrable successes at your last employer. It shows passion, engagement, and the ability to take responsibility for your own life, and many employers assume that will transfer over to your job performance at your next job. You're at a slight disadvantage in salary negotiations because they don't have to lure you away from your existing job, but you can make up for this by applying to many jobs (ideally through connections) at once.

I've heard it's also better on the "life" side of things as well, as you can throw your whole being into whatever you experience in your free time, and not just settle for the scraps you can fit around your job.

I've know a couple of people who did this, at even smaller increments that this... Worked 6-9 months, then took a similar amount of time off (to travel, pursue acting or some other endeavor, etc). If I had my twenties back, I'd give this a shot.. though I suspect I'd end up spending the 'off' time accidentally building a software company. Whoops.

I can vouch for this.

I took about a year off to explore alternative careers and personal pursuits after working at a tech firm for 3 years. I returned to the industry and was recruited within a few months back into a spinoff from my original firm.

Of course, this presupposes that you maintain your skills, and that you don't burn any bridges when you leave.

This is exactly what a lot of companies and managers will try to tell you.. But it is a bunch of nonsense.

An actual 40 hour a week programmer is an awful asset, if we do more than ~20 hours of work a week the rest is bad code and the shit we are to tired of thinking about to fix/automate. The ones who work 50+ hours have forgotten that things can be automated or even pondered before diving in, or that are powerless to fix the accumulating breakage of their group/project/company.

That being said, a 20 hour a week engineer who is partying the remainder probably isn't great either.

I currently work 3 days a week, but I spend about half of the remainder studying things that interest me, mostly in CS or physical sciences. A few years back, I worked 2.5 days in tech support, while finishing up my BS.

I would say live and breathe it while you are there, you should be senior/mature enough that you don't require mentoring/sponsoring to do your job, be a bit humble about your immediate "importance" and handle those longer term pains, and have a nice (but unapologetic) explanation for how you spend your other time.

If overall I spend less than 25-30 hours a week thinking about the field then expect to gradually feel rusty. But then CS is not a good field to mentally slow down in.

Its true that if you make it rain by working 20 hours, you get to be the superstar of the team. But that's not possible, at least not in 90% of the scenarios.

Office as we know it, is more than a workplace for an individual. Its a place where people meet together to collaborate with each other. Its also a social network where people eat lunch, drink coffee and talk about life, and such stuff together. If you are not there 50% of the time, unfortunately I don't see how you will fit in with everybody else. Nobody likes calling and discussing things over phone/chat/email what could easily be discussed by meeting at ones cubicle and talking over it for 5 minutes.

Coding might be your 20 hour job, but the other 20 hours is many other things apart from coding. And trust me that is equally important for your career progression.

I respectfully submit that you are 100% wrong.

At least, you're wrong in stating your opinion so forcefully in the second two paragraphs after a (to me) flippant caveat in the first.

The important question isn't whether there're 10% scenarios where company cultures are actually meritocratic, but how much the proportion changes over time.

I'll submit my anecdotal evidence that it is growing. And my career continues to grow. In fact, I would say that the work culture at my company is why my career progression has grown. I'm invested and happy with my situation and therefore work smarter by not overextending myself in the ambition of being there at least 50% of the time just to be there so I can fit in.

In fact, I work remote most of the time and so do I good portion of my colleagues.

>>I work remote most of the time and so do I good portion of my colleagues.

That is the reason why working remote is helping you. Since most of your colleagues are working remotely too.

In Rome, behave like a Roman.

When I say a good proportion, I should clarify that I mean anyone can work remote any time that they feel like but most people still show up at the office because they enjoy being at the office working with their coworkers. 99% of the time our clients are remote too.

I'd submit that remote work is neither helping me nor hurting me. Because the company culture recognizes the value of intrinsically motivated employees, we ensure that employees are happy. Working remote is one of the manifestations of that focus.

Specifically, working remote is orthogonal to my success in my career specifically but fundamental to my happiness and willingness to work towards a successful career in the first place. Does that clarify where I'm coming from?

> If you are not there 50% of the time, unfortunately I don't see how you will fit in with everybody else.

I am not there 100% of the time and I fit just fine.

> Nobody likes calling and discussing things over phone/chat/email what could easily be discussed by meeting at ones cubicle and talking over it for 5 minutes.

I like email, wiki, IM and issue trackers. Gather your damn thoughts and put then in writing. Dropping by in-person or skype calls are for stage setting. And what makes you think I like being interrupted by someone for something that can be said in the IM?

Oh, and it wasn't any different when I was holding a day job.

I checked your profile and you are the founder of a start up :)

Of course since you are a hacker yourself so you are likely to be open to such a environment which you yourself like working in. But I'm talking of a general corporate job kind of a scenario where a lot of people work together in collaboration. Things go a lot smoothly when every one works together, of course they can go smooth either way too. Provided everyone co operates, especially the managers.

The second aspect of software development is that a developer working 40 hours a week is more productive than two developers working 20 hours a week.

I am unsure that this is true in all circumstances.

So the net result of these factors is that a company must work at maximum efficiency, and maximum efficiency comes when all developers are working 40+ hours a week.

I know for a fact that this isn't always true - since I've repeatedly seen teams of developers doing 45+ hour weeks become more productive by every metric we had to hand by dropping their working week to 40 hours (with only about 6 hours a day of that being coding).

I talk about this in a little bit more over here before (http://news.ycombinator.com/item?id=3883362)... copy/paste below.


There is something deeply broken about equating hours to productivity.

It's been my experience that folk are very good at deceiving themselves about their productivity (myself included :-)

One team I worked with had a serious problem with overtime. They were putting in stupid hours and it was showing in the quality of work going out. So I ran an experiment where we all agreed to work "normal" hours for six weeks.

I was "only" working about 45 hours a week at this point, when other people on the team were regularly working 50-60. I was relatively young, didn't have any family pressure, enjoyed my work and felt very productive doing those hours. I wasn't one of the people with a "problem" as I saw it. We were running the experiment for the other folk on the team.

In the experiment we dropped to a 40 hours week (6 hours coding per day, 2 hours for breaks, meetings & lunch). After a couple of weeks adjustment my productivity went way up. I also felt a lot better in myself - generally sharper and more on the ball.

People seem to have quite a wide bad of "this feels okay" that subsumes the much narrower "I'm performing at my best".

Also people don't jump from a 35 hour week to 60 hours a week. It creeps up a few minutes at a time as pressure increases on the team. People have enough time to adjust to it being "normal" and don't notice the drop in productivity that goes with it.

Currently I work roughly 25-30 hours a week and am just as productive by all metrics that I have available to me as when I worked 40-50.

I would strongly urge people to experiment. Pick some metrics, try working shorter hours for a month, see what happens.

(The only caveat I would add is that with folks doing silly hours - anything over 50 I would say - there is often a couple of weeks where things go to hell as the body adjusts. On the team from the story practically everybody caught a bug and felt crap for the first week or so before productivity rose again).

Agreed - when I started doing contracts solo, I found that I had around six hours of code in me, pretty much all in the morning and early afternoon. The last 2 or 3 hours I spent on "business" issues or writing scripts to help the business stuff or studying. In the middle of work, I'd take a 90 minute talk break or lunch break. My day was basically around 8:30 to 6:00. It was a long day, but not tiring or stressful, and things got done really quickly.

The real productivity killer, for me, is driving a lot. That really sucks it out of me. Face-time too. I could do a few meetings a day, but that's it.

I'm from India , wanted to ask how this logic applies to companies supplying IT Services instead developing original products.

This is a very well thought out and reasoned response. Thank you.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact