Hacker News new | past | comments | ask | show | jobs | submit login
Focusing on Developer Happiness with Humane Development (fogcreek.com)
93 points by GarethX on July 29, 2015 | hide | past | favorite | 27 comments

First off, I saw Ernie present at this years Railsconf and it was absolutely fantastic. Definitely go watch his talk on this very subject.

Secondly, over the course of my 16 years of software development, I've found that when a I get treated less of a human (e.g. boss is barking orders, denied vacation, etc), that most of the time, these issues are rarely directly confronted. These confrontations create mental roadblocks in my head; all of the sudden I'm less productive/creative, lethargic, generally less excited about my work.

When a boss cracks the whip for employees to "work harder, faster!", it results in these subtle, mental withdrawals that are hard to pin down but are definitely costing the company money. Internal resentment results in a subconscious "fuck you" that most bosses may not even realize is occurring.

Nice topic.

There's a lot towards treating people as human and Most of my distaste from scrum in many implementations was because of shops implemented in such a way that I felt like I was in kindergarten. The process wasn't always to blame, but a process can make things inhuman - often done in a way to discourage design, table neccessary discussion, de-prioritize architecture, or assign tasks arbitrarily.

The empathy and trust part is key, and they lose meaning the second they are framed on the wall. I wrote a bit (http://michaeldehaan.net/post/115291819627/the-management-le...) about how I think most conflicts (i.e. politics) are from mutually conflicting priorities and things might get easier if people tell everyone what their mutual conflicts are and what constraints they are operating under and remember they are all in it together.

Once people don't talk about these things, they build up walls (and false assumptions about the other person) and it's often too late to repair.

I have a bad habit of opening tons of links and then when closing their parents not knowing where they came from but that article was so good I had to backtrack and see where it came from, I really enjoyed it.

Now and then (not nearly as often nowadays) I come across really great blogs that I'd like to read on an ongoing basis and I think I used to use Google Reader or something until they killed it and then I just stopped - is there something comparable nowadays, and do most blogs support some common protocol?

Thanks! FWIW, I picked Feedly to replace google reader.

It has a decent phone app and also the web page version. There are probably some other good ones.

There's a term in German organization psychology of "Innere Kündigung", internal termination, that fits the phenomenon rather well. Unlike formal terminating your job, you're still around, but from a psychological point of view you might as well leave.

Wikipedia didn't link to an English term - I wonder if there is any established term of similar effect.

"One foot out the door"? "Mentally absent"? "Checked out"? Whatever it is, I'm familiar.

"Phoning it in", too.

Working out the clock, is one that I'm familiar with. Although it makes more sense when you work in an hourly position.

Not engaged.

This article touches on some ideas about developer psychology also present in David Maister's book Managing the Professional Service Firm: basically that many professionals, whether in IT or law/accounting/consulting/engineering/etc, share a desire for excellence, recognition, and autonomy. There is a lot more in that book that applies very well to programmers, in my opinion.

I also like the point about being skeptical of named development processes. The ancient writer Galen advised learning from all the schools of philosophy but belonging to none of them. I take the same approach to software development methodologies. The only risk there I think is that "agile" becomes just another name for chaos. If you have pathological culture, it might be better to pick a named process (any one!) and adopt it. But if people are "humane", that is hopefully not necessary.

"There are four key values for Humane Development. They’re empathy, honesty, trust, and autonomy... Developers, they may feel, especially the autonomy piece, they don’t have a lot of control over in their current job. What can they do? Really, only the last one of those four values, the autonomy piece, requires manager buy-in, and even then not a ton."

While this sounds nice in theory, many developers just don't have enough power in their workplace environment to really put these values into practice by themselves. They really do need buy-in and support not only from their managers, but from their coworkers as well. (How many of us have worked with the "cowboy" on the team, who looks like a hero to management while creating problem after problem for his coworkers? Or the product designer who doesn't want to let anyone else have input?)

I realize this is controversial and might not make business sense, but one humane policy would be to give your senior developers tenure and then never fire them for any reason. It would greatly reduce their stress levels. Also it would reduce the chance they'd seek another job.

I worry about my company going out of business more than I worry about getting fired...

Why not make it illegal to fire everyone? That would certainly be even more humane.

Saying a statement like that "probably doesn't make business sense" is a bit of an understatement.

The EU system is generally that you can't just "fire" people, you have to have a reason: either documented underperformance or misconduct. You can make redundancies by eliminating positions, but again this is subject to consultation and fairness rules.

If they did this company would be much,, much slower at hiring people and wouldn't bring people on till they knew they could always pay them. It would slow down company growth a huge amount. I doubt this will ever be a thing at least in the US.

Well making it illegal is less humane to business owners and goes against the concept of property rights. Who owns your business and sets policy, you or the government?

Tenure might make business sense because it would give employees a great incentive to not leave for positions at other companies.

For a product company, perhaps this would make sense (de facto if not de jure) for "the R&D department".

For a consulting shop, tenure sounds a lot like "making partner". Personally I would like to see more development consultancies adopt a partner/associates model.

Agreed on the consulting shop idea - am doing that for my little shop in rural NSW, using a similar structure to accountancies/law firms.

Toyota had a policy of not laying-off permanent employees for many decades after layoffs during the 50s (see e.g. [1] and the "Toyota Way" books). It is perhaps interesting to consider how this fits with some of the other ways that Toyota is run. E.g. Toyota has a culture of continuous improvement and elimination of waste in processes -- and it is very likely that employees will be more far more receptive regarding initiatives that could automate away or eliminate some or all of their work if they know that they will still retain their jobs.

[1] http://www.leanblog.org/2009/01/report-toyotas-first-layoffs...

edit: that said -- i do not think it would be a fantastic idea to decide not to fire employees for any reason.

Intermediate solution: you could just buy them unemployment insurance. Or write into their contract a much longer paid notice period. This is more common with executive-level staff, who are difficult to get rid of without a "golden parachute".

I wonder how many senior developers worry about being fired?

Well certainly it's in the back of a lot of people's minds. Performance reviews, stack ranking, layoffs to maximize corporate profit, and such. Tenure would be a huge incentive for people to work and stay employed there. I suppose it's too radical for any company to actually make it a policy.

In my neck of the woods, there are so many software jobs, that only those worried about ageism (a real problem), or those with increasingly irrelevant skills may be worried about work.

It's still a problem if your social world, project goals, skill-set goals, personal finances, or daily routines go into turmoil because some executive or middle manager decided to let you go for whatever reason. Even if it never happens, the possibility of it is stressful to some people.

I know that the possibility of job loss is stressful to me. Only a year or so ago I was only making a third what I do now, and I'm not even making 6 figures now. I can hardly bear the thought of having to go back to making so little, or even worse making nothing and not finding a job.

Mix in not having a degree and my spouse being saddled with a pile of student loans just out of school and you can probably see why.

Applications are open for YC Winter 2022

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