7 ms·
One thing that surprised me as a latecomer to software development coming from a visual arts background is how much choice of technology and working practices a
by memetherapy 6y ago
One thing that surprised me as a latecomer to software development coming from a visual arts background is how much choice of technology and working practices are purely fashion driven. The thing about fashion is that the way if develops is largely arbitrary. Changes in fashion resemble a drunken walk through possible design space with the drunkard receiving regular shoves from "influencers" who are usually trying to sell you something. Occasionally you have a fashion "revival" where someone takes an idea from the past, gives it a new spin, and then sells it back to newcomers as the next big thing.
This seems especially true in the types of startups and companies many HN readers work at or aspire to join / build - that is ones which are low stake / high reward.
I think when you combine the low stakes nature of the VC driven startup world with its cult of youth and the in group conformity of young people this is what you get.
[1] by low stakes I mean no one will die and you won't be prosecuted if your single page app startup goes tits up. Indeed you're supposed to "fail fast" precisely because the cost of failure is so low. Even if a VC or angel has invested a few million in you, to them that's still low stakes because they exist on an entirely different plane of wealth and you are just one of multiple bets.
[2] We're going to rebel by all dressing the same but not the same as our dad!
- noir_lord 6y agoI agree with pretty much your entire point. In addition it sets up a situation of constant tension because many developers refuse to follow the fashion when they can (justifiably) say that the way they currently do things is perfectly fine. The people on the edge of the fashion then regard them as absolute dinosaurs because they refuse to follow the trends. Then there are people like me - I watch what is going on but I don't follow the fashions, I maintain a list of "that looks cool, check back in 18-24mths and see what they did" and then make a decision on whether it's worth spending more time actually looking at something. https://i2.wp.com/www.business-to-you.com/wp-content/uploads/2020/03/Technology-Adoption-Life-Cycle-Crossing-the-Chasm.png?resize=1536%2C864&ssl=1 https://i2.wp.com/www.business-to-you.com/wp-content/uploads... on that graph I'm a pragmatist. Been bitten by the shiny a bit too much at this point in my career.
- gabordemooij 6y agoThis. Devs nowadays seem to be just NPCs, they jump on every bandwagon, it's very depressing. But this is the same with rest of society, groupthink is becoming a real problem. Unwanted opinions, thoughts are scrubbed everywhere.
- deleted 6y ago[deleted]
- tannhaeuser 6y agoFor a latecomer, you've managed to see through a lot of bullshit, and the psychological/sociological nature of it. What you're maybe missing is that's not always been like that. Cloud, SaaS is only a thing since around 2006 when AWS hit the scene big time. Before that, we had a relatively conservative, standards-driven perspective on progress. Maybe it's also the time when the generation having learned computing from the ground up (assembler, C, hardware hacking) was starting to fade from the job market, or rather the then-new devs became eager to carve out their niche with arbitrary abstractions (but not entirely - I remember OOP bullshit from early 1990s and WS-* SOA crap from 2000s).
- wott 6y agoThe abstractionists, philosophers, theoreticists, had their days before too (60s-70s Lisp, 70s-80s Logo for teaching children). So in fact the practicalists would only have ruled in and around the 90s. If we add all the "everything is a XXX" languages (XXX in [list, string, object, function ...]) and gather all simplificationists together, then they almost always were there, with fluctuant success at being prominent.
- p_l 6y agoA lot of those "abstractionists" you mention were very heavily practical, too. 1980s and 1990s gave us "decision made by senior management reading shiny magazine during flight", we just look back with sentiment now combined with survivor bias.
- qz2 6y agoWhat I find frustrating is that if you are in a high stake environment it’s increasingly fashion driven too. I am in one of those environments where we can get prosecuted, big time. I tend to opt for a conservative engineering approach with maturity and security considerations being a key part of the design process. But no, fuck that, someone went to a conference, bought everything shiny and started a death-march of throwing any old hacked up shit and containers from random joes in a limping kubernetes cluster that no one really understand and calling it a success. That’s reality in 2020 unfortunately. I don’t sleep very well these days.
- bob1029 6y agoI dont understand why business leaders cannot see this for what it is and take back some control. Investors need to start asking more probing questions about how organizations develop and deploy applications. Perhaps if the money becomes contingent, people will start to give a shit about the engineering quality. At no point should "fun" be a line item when determining what technology to select in a high stake environment. We are in finance and we picked the most boring technologies we could find. Most of our stuff doesn't even talk to the network stack. I can't imagine running our transactions, with their piping hot PII, through the labyrinthine monstrosity that is modern "best practices".
- qz2 6y agoProblem with investors is that they pay third parties to do audits and third parties are filled with box tickers who ask a load of questions. You can strategically answer any question. So the game becomes how to answer the audit questions effectively rather than an honest appraisal of the situation. Also it's not really fun. It's a frustration ridden shit show. You spend all day solving complex problems instead of building business value. A fine example of where the tradeoff ends is spending three weeks solving fundamental networking issues due to stack complexity and immaturity.
- jacquesm 6y ago> You can strategically answer any question. Good luck with that. We do exactly that for a living here, we're essentially 5 people who are all CTO grade and have run our own companies. If you can fool us for a whole day you've deserved your investment, but I highly doubt anybody ever got away with that.
- 1337shadow 6y agoTrue story: last "AWS Solutions Architect" I met told me "AWS is a sect and I am part of it", I'm still not convinced it was meant as a joke!
- qz2 6y agoThere are a lot of religious followers of the one true AWS way of thinking. I dared bitch too loudly about SES delivery policy once and said to look elsewhere and earned the ire of the architectural elite. This is insane because I'm certified too but a non believer, a concept which does not compute for a lot of people.
- agumonkey 6y agoThis is something that annoys me, exhausts or worse. The amount of time wasted on bikeshedding and chapel wars is draining. I appreciate craft a little more because tooling and practices are more stable. You focus on work and not how to work.
- deleted 6y ago[deleted]
- dragonwriter 6y ago> One thing that surprised me as a latecomer to software development coming from a visual arts background is how much choice of technology and working practices are purely fashion driven. It's not “purely fashion driven”, it's just that (1) as solutions radiate out from their point of origin understanding of the problem, how the solution addresses it, and what caveats the user should be aware of gets (on average) foggier, and definitely more unequally distributed, and (2) there are real network effects in software development where being popular genuinely makes things better, all other things being equal (from a business perspective, a technology for which you can get people that are proficient and comfortable is better than one you can't, other factors being equal.)
- ehnto 6y ago> a technology for which you can get people that are proficient and comfortable is better than one you can't, Hence why PHP is still the leading language for eCommerce, where fashion gives way to tight margins and hiring talent for a decade long lived piece of software is a major concern. When cost is the driving factor for most decisions, and ROI is a very real and measured metric, convincing someome to rewrite their money making machine to keep up with the latest in tech is a hard sell.
- ehnto 6y agoI got some downvotes for this, but look at the numbers. I'm not saying it's the best language for eCommerce, but it is the workhorse. It's the old beige cash register in the corner bodega that's still the heart of thousands of businesses. These businesses don't have the margins to replace their Magento or WooCommerce shop, hence the need for pragmatism. If you're thinking about Shopify or AWS this or that you are already thinking about the wrong part of the industry.
- dragonwriter 6y ago> Hence why PHP is still the leading language for eCommerce, where fashion gives way to tight margins and hiring talent for a decade long lived piece of software is a major concern. I don't think the forces that resemble fashion are any less applicable to e-commerce. > When cost is the driving factor for most decisions, and ROI is a very real and measured metric, convincing someome to rewrite their money making machine to keep up with the latest in tech is a hard sell. Convincing people to rewrite systems without (and even often with) changing needs that the old system seems to brittle to accommodate is hard everywhere, even when ROI isn't clearly measurable; that's why so much established software in government (as well as other places) still runs on COBOL. The shifting preferences in development that look like fashion are evident, even in those domains where there is lots of established software that is sticky, in greenfield development.
- sjg007 6y agoKeen observation. I enjoyed Halt and Catch Fire because of its parallels to today. A lot of previous startups had good ideas just the tech wasn’t quite right or v1 at the time.
- mjw1007 6y agoAs far as technology goes, I think what we describe as "fashion" is often mostly caused by a desire for safety in numbers, and to a large extent that's rational. If I pick the same language or framework or whatever as everyone else, there's a better chance it won't be abandoned, and when I want to integrate with some other project, someone else will already have done a great deal of the work.
- hyperman1 6y agoToo true. On my job we have frameworks from the Architects, and stuff that drips in from outside. The Architects typically buy some Framework from a Trustworthy Enterprise, as approved by the Gods of Gartner. Quality varies wildly, but if you move half a mm from the beaten path you're on your own. I gain a thumbleweed badge on stackoverflow every time I deal with their stuff. Compare it to outside world stuff. Quality also varies wildly, but 5 minutes on Google generally delivers someone who already suffered trough hell for me, and forged some unholy pact with the technology in question. Unfortunately, neither camp can choose a boring, proven, working technology that exists already a few years and is in common usage.
- afarrell 6y agoIf you found yourself using a boring, proven, working technology ...how vividly would you remember that experience?
- hyperman1 6y agoYou would have a feeling of trust. As an example: I click on a browser icon and I get a working browser with a predictable behaviour. One day, chromium edge took over, messed up a ton of settings,and kept on blathering about my experience. 5 minutes of filling out a work sheet changed to 30 minutes of whack a browser. My amicable brotherly feelings of good that day did not extend to the average Microsoft employee.
- Aeolun 6y agoMy experience using PHP at my previous company stands out because it was so relatively glorious.
- blablabla123 6y agoIt's a fine line to use recent frameworks and at the same time to be productive and actually solve problems. That's ultimately why good frameworks are developed. When React came out many called it a fad but it solved really nasty problems in Web development, that's why it stayed. Also I'm quite sure K8S is here to stay because it removed this whole VM complexity layer and makes integration and testing of services a breeze. On the other hand there are fancy frameworks that don't solve such problems or the understanding is not good enough (yet) to solve them reliably. IMHO a lot of web frameworks that promised in the past to remove the boundary of frontend and backend suffered from that. Also the early NodeJS ecosystem to some degree. It's fun to use a framework, get to it's boundary preventing you from getting things done and then discover a framework that actually crosses that boundary. Speaking of server-less, I never came into the situation where it would have made things easier for me so I never used it but YMMV...
- tatersolid 6y ago> Also I'm quite sure K8S is here to stay because it removed this whole VM complexity layer and makes integration and testing of services a breeze. Kubernetes does basically nothing to assist in integration or testing of services, and adds more complexity than the “VM complexity layer” ever had.
- blablabla123 6y agoI don't think so. In the average company running VMs themselves, the person managing the VM is a different person that runs stuff on it. Even in < 5 people tech teams. And Enterprise-grade VM management software is completely out-of-scope for any dev person for that matter. Chances are I will never even know any details about the real hardware it runs on. K8S is a different story, it can be managed by a devops team (or a really engaged dev ;)). VMs virtualize your network interface and can take care of some IP routing, K8S can route HTTP traffic and TLS-terminate it. It facilitates being aware of other services and multiple instances. Basically it's possible to get rid of nginx. And most importantly it runs the containerized applications basically on bare metal. Spinning up a test instance and destroying it 1 minute later is cheap, any dev can do it.
- ketamine__ 6y agoI'm going to play devil's advocate here. A sleepy engineer wakes from their slumber when a new technology takes hold their mind. They find new ideas exciting and intoxicating. And sometimes that energy can be infectious and makes the entire development process more enjoyable for product owners and QA. There needs to be a balance. For example, upgrade to the latest version of Rails. Upgrade previous file storage gems to active storage. Upgrade the deployment process. There are many exciting things to improve in a monolith.
- 0x445442 6y agoIt's an astute observation, especially if you have not heard Alan Kay's thoughts on the subject. He calls our industry a Cargo Cult and explicitly compares it to fashion and pop culture. Keeping with the anology I'm sure there are software engineering equivalents to Jeans and T-Shirts and it would be an interesting study to compare organizations that opt for these fashions to those that do not. If you're reading PG, it seems like a great topic for an essay.
- jacquesm 6y agoIt's not the cost of failure that is so low, it is the cost of hanging on but not ever taking off that is so high.
- AlexandrB 6y agoAnd just like fashion, what's "in" is driven by marketing.
- mattgreenrocks 6y agoWe don’t teach people a technical aesthetic. So, lacking a strong internal sense of taste, they cargo cult it from the latest FAANG scraps thrown at them. This compounds with the conceptual disaster that is web apps. The good news is there’s a lot more to software dev than webdev.
- grishka 6y agoAs a software developer since my early days, I wholeheartedly agree with you. It's honestly ridiculous to see how people invent "revolutionary new ways" of doing the exact same thing that could be done in a dozen ways already. And they invent those by piling more and more unnecessary complexity on top of existing technology stacks. Electron is a revolutionary new way of making desktop apps. Except they look like they're something else and take up all the RAM you have and ask for more. But nah, you don't understand, it's the future, native desktop apps are dead. Kotlin is a revolutionary new JVM language that will solve all the problems you had with Java... Except I haven't had any. Java is simple and predictable. Kotlin is not. To me, Kotlin feels like an abstraction layer that gets in the way. But people will be defending it relentlessly because that's what Google says is The Future™ for Android development. Web development... That's just nasty. "Revolutions" happen every day, so now your news article takes 5 seconds to load on a 100-megabit connection just because someone absolutely had to make it a react app instead of a server-rendered page with just text and maybe some pictures. This overall trend of abstracting the platform (the operating system, the web browser) away is abysmal. It does no good. And lowering the barrier to entry to programming? Honestly, I'd rather prefer it to remain high. Programming is meant to be an engineering job, not the kind where you throw stuff at the wall and see what sticks and just assume that browsers and operating systems are made of unicorn jizz.
- monsieurbanana 6y agoHalf the threads on hn mention that software engineering was never engineering, so which is it? Or maybe you're the exception to the rule? Sarcasm aside, that ship has sailed You can't have internet as widespread as it is today while keeping programming in the hands of the very few "true engineers". So either you're arguing the past 20 years of internet progress was a mistake (fair enough point of view) or you're deluding yourself.
- grishka 6y agoI'm not sure I want the internet to be as widespread as it is today. I certainly don't want it as commercialized and as centralized as it is today. I also take issue with this whole dumbing down of technology that's been happening over at least the last 10 years and shows no signs of stopping. It's understandable that there are certain business entities that would prefer to be in possession of as much money as technically possible, and to achieve that, they need to give their products into as many hands as possible, which means said products have to be "easy to use", aka don't require reading manuals and understanding what the damn thing is actually doing. Computers and other computer-like devices like smartphones are, ultimately, tools. As are the programs they run. And tools are meant to serve and empower their end user. 99% of the IT industry, unfortunately, would rather like them not, because that clashes with their own interests they for some reason are allowed by the society to have. That's all I have to say.
- jjav 6y agoSadly yes, it's become a very fashion-driven industry. Much of it is driven by the near-complete lack of historical knowledge of the field. I advocate that a computer science or software eng curriculum strongly needs a semester or two of the history of the practice. What roads have been taken in the most important areas and examine all the dead ends and why they were abandoned. So much of the new-shiny is just a badly implemented rehash of ideas that we already know didn't work out in the past, if we only knew. Because we mostly don't, as an industry, it seems like an exciting new idea.