Hacker News new | ask | show | jobs
by itgoon 2689 days ago
Learn about business.

Ultimately, the job of a developer is to write code which achieves a business goal. If you have a better understanding of those goals, and can anticipate them, you become more valuable to the people writing the checks.

4 comments

Not only that, there are few jobs from which it's easier to start your own successful company than as programmer. Build a useful thing that people love, and you might end up making more money than all your previous bosses and then some. Risky and requires a lot of luck, but it's an option that other jobs don't have.

Or develop a clear expertise, blog about it, and start your own company selling that expertise to companies. Or even just become a freelancer and do the same work you used to, but keep more of the money.

Personal View: As with any other skilled job out there that is not based on commission like software devs unless you find a company that pays out big bonuses, you will have a cap as to what you can gain.

I don't think I know many software devs that make big bucks unless working at the 0.5% or something.

Usually in order to make big bucks you either start your own company or you work on a commission based occupation. That said a software developer can do commission based as a contractor and usually that has a lot of money involved, but again unless you have a company of contractors lets say and you are just 1 person I think there is an X amount of stuff you can manage a year which means that your 'salary' will be capped at some point.

Learn marketing, not "business". You're going to quickly get bored if you try to learn about "business", a lot of it won't apply to you.

Marketing is the highest leverage skill you can learn. Find an old course called "Magnetic Marketing" by Dan Kennedy. Listen to it at least 3 times (it's not that long). Trust me.

Dan actually sold all his stuff to a company few years ago, so I don’t know if that’s the original.

Here’s a link to the original - in kindle or audiobook

https://www.amazon.com/Magnetic-Marketing-Attract-Flood-Cust...

-edit, I’m actually not sure if that’s the original, I’m doing a search online and can’t easily find the original audio tapes which were recorded in the 90s. I advise you listen to the audio version.

Basically, stop doing development work and start doing Project Management, Product Management, Business Analysis, etc.
I'm not sure this is what the parent commenter meant. I think they meant the OP should get to the point where as a developer they can anticipate business needs.

That could manifest through areas like suggesting architectural changes that'll save money or open up doors in the near future, or finding pieces of the business that can easily be automated to generate / save money.

I think I've been misunderstood, I'm not advocating people to quit being a developer. I was pointing out that what the person was originally suggesting is actually start doing non-development work.

> where as a developer they can anticipate business needs

The thing is, a developer isn't normally in the business meetings where these are discussed. It's not a developers job to be in on a meeting about using X pricing model over Y.

A developer is a doer job. Developers do things. They don't decide things other than the technical details. If you're going to learn the business properly, you need to start entering other areas. Such as product management, start defining problems with the product and what can be changed. That a developer can start doing, but sitting here pretending it's not developers work is just lying.

Too often I read on the internet and hear at conferences that "every developer should do X for their company". Guys, I'm going to break it to you guys. X is literally another person' job, if I start doing it, they're going to get pissy real quick (or they're lazy and will just take credit for it) For some reason people seem to think developers are swiss army knives of businesses. It's not our job to find problems with the product, that's the product managers job. We can start doing it but we're going to start moving away from development work and towards product work. That's not a bad thing per say, it is just what is.

... not to belabor the discussion, but have you ever run across a scenario where one of the non-technical people tried to insist on something absolutely boneheaded from either a business or technical perspective? Who gets blamed if the dev just shrugs and does it?

Hint: not the person who insisted on it. The developer.

I've seen that play out too many times. Expanding out of a strictly coding role isn't just good for career progression, it's a necessity for career self-preservation, too.

Yes, refusing to do things that are technically bad is a technical matter hence a developers job. And what happens if you say no, they either go find a developer who will do it (seen that so often) or they go to the CTO/Engineer Manager/etc to try and get them to agree. In both cases, a developers job is to give technical feedback such as "Sorry but that's a security threat, you'll need to figure a new approach. Maybe try Z." not, "I think it is a better idea to work on X instead because it's going to generate Y". One is technical feedback on their idea and the other is a product/business idea.

> Expanding out of a strictly coding role isn't just good for career progression, it's a necessity for career self-preservation, too.

The first part is pretty much my point. To progress in a career in IT you have to stop doing technical work to progress. Development is a dead end job, just a reasonably well paid one. The second part, for the most part, I've never really seen. Most developers I've worked with haven't been held accountable for anything in such a long time that they get offended when you point out 500 servers going down in 20 countries because of one Redis server is embarrassing and we should work on stopping that from ever happening again and give excuses why it's not.

I was just typing out a reply suggesting the same thing.

The "trap" in development is in having non-technical roles view your role, essentially, as one in where they make all of the business decisions, and you as the coder take their orders to implement them.

That's no good for career progression or effective development, either. I'd deliberately cultivate some of the same PM and business analytics skills alongside your technical skills.

I completely agree that it's useful to cultivate PM and BA skills, if anything just to help with empathy across teams and enable you and the team to work better.

There are more and more companies slowly developing career pathways with technical only routes, but it's definetely not enough places.

I wouldn't stop doing development work, especially if you enjoy it.

Doing the other roles is a way to learn about some business. By doing them you'll have a better understanding of what happens behind the scenes, and will interact better with those roles.

Do you think your scrum master is done after the stand up? Oh no, there's a lot more to do.

> Do you think your scrum master is done after the stand up? Oh no, there's a lot more to do.

You know scrum master doesn't do development, they do project management work. Their entire job is to make sure the project is not impeded.

Nonsense. I probably make more than my line managers line manager as a developer.

If you love being a developer/programmer stick with it. You will love what you do and will eventually earn more.