3 ms·
If you read the comments so far, everyone has their favorite. The answer is probably "all of the above". That said, my personal favorites: Most software engin
by shados 10y ago
If you read the comments so far, everyone has their favorite. The answer is probably "all of the above".
That said, my personal favorites:
Most software engineers are bad and refuse to admit it to themselves (which would let them get better). Too much ego. Given a large enough department/team, only a small percentage is actually doing significant work. Yes, even at Google/Facebook/Amazon/whatever.
Second, software engineers are extremely conservative. For all the flack fast moving ecosystems like JavaScript get, the only reason we see so many iterations is that the end goal is visible from far, but people reject it. So we just make 100 intermediate steps to get there. Eg: a subset of functional programming paradigms and type systems. Think TypeScript...which has to be comfortable for the peanut gallery, while trying to support advanced features many know need to be there in a modern language, and the struggle between those 2 goals.
That ensures we're going slower than we need to, while basically ensuring those techs will be obsolete sooner than later (because we need a stepping stone to the "right" solution as to not alienate developers)
- gmarx 10y agoCame here to make your second point. Most developers are bad and think they are good. I'll add that most of the people who provide requirements don't understand software development and most developers refuse or are unable to understand the domain space and yet insist that the requirements writers just tell them the "what" and leave the "how" to the developers. Oh- and using a process name, such as "agile" as an excuse rather than a constraint.
- clifanatic 10y ago> Most software engineers are bad and refuse to admit it to themselves (which would let them get better) Well… not to be confrontational, but in the context of this post, you seem to be implying that if most software engineers (which would, statistically speaking, include me) were “better”, they could put software together faster. I have to say, the implication bothers me, as does my suspicion that it’s a sentiment shared by most non-programmers out there. The problem is, there is a lower limit on how long it can possibly take to complete a programming task - and I think even the MBAs will concede that that lower limit is higher than the time spent typing out the words that make up the program. So, if we accept the premise that “good programmer” = “fast programmer” with no reasonable, objective measure of how fast fast is, the people doing the judging will always end up using the metric “how long I wanted it to take”, which is usually about a day for any task.
- shados 10y agoI did say the answer to this problem was "all of the above". We're talking about human beings dealing with each other. That means there's an infinite amount of problems. The ones I mentioned are just a few out of many. They're just often overlooked by engineers for obvious reasons. I hate to use the 10x developer meme...but I will. Personally, I've been around a while...and I worked at a lot of places. A lot of obscure little startups, some non-tech companies, many big and huge names... And 10x doesn't even begin to describe the difference between what some companies consider a "super star" and some consider "bottom of the barrel". I've seen big name tech companies do with an army in a year, what some of the engineers I worked with would have done in a few weeks, alone, -in the same environment- (thats the important part). Once you've seen that happen enough, you just can't deny it anymore. The difference between engineers is so great, it matters a whole lot. At one company, a PM will come with vague or shitty requirements and the engineers will run away with it and produce garbage over several months... while another dev would just call it out for the bullshit it is, point out what's wrong and pump out a correct solution by the end of the day. And all that doesn't even consider the time some will spend googling basic shit while others can just infer the right thing by thinking about it for a sec. The end result is a massive difference in $$$.