5 ms·
That's the key. It's very much two bubbles. Because some parts of the job is almost factory like, anyone with a bit of practice can do it, and the other part is
by shados 7y ago
That's the key. It's very much two bubbles. Because some parts of the job is almost factory like, anyone with a bit of practice can do it, and the other part is extremely difficult, requires ton of experience, might need a computer science degree or more, etc.
Both groups barely understand the other. One is like "Lol I can write my email address on toilet paper and have a 500k/year job by Monday!", the other is "Ive applied at 150 companies and 149 of them didn't even reply back, the last 1 did to tell me there was a typo in my resume!".
But both groups have the same title (plus or minus seniority levels), work on the same projects in the same teams and follow the same career track.
I wonder how long until software engineering becomes more like other fields. The nurse, the general practitioner and the brain surgeon are not applying at the same job or even have the same backgrounds. The hvac technician and the engineer aren't either. Maybe the person who builds forms and the person who engineers a distributed system being on the same career track is the wrong model. It sets the wrong expectations. It can stunt career growth.
- Aperocky 7y ago> Some part of the job is almost factory like This sound like poor design at work. Nobody should be writing CRUD all day, it should be as easy as a new entry in a yaml/json file. It is all software engineering but the difference in output can be enormous.
- jorblumesea 7y agoI mean, sure, at a place with the engineering level or skill of the FAANGs. But at many places, developer effort is very manual and automation isn't considered.
- crdoconnor 7y agoIf you're a developer who doesn't consider automation or improved tooling to solve repetitive tasks you're probably not a very good developer.
- jorblumesea 7y agoWelcome to 95% of the engineering world haha. Code monkeys.
- shados 7y agoNeither are you if you're generalizing or engineering around repetitive tasks without considering the total cost of ownership of going either way.
- shados 7y agoThe "form" here is a metaphor for "simple things". If i have a large system and I have 3 forms, I'm not going to add (or worse, build) a dynamic form generator system. Worse, the forms could be completely different or all have very special ways of working that can't easily be generalized. At that point its a lot easier to build them by hand. However, you don't need someone with a degree in software engineering to do that. Repeat that for any other "simple but easier to do one off than to engineer around" programming tasks. Not to different from factory automation. A lot of stuff done by hand COULD be done by robots. Its just cheaper to do it by hand.
- bumby 7y agoI think the nature of software being intangible and "black box magic" to some in the hiring process contributes to this (at least in companies that aren't software centric but still very much dependent on software). It's a regular occurrence that non-software domain experts conflate all kinds of software development. Need a scalable CRUD app? Grab any ol' IT person. Need some safety critical code modified? Get that instrumentation engineer to cobble something up. After all, it's just software /s
- bcrosby95 7y ago> Maybe the person who builds forms and the person who engineers a distributed system being on the same career track is the wrong model. Sometimes it feels like everyone wants to engineer a distributed system. And in the process people are losing the ability to recognize what parts of a system actually need to be engineered as a distributed system.
- Aperocky 7y agoI don't see any essential difference between the two. You can build 1 million forms within a team of 5, or you can run a distributed system of 10 machines that runs as fast as 1. The only difference is between bad engineering and good engineering. Good engineering gets rid of repetitive work, bad engineering breeds them. If your team needs a lot of junior engineers to do trivial stuff, that's probably bad architectural design.