Recent experience at a fairly young startup has shown me that open office culture has also started to breed a very different type of programmer.
People will often be pairing nearly all day long, any claim that you need a moment to focus and think about a problem is met with perplexity, every idea should be shipped to prod asap, while tests exist the idea of performing basic QA/manual testing on your own work is only used in the most extreme cases.
Contemporary startup engineering culture is best described as frenetic. It certainly feels hyper productive (if not extremely exhausting for a more traditional, introverted programmer), but I've started to notice a fairly large amount of that "productivity" is fixing mistakes a more focused programmer would have avoided.
I suspect the long-term impact of open offices my be even more deleterious than it's impact on the focus of individual programmers.
I was raised by the focused type of programmer, and modern startup culture is horrifying to me (and him). I have left that world and now am solo engineer in a non-profit where I'm responsible for a list of results, not a pile of Jira tickets someone made up to look busy.
That sounds like my ideal job. The longer I've been a developer, the more I've come to dislike work that doesn't address problems faced by end-users/the org.
I couldn't be happier. I am the in-house expert in my field, I replaced an agency that was far more expensive and incompetent, and I have great hours (9-4:30!) and benefits. Oh, and I'm fully remote in an org that's been remote since 2013.
> .... a fairly large amount of that "productivity" is fixing mistakes a more focused programmer would have avoided
Holy cow this hits home. I've been on a number of teams like this going back years (decades) and ... I just don't get it. Had I been 'allowed' another 30 minutes, or an hour, or a day, on problem X... we'd have avoided weeks of unraveling problems later. But... no - gotta keep pressing on, hitting those pre-defined deadlines at all costs.
Deadline Driven Development is foolish. Deadlines are good to have, but you cannot force good functioning software if more time is needed to craft it. You get what you pay for, you reap what you sow. If you just want to churn out code in unrealistic time spans instead of extended efforts, you're going to get a bad product. Instead, cut things that can come out later, have developers focus on polish. I would rather a very stable and polished MVP over a rushed dumpster fire as a dev an end-user who has seen some awful.
As a former programmer and now EM, I agree with this. Open offices definitely felt a lot more productive since everyone was always frantically working and communicating. I think people actually have gotten more done since WFH started, though.
This is the crux. There are people who want this feeling, at all costs seemingly, despite no data backing up the assumption that returning to the office makes a materially positive difference and produces positive outcomes.
The fact that working from home means I avoid wanting to put a rifle round through my skull during a commute to the office is pretty strong data that return to office doesn’t work for me
The sweet spot is don't force people to work a certain way. I was in an open office place before 2020, was remote friendly, we mostly would come in except when we needed personal time or whatever, but if I wanted to focus, I'd pop in headphones and crank out code, as would anyone else. If I wanted to peer program I could, and if anyone wanted a quick laugh, we'd just talk for about five minutes, because sitting staring at code non-stop in an office environment can be draining too. I prefer WFH, and I can peer program with devs by calling them on Teams and screen sharing, but if I have to be in an office, it wont make much different to me, just the risk / wasted time from the commute.
I love WFH for this. It’s so much easier to plan my day according what best works for me like focus moments and current environment. We still do all the meetings and pair programming is so immensely better over a call with screen sharing.
All the energy I’d normally expend on “shielding” myself from the office environment can now go into focus and actual creativity.
I think the sweet spot is, let teams decide how often to meet if you're going that route. For example, last place I worked at we were mostly from various parts of the states, so we were considered remote, whilst others lived nearby and had to commute. I think managers should decide wholly how their teams work. If managers need to be onsite, that's reasonable too, though I would assume not always especially if their teams are remote.
I feel like the less technical teams might benefit more from face to face, but developers, a lot of us do our coding at home before our careers even start. It is a hacker's career path.
Not just startups.
I was once hired as a contractor for a major bank in Toronto who were desperate to ship a product, which was way past its promised delivery date. The AVP got an idea to put all of us in a conference room huddled around a conference table , because obviously us lazy programmers were slacking off in our cubicles and the crappy almost daily changing requirements were not to blame. The entire team began falling sick one by one (pre covid era). This was also where I learnt the hard way that it is possible to get the flu twice in the same flu season. It was a hilarious mess. Curiously enough the AVP got promoted to VP the next year.
And the following year, the whole office switched to open office plan. I think the ability to micro manage people and the power trip for managers explains this logic.
My experience with Canadian “business man, doing business” culture supports this.
Their lives are mostly modeling what business is supposed to look like. Nevermind it achieves nothing.
When I go home to downtown Vancouver I’m startled at damn good-looking everyone is in their suits and pomade-hair, in great offices exuding power and dignity. But their GDP per capita is crap compared to us schlubs in Seattle.
They must have learned performative-salaryman from the British.
Those programmers just don't get that they are part of a managerial Broadway musical. They won't even talk, and if they do not talk, how can they siiing.
Chat gpt write me a musical about micro management in software in 3 acts.
I once had a manager consistently try to pressure me and a few other developers to work in a "war room" setting to complete a project that was slipping past the deadline. He wanted to be part of it too, despite being non-technical and consistently slowing us down with impossible prescriptive solutions. It took a non-trivial amount pushback from all of us that that was the least productive way to get the project completed. He was later laid off.
Inside Facebooks' offices in Seattle circa 2019: "Overcrowded pig sty" is an accurate description. The smell was overpowering. Two pairs of bathrooms for an entire floor of developers packed shoulder to shoulder in an open plan hellscape.
I actually really loved the Dexter building. Yes it was all that, but I’m an extrovert and some part of my work day needs have been unmet for 4 years now.
Open plan offices took off in larger companies in the mid-2000s, and I think it's a classic example of a cargo cult.
Executive management looked at the handful of hugely successful startups who had open plan offices and thought, "It must be these open plan offices, that's their secret sauce! We just need to copy that and we'll be successful too!"
...ignoring survivor bias, because for every hugely successful startup who did open plan out of necessity, there was a big graveyard of startups who had the same practice and failed.
The awesome thing about modern programming culture is that rework due to the initial thing you shipped being rushed and shoddy actually looks really good on Tableau. Because you can assign more story points to fixing all the mistakes you made during the last 1-2 days of every sprint.
Bugs and unintentional design deficiencies get zero story points at my job. It's actually something I fought for because it's faux-progress - it's work that's actually a part of the original (likely underestimated) story someone already earned points for.
Everyone has a different take on story points, but the original idea was for them to record _effort_, not value.. more story points are actually worse. Delivered value is better. So digging a ditch and filling it in would get a bunch of story points but have zero value.
But managers want to look at the numbers they have, which is story points.
There's no such thing for us. We don't work in "sprints". We have a giant list of things to do. If you need something to do, you take something off the top of the pile and do it. When you're done, however long it takes, you take another thing off the top and work on that.
Yeah, this definitely gets at something. There's a sizable (or just noisy?) contingent of devs who prioritize activity above actual quality because quality is hard and not immediately measureable (supposedly). And it feels designed to be overtly anti-intellectual, as if the act of engineering is a mostly social act punctuated by the annoying demands made by the compiler, the runtime, and customers.
I suspect it's championed at some places because you're "leveling everyone up."
Is anyone trying to hire only introverted, spectrumy, possibly older developers for their startup? Seems like it could be a big competitive advantage if you have smart managers and don’t do foot-guns like open-plan and pairing.
People will often be pairing nearly all day long, any claim that you need a moment to focus and think about a problem is met with perplexity, every idea should be shipped to prod asap, while tests exist the idea of performing basic QA/manual testing on your own work is only used in the most extreme cases.
Contemporary startup engineering culture is best described as frenetic. It certainly feels hyper productive (if not extremely exhausting for a more traditional, introverted programmer), but I've started to notice a fairly large amount of that "productivity" is fixing mistakes a more focused programmer would have avoided.
I suspect the long-term impact of open offices my be even more deleterious than it's impact on the focus of individual programmers.