Live data from Hacker News

Ask HN: What company environment has enabled your best work?

news.ycombinator.com

121–130 of 200 posts

Re: Ask HN: What company environment has enabled your best work?

#121
No company at all.

My best work I've done between 5:30AM and 7:00AM on my home machine before I got ready for work. The code I have created there runs hundreds of websites and causes me less than 5 trouble tickets a year.

My home computer sits in a mud room full of boots and heavy coats where no one bothers me first thing in the morning. It's a littler cooler than the house. I drink tea and espresso. There is no phone, or IM, or anything too distracting (the occasional woodpecker on the gutters).

My home computer is from 2009, only the video-card is upgraded. I run Windows 7. I take a long time and tinker to figure out how things are going to work. No rush. I build logging and error handling first, then functionality. No users requests or specs from management. No influence on direction from management. Management gets (mostly) finished code. In every case so far they didn't know what I was doing and I presented the solution once I felt it was solid.

Somehow I get away with writing no documentation.

I target good. Perfect is truly the enemy of the good. I write code I can hand to juniors with a hour or two of explanation or that seniors can pick up and use and ask minimal questions. No rocket science. This has made it so I don't have to support developers, either.

My one mistake, or maybe, regret, is writing things for me then giving to my employer for free (I do take company time to integrate it into the stack). These solutions have made my professional life invaluably better, but I sometimes wonder if if there was money to be made. But then, I have enough money to live okay, so I'm not too worried about past opportunities lost.

Re: Ask HN: What company environment has enabled your best work?

#122

Earlier quoted context omitted.

+1 to XP. Pairing removes many barriers to development: * built-in code review * knowledge sharing: removes silos * helps avoids overengineering (few pairs have the same overengineering idea, so you tend to settle on a decent un-overengineered solution) TDD, which I'm not fully convinced on, acts a clock for pairs: one person writes a test, one person writes the implementation, flip roles, repeat. Other XP practices:…

Alternatively: - code reviews as part of a pull request system - knowledge sharing - design sessions for features to make sure nothing was missed and architectural overviews with wiki documentation. - avoid overengineering - again architectural “previews”.

My experience is that PRs quickly turn into a chokepoint which breeds delays and rework. Genuine bugs are rarely found, almost all the feedback is idiom and clarity -- valuable, but I can get the same feedback synchronously from a pair.

Note the reference to frequently committing to HEAD. That's not an accident, it encourages everyone to rebase frequently, keep changes small and to surface problems almost immediately. Whereas PRs quickly go stale and it turns into a game to try and get your PR in first.

Re: Ask HN: What company environment has enabled your best work?

#123
post #51

A top-notch VP of Engineering who knew when and how to reduce scope (because he was an active contributor to the code base) and was also one of the best coders in the room. 1) Pair programming, with the VP stopping by every couple of days asking "where are you guys stuck" and would actively try to solve our problem. 2) Story prioritization - each PM would write product stories for the backlog in an effort to get them…

Can you explain more about how/when he reduced scope?

Re: Ask HN: What company environment has enabled your best work?

#124
Amazing it has been this long: back in '91 I was working for Philips during the development heyday of CD-ROMs. I was in the CD-I division, basically CD-ROMs with a special file format for streaming media. A Dutch executive was sent to the States to "show the yanks how to produce" because that division had only managed to pull off production disasters to date. Of course, the American management wanted this guy to fail, so he was assigned a tiny team of 1 staff developer (me) a medium skilled contract developer, two graphic artists, and two production assistants. We were all recent hires, and were given 30-days to produce a product that all other productions were typically given a year. This Dutch guy was a gift from heaven. He collected us into a small office suite, with programming, art, and editing each in separate rooms of two, a shared space each opened into, and best of all, people had to travel through his office to get to us, so people could not bother us without his knowledge. But the real key to his management style was an idea he called "interfaces": he believed people did their best work when free, but working towards a well defined interface that their work hands off to the next person in a production flow. As long as you respect the needs of the people before and after you in the work flow, everything goes smooth. And that is accomplished by teaching those before and after you the importance of your work and why it is critical to the projects flow. This idea sounds simplistic, but it embeds "care of process" where, and only where, it is required. Needless to say, our 30-day deadline was met, the production team went on to create a fairly big award winning series of "Ken Burns style" documentaries, and that Dutch executive graduated to become the CEO of global Philips: J.P. Isbouts.

