Live data from Hacker News

Ask HN: Do you hate software engineering but love programming?

news.ycombinator.com

321–330 of 733 posts

Re: Ask HN: Do you hate software engineering but love programming?

#321
Every few months or so we get these really circle jerky posts by engineers who believe the world of business is them just pumping out code and somehow getting paid.

1) that’s the difference between a job and a hobby. You do the hard parts you’re paid to do sometimes.

2) decisions you don’t like by stakeholders you don’t like aren’t always wrong just because you see some way to “code it”. A product is not just its code base. It’s is also the design, marketing, revenue and growth strategies. Sometimes even more than the code base. Sometimes code can solve these issues but more often it can’t.

3) this view often attracts comments from engineers who seem to have very limited experience in building and running successful products that can pay the bills. It requires a lot of hard work you don’t love. Yes you can find others to do that work but that’s you. You’re the one hired to do the work higher ups don’t.

If you disagree you can start your own business and learn for yourself. A business is a lot more that solving interesting problems and calling it a day. It’s building, growing and managing a business and the tasks that go along with it.

Re: Ask HN: Do you hate software engineering but love programming?

#322

> I have come to a realization that I don't really enjoy Software Engineering(& the processes that it comes with) but I do love programming & solving problems. I can almost guarantee that you’re just at the wrong company. Some software companies can turn even the simplest tasks into a grueling series of processes, endless meetings, and joint work across a big number of “stakeholders”. These companies will take the jo…

I forget what job it was I was interviewing for but I remember being stunned at the open lack of process they had in place for trying to bother unifying all these teams to be on the same platform framework etc and instead deliberately let sub teams work with tooling that worked for them and didn't create a lot of overhead trying to coordinate and sync and share a common codebase. Every place prior to that day I had only heard of people going for long stretches to impose a company wide uniformity in tooling. All the costs associated with getting everyone on the same page was always taken as a worthy cost to pay and that future date in the promise land would have made it all worth it.

The folks in this other company just flat out said not worth it, just get your stuff done, ideal development scenarios and perfect harmony and alignment have too much hidden costs to bother with.

It's naturally a pro and con scenario but it was pretty refreshing to hear of folks so unconstrained by this self imposed constraint every other shop had imposed on themselves.

Re: Ask HN: Do you hate software engineering but love programming?

#323
I strongly dislike enterprise development/engineering, but I love programming/engineering. Enterprise software is written to optimize for the most amount of people working on any given codebase. As a result the practices and conventions adopted tend to sacrifice many programming techniques that would otherwise prevent a number of recurring problems.

This is also why pure functional programming never takes off despite being the more advanced and sophisticated way that leverages techniques which would prevent bugs and speed up development. I understand why large companies prefer extremely verbose, repetitive code, which allows for easy scaling of engineers, but I wonder what the industry could be if engineers prioritized computer science - more robust codebases, faster development which would translate to better products that never break while at the same time evolve faster.

"Planned obsolescence" might make business sense for hardware, but I feel software has so much wasted potential at the moment.

Re: Ask HN: Do you hate software engineering but love programming?

#324
But I think that's what truly makes it "engineering." Programming and solving problems are fun in a vacuum but tech is just a lot more than that. Being able to produce a solution to a problem today doesn't mean that the same solution will work tomorrow. That's why we have to _engineer_ a solution, not just produce one.

I'd argue this is true of any engineering discipline. For example consider this analogy: we build bridges to solve the problem of being unable to cross to the other side. But we could also solve this with, say, a boat, to paddle ourselves across the body of water instead; in fact, that's a much more immediate solution that solves the exact same problem. But is it sustainable? Is it scalable? Can it handle traffic? To address these concerns, we _engineer_ a bridge.

Software that's meant to service a lot of people can't just be written to solve a particular problem today -- it must be _engineered_ so that it's future-proof, which is to say, easy to scale, easy to read, easy to refactor, etc. So often the simplest programming challenges become particularly difficult and often interesting engineering challenges.

Finally, to actually answer your question, it entirely depends on the company, the size of the team, and the commitment to code quality and engineering that that team has. Working at Google on the search team, for example, wouldn't be a great fit for you because every line of code you write has to be engineered! But working at a startup might.

But this comes with tradeoffs. Often times, the solution you write will have to be rewritten if you want your product to succeed. Refactoring and re-architecting things are a necessary evil as technology, hardware, and languages + frameworks change over time. I've worked at places where I've found myself repeatedly having to work on the same things over and over again because of how poorly engineered they are! If you enjoy programming and solving new problems and you want to have a career doing that where presumably you're building some sort of product, you have to engineer at least somewhat reasonable solutions today so that you can work on something new, exciting, and cool tomorrow.

Re: Ask HN: Do you hate software engineering but love programming?

#325

Earlier quoted context omitted.

I'm not sure what this means.

"'Real' socialism hasn't been tried, so you can't say it doesn't work."

It has been tried, though, and it works fine in e.g. Chiapas. Granted, that's not an industrialized and mostly urban society, but not everything has to be one.

Re: Ask HN: Do you hate software engineering but love programming?

#326

Earlier quoted context omitted.

The truth is that the manifesto may as well be fiction. I'm talking about reality... what the industry actually practices as "Agile." That's why you read it all the time: because it's true.

Maybe it's true at some companies, but it has nothing to do with agile / scrum, but letting non-tech people who love confrontation take over engineering leadership from engineers who are afraid of confrontation (which sounds like the disaster it is). Robert Martin (one of the creators of the agile manifesto) explains it quite well in ,,Clean Code'' presentation: https://www.youtube.com/watch?v=7EmboKQH8lM The whole p…

I'd be interested to know what percentage of companies are "true" agile. Based on my personal experience, it must be very low.

Re: Ask HN: Do you hate software engineering but love programming?

#328

> I have come to a realization that I don't really enjoy Software Engineering(& the processes that it comes with) but I do love programming & solving problems. I can almost guarantee that you’re just at the wrong company. Some software companies can turn even the simplest tasks into a grueling series of processes, endless meetings, and joint work across a big number of “stakeholders”. These companies will take the jo…

[deleted]

Re: Ask HN: Do you hate software engineering but love programming?

#329

Earlier quoted context omitted.

I've read the original manifesto and principles, and quite frankly I'm not that impressed with them either. Some of the principles are actively harmful, like welcoming changing requirements late in the process.

Yep. "Individuals and interactions over processes and tools" OK, not terrible, but why not "interactions and tools over individuals and processes"? De-emphasize individual's egos and ritualized processes, focus on the things that get work done and communication between entities. "Working software over comprehensive documentation" Tends to make very frustrating-to-use software, because it's never fully working and has…

> Working software over comprehensive documentation

This means something a little different. It wasn't talking about "end-user" documentation. Rather, it meant "product specifications." Do you need to design the system upfront in UML before you start writing code? You may still need something like a whiteboard sketch or something similar, but that wouldn't be "comprehensive."

Post reply on HN