Obviously I'm only considering the extremes here, but those extremes are...very common.
Society can't go very far if the ONLY thing people do is write keywords in a text editor all day. We need to properly value other professions too.
Obviously I'm only considering the extremes here, but those extremes are...very common.
Society can't go very far if the ONLY thing people do is write keywords in a text editor all day. We need to properly value other professions too.
Sure a professional would have made that in a week, but their next site will take half as long, and then half as long... until they are within striking distance of someone who does still know all those fundamentals. They will mostly be limited in what they can do, but most people don't really need developers that can do anything even if they pay for them without realizing that.
Programming is being commoditized. In the same way you don't see a doctor first thing when you go to one; you see a nurse, tech, or assistant. Not everything requires the most expensive learning investment. Most programming jobs don't require you to be able to write a proof of the code you copy paste from Stack Overflow.
It's easy for those small problems. It's hard when you're designing products that need to get to market quickly and solve a difficult problem without product sinking bugs. That's why developers and engineers get paid a lot more.
That's a very small part of software development.
They've, in my experience, struggled with highly distributed and scalable applications/systems.
However, we software engineers (as well as computer scientists and devs) tend to underestimate how much we've already learned and internalized. It becomes painfully obvious when you try to teach someone, and realize that you need to start at a much earlier point than you expected.
By the same token, if you want an app that will still be maintainable in 5 years, you need a professional. An amateur can build most requirements, but the architecture will seize up if it’s just layers of hacks.
It’s sort of an interesting situation for startups, because their business requirements for newly acquired users are often changing on <5 year timeframes. So actually throwing away the whole system every few years turns out to be an OK strategy.
The problem is previously acquired customers, who won’t generally deal well if you tell them half of your products features are going away for 18 months, or maybe forever.
You can sometimes hack around this by basically ditching all of your old customers and taking a high turnover strategy. That can work well for the middle of your growth curve. You burn a chunk of your addressable market in the long term. Also most companies don’t have the nerve to do it.
And it can cause cash problems.
But there are viable strategies that way.
When I say the architecture “seizes up” I mean it gets to the point where
1) a refactor that would shave 100 points off your annual planned work costs more than 100 points
and 2) hacks are slowing your pace to the point that a realistic estimate for your annual planned work is growing faster than your team is working it down.
Note that in such a situation you will still be “getting things done” but your costs are rising while your output is decreasing. Eventually that grinds to a halt and your team will demand a costly and often fatal 2.0 cycle.
A good developer can refactor as they work, and say no to unworkable plans, such that your cost per point grows only linearly, so you can maintain stable feature output while growing your staff linearly.
You need a team of experienced professionals, which virtually no longer exists. You could work at 10 different companies back to back and not come across a team that can do it. That's the industry now.
That's part of the issue. People have been making teams who CANT build apps still maintainable in 5 years. Everyone has and only a select few remember/know that it's possible.
At a previous job, I was in a meeting where we pointed out an app had become unmaintainable to the point of requiring a rewrite. One of the engineers who built it pointed out "Well, we built this app a year and a half ago, of course it's unmaintainable, what do you expect?". I choked on my drink.
> even if they pay for them without realizing that
In health care, you have doctors, physician assistants, nurses, administrators, etc. They have very different background, schooling and certifications as well as salaries.
In software, you have some differences (individual contributors, tech leads, managers, etc), but it's not granular at all within the categories. While the self taught html dev is making 90-100k, the MIT graduate builting complex systems with 5 years of experience is making 150k (Using round numbers here, don't read too much into it), when the difference is significantly bigger.
People are quick to point out at flukes: there's totally exceptions, the CMU grad who can't code themselves out of paper bag, and the random highschool dropout who has been coding since they were 7 who are now world famous geniuses...but they're exceptions yet treated as the rule.
TL; DR - New college CS grads are mostly children who know very little and expect huge paychecks immediately because they watched Mr. Robot and maybe opened a browser on an RPi. Once.
Yeah, the person who barely has the skill to pump gas probably won't make it (they probably have some bigger problems, too), but...
Compared to the post dotcom crash (where it was a buyer's market) where you could pick the best and brightest and make super teams, there's a stark contrast in 2018, and it shows in the quality of the products.
I've been here 4 years, and some of the new-hires that came on my first year are now able to support mutliple projects and getting their sea-legs, but the burden on the senior programmers is still heavy, and I'm doing my best to retain those saints! Perhaps there will be an inflection point that doesn't involve customers and managers freaking out.
Or, heh, perhaps I'M the weak link.
Also, as rationale people will be happy to tell you, buying my employees lunch is a screaming deal.
An employee going to lunch takes at least an hour: walk to takeout, wait in line (everyone gets hungry at the same time), walk back and eat. I can recover at least 30 minutes by paying to have lunch delivered every day. Plus, for better or for worse, it costs me roughly $16 pp per day but it would cost me probably $25 to pay an employee $16. I didn't write the tax rules, but I can optimize within them.
Note there is also not a single person in my company who makes less than $32 (16*2) per hour. So I'm very happy to pay $16 to recover, on average, 30 minutes of their time.
Unfortunately this particular company had a penchant for saving every possible penny, so the quality of the food wasn't too good either.
Those are very loose upper bounds, too.
The freebies, on call outrage, etc is inherent to the tech industry with venture capitalist money or otherwise insane net profits... the longer term sustainability is questionable, but fresh college grads or others early in their careers having unreasonable expectations of reality are not so different than your average political science or psychology major taking on egregious levels of debt only to struggle with making student loan payments.
Again, I agree with valuing other disciplines. I think there’s also something to be said about supply and demand. The Googles and Amazons of the world typically hire people at least somewhat competent in CS. Sure you could pick up pick up Ruby on Rails or whatever framework to join the gig economy, but your chances won’t be great at becoming a engineer at a Google caliber company.
The issue with teacher pay isn’t just about what society values but is more nuanced. My conservative friends don’t see the value in public education and insist on sending their kids to private schools. I don’t know how those teachers are paid, but for the public school system that I participated in, the argument becomes well my kid doesn’t attend so why should I pay for it?
In my opinion, it’s very short sighted and destructive for the country in the long term. It’s not only teachers we are devaluing but an entire generation of children whose parents are not able to absorb the exorbant costs of private schools.
Sorry, I probably made my point poorly. It wasn't about attitude in software engineering. It was how insanely overvalued the field is, with a completely out of wack investment to reward ratio. Few to no other fields come even close, and its siphoning people from all other fields as well as creating unreasonable expectations from them. That's obviously not the root cause, but it's something to ponder.
Essentially, all I was saying is that the article made me think about how crazy the contrast between those 2 professions is.
Software is eating the world in almost all regards. Being able to perform that act - the eating part - makes you way more valuable than the effort required. But so long as characters can translate into dollars for someone the one making the characters will remain very valuable.
Don't for a second be "ashamed" if someone is offering to pay you large sums of money for what you think isn't worth it - the ugly fact of reality is that we don't get to set the value of our time, those with the money to buy it do. Society is offering little money to teachers and that sucks, but that has nothing to do with code being so valuable as to justify abnormal incomes relative to the average of the rest of the working class.
If you choose to dedicate the bulk of your waking life to creating wealth for your employer, you should be compensated, at a minimum, well enough to feed, clothe and house yourself.
or there should be something like UBI in place to allow employers to decouple the cost of keeping their employees alive from the cost of doing business.
A bit of an unrealistic scenario, but my city has a very low vacancy rate, and you can't live there on minimum wage / just above. There are just too many people making more money.
If having someone make paper hats 40 hours a week is a bad business model, that's not the employee's concern. Why should the person running the paper hat making business expect to make a living at it, but not the person making the hats?