Re: Ask HN: What company environment has enabled your best work?

#125

My best experiences, as I think about it, tend to have these patterns: - No Slack for non remote Slack is cool, but I remember thinking that if I needed to talk to someone, it's over email or in-person. This really encouraged face to face or email conversation. There was also Skype for remote workers, but if you're not doing remote, you could kill Slack. Now that I think about it, Slack is more of a vitamin than a pa…

> I had the best time ever just sitting in meetings on Tuesday mornings to demo everything in person then do code review with my CTO after. Talk with the whole team including marketing on what we'd work on. I loved it. No agile, was completely in the know and performing.

I know I'm discussing Scotsmen here, but: what about this is not agile?

Re: Ask HN: What company environment has enabled your best work?

#126

My first software engineering job was with a big aerospace company about 20 years ago. Back then, budgets were big and the culture was completely different. Even the lowest peon had a huge cubicle with lots of desk space and privacy. Standups were not a thing and Agile wasn’t on the radar. We had lots of time to do anything we were assigned and never had to do much reporting aside from weekly meetings. We all had a g…

Here is a counterpoint. I worked with software development at Ericsson for about 10 years before XP and agile came out. I too had a private office, and I recognize a lot of what you describe. While it was nice, it was not a very productive environment. Each release of new SW was enormous and typically took a year or more to get out. The developers had no real idea of how things worked in production. Lots of useless d…

Between you and what OP is saying, I think there is this something thing else also. Core software development activity (UI, databases, messaging, web servers, configuring legacy systems, testing, release and delivery, etc) is helped by people sitting together on an agile track. However for some software development this also means architecting the product itself, an aspect that is crucial to a company's survival too. In a company building a demand management product, I need to learn and understand the market, consumers, sales processes, our internal systems that manged these before drafting the demand models, fine tune the methodology, etc before anyone really build the software product/services that reach the end-user. And there is a cycling back and forth between the two activities as we move ahead to get things right. I had no product manager or analyst who could really help with the product itself that the company wants. This latter part is where where I have a very hard time sitting in an open space with 10 people talking on the phone or getting pulled into frequent meetings.

Re: Ask HN: What company environment has enabled your best work?

#127
post #67

Earlier quoted context omitted.

During med school I would ride my bike on a scenic trail to a campsite on a bluff overlooking a massive river. There was a camp store with snacks and beverages and a Thai restaurant served out of a trailer. The campsite had a bonfire and featured live musicians in the evening. I only had a couple bars of internet through my phone. Never had more productive study sessions in my life. 1 hour bike there (listening to le…

Sounds wonderful. Where did you go to med school?

Mizzou! (University of Missouri)

Re: Ask HN: What company environment has enabled your best work?

#128
My best work was enabled by a work from home role with clear product goals but wide latitude on on technical decision-making. The teams were active in good code review, kept our chat channels from being silent all day, and were confident enough in their abilities and trusted in others on the team enough to ask for advice when needed. Technical decisions were largely left up to whoever is doing the work, but major architectural changes would involve either one person presenting a proposal for review or brainstorming sessions with a small group.

Re: Ask HN: What company environment has enabled your best work?

#129

Earlier quoted context omitted.

I know. When I first read the XP book by Kent Beck it was a revelation. That was the first time I saw a methodology that I felt worked and agreed with my own experience. Planning everything out in advance is hopeless. There are two great quotes that I think capture this: “A complex system that works is invariably found to have evolved from a simple system that worked.” John Gall “Enlightened trial and error outperfor…

How about "a team of skilled developers is likely to be successful with any software development approach; an inexperienced or untalented team is doomed regardless of the chosen methodology" After 20 years that's been my experience

Yes. But unfortunately not every team can be made entirely of rockstars. So the purpose of a methodology is to increase the probability of success for a moderately talented team.

Re: Ask HN: What company environment has enabled your best work?

#130
None? When I used to work in open source for fun, you could take all the time in the world to develop the right solution. People communicated freely remotely over irc and mailing lists. Very little red tape. Easy to feel like you're actually contributing to something. You get to pick what you work on and either clean up little things or tackle big projects. All necessary information is public and easy to find by asking the group.

Really you just need fewer barriers to doing work, and to make it easier to find and publish information. A group consensus or product owner can decide if work gets merged or refactored.

Post reply on HN