4 ms·
My current company, a startup, has an even split of developers, half under 30 and half over 45. I'm one of the old guys. The development environment and approac
by ijreilly 15y ago
My current company, a startup, has an even split of developers, half under 30 and half over 45. I'm one of the old guys. The development environment and approach, mostly set up by the young guys, is pretty modern -- lots of open source tools, hosting on launchpad, test-driven development, code reviews, all developers in one big open space, everyone does everything (as opposed to developers doing development, testers writing tests, build engineers creating build infrastructure).
The young guys seem to thrive in this setup. It's driving me nuts.
I am most productive when I have a problem to solve and I can immerse myself in it for hours every day, days at a time, without interruption. But now I have to do timely code reviews for others. I also have to respond to reviews of my code. The encouraged way of working is to commit small, reviewable pieces, but then each commit involves several interruptions, and it's difficult to go on to part 2 while addressing everyone's concerns about part 1. The infrastructure is problematic, because no one actually owns it, so there are more interruptions to deal with problems there.
Everyone has an IRC window open, and while there isn't too much social chatter, there is a distraction every time that a message arrives. (I hate IRC. I was forced to it in my last job, when people would IRC my officemate to get hold of me.)
I recognize the benefits of some of these practices. Code reviews do catch problems. (On the other hand, a code review often acts as a substitute for a design review, so we actually end up reviewing and maintaining bad designs.) More people know more of the code, and we avoid problems created by a guy going into a cave for weeks at a time.
But there is no denying that this style of working really makes it difficult to concentrate, at least for me.
- sehugg 15y agoI like to choose days in which I plan to be distracted, and days in which I plan to concentrate. During the former type of day I fix bugs, talk to people, do odd chores. During the latter type I stay home and turn off the router, and try to get some detailed design accomplished.
- saraid216 15y agoIt'd be worthwhile for you to discuss and argue the process in your company. Having worked in startups like that, there will be times when developers will say, "I need some time without distractions. I'm going to be way over there; please don't disturb unless it's a serious emergency." As far as I've seen, people have been completely understanding of this. Discussing it might not work if your boss/coworkers aren't good at grokking your needs, but their priority should really be to enhance your productivity the way you need it enhanced, not to force you to conform to their style.
- MartinCron 15y agoI am most productive when I have a problem to solve and I can immerse myself in it for hours every day, days at a time, without interruption. That's what's most productive for you, but it might not be what's best for the organization as a whole.
- deleted 15y ago[deleted]
- godDLL 15y agoWould you care to giv an example of how that works? I'm having a hard time visualizing such a scenario (unless your department's job is to stall).
- MartinCron 15y agoSimple example. It may disrupt my flow to help my colleagues solve problems, but it may save them hours of time if I say "oh, I already did that here..."
- mattgreenrocks 15y agoI'm a young guy who works the same way you do. The insights I have after a few hours of hard work are worth the increased mental energy required. (It can be exhausting, and I don't want to talk to anyone after I'm done.) The downside is, as you've said, very few people seem to even attempt to focus for long periods of time. I think a big part of the problem is the obsession with collaboration, as the article mentions. I feel it often leads to more and more 'fake work,' where employees deliberately work in an unfocused manner to avoid real work.