7 ms·
Levels of aspiration
- debacle 14y agoThis is a bit self-serving. Food can be art. Both visually and through taste and smell. But 90%, no, 99.99% of food is food - the ingestion of basic nutrients so you don't starve to death and die. You can be at the top of the pyramid posted here (teaching, publishing, "innovating"), but if you don't understand utility then the reason you can't have a conversation with someone at the bottom of the pyramid (I see he takes a back-handed jab at Automattic, producers of one of the most successful pieces of software this century) is because you're a masturbatory pedant who lacks context, doesn't understand the historical role of technology in business, and doesn't understand how to fulfill people's direct needs. In short, only someone sitting in an ivory tower staring at his code and thinking "This is the best thing ever." could write such an ignorant blog post.
- eragnew 14y agoThis diagram is kinda like a roadmap for how to succeed, IMO: http://s3.amazonaws.com/37assets/svn/952-technical-hierarchy.png http://s3.amazonaws.com/37assets/svn/952-technical-hierarchy... (that links comes directly from the article in question) Good stuff!
- alberich 14y agohow to succeed at what?
- Udo 14y agoTo help someone move up the hierarchies, they have to have an intrisic (sic) desire to do so. Arguments like “but it works” or “it gets the job done” are tell-tell signs of someone happy at the lowest level of the technical hierarchy and your cue to just quietly back out of the debate. For an article that claims we need software "in all shapes and sizes" the amount of smug superiority exhibited here is amazing. Yes, different people have different priorities when it comes to software choice, but applying an arbitrary one-dimensional quality pyramid to it and assigning users to levels corresponding from 'absolutely clueless hillbilly' to 'latte-sipping Ruby poet' is just wrong. And the pyramid itself doesn't follow any logical ordering either. E.g. the implication that "beautiful code" is also fault tolerant is a total non sequitur. We get it, 37signals is moving the industry forward, it says so right in the infographic. I'm not even disagreeing with the fact that this company has been extremely influential, and I did enjoy reading their book - but appointing yourself king of the hill while casually dismissing technology you don't agree with as being lower level, that's just bad form.
- skrish 14y agoReading his response to a comment in his blog changes the context of his perceived smugness. Doesn't it? Here is what I am referring to: =========== DHH 10 Jul 12 Kathy, that’s a great point. Also, this pyramid can be applied in finer resolution within your stack. For example, I’m perfectly content to be at the “Well engineered” level when it comes to my use of MySQL, but when it comes to Ruby and Rails, I want to be at “Moving industry forward”. ===========
- paulsutter 14y agoChanges the context of his smugness? Yeah as in erasing all doubt that the author is not merely smug but full on delusional. Elon Musk is moving industries forward. The first time I used an iPhone it was so beautiful I could cry. But, Rails? I mean, not to harsh on Rails at all, it's a great tool. Moving an industry forward whenever you use Rails? WTF?
- joshuacc 14y agoI highly doubt he's talking about moving industries forward by using Rails. More likely he means moving industries forward by creating and continuing development of Rails. Say what you want about it now, Rails had a huge impact on the web development industry when it first came out.
- paulsutter 14y agoThanks for the correction, doesn't change my reaction. Languages are great, but its hard to tell If the proliferation of so many languages moves the industry forward or backward. Wasn't the whole point of the tower of babel story that god created so many languages to slow down progress?
- zithtar 14y agoIt's DHH, did you really expect anything other than smug superiority?
- deleted 14y ago
- ry0ohki 14y agoThis is a great point, I've always been towards the bottom of the pyramid (just coding to "make stuff work"), so when people have tried to sell me on the latest and greatest, based on the beauty, etc... were never compelling enough for me to switch.
- tjr 14y agoWould not the top of the pyramid intersect with the bottom in the land of computer science research, where new ideas are being developed but the software itself is often hacked together to the point of just barely working? Not sure if this is a useful observation, or only an observation.
- gfodor 14y agoFor mature developers the choices here are not about innate skill but about tradeoffs. This blog post makes the error of projecting what is a multi-dimensional problem onto a single dimension. You can have a pretty abysmal code base with beautiful design on top and amazing UX and be rolling in piles of money, and be perfectly aware that the code sucks but made the decision that beautiful code was not the priority or competitive advantage of the business.
- smacktoward 14y agoI would go a step further and say that, at least in my experience, the code bases that have yielded amazing UX, piles of money, etc. are almost never beautiful. The code may start out beautiful, but once people start using it they start surfacing naïve assumptions, flawed designs, bugs, etc. And if things are going well business-wise there's rarely time or resources to fix those issues in a beautiful, comprehensive way (since maintaining beauty frequently means massive refactoring or flat-out rewrites). In other words, beautiful code is code that nobody uses.
- jackcviers3 14y agoTo me, ugly code is code that gets the work done but at the price of too much complexity ( non-DRY, non-cohesive, spaghetti, callback soup ), not enough abstraction, too much abstraction, or too few quality control measures (tests). These things make it difficult to maintain any code. In other words, ugly code is code that must be rewritten to be maintained. Depending on the innate complexity of my problem that can be an acceptable trade-off. Beautiful code should also be easy to maintain; usually that means making each layer of abstraction as simple as it can be, and adding a new layer of abstraction to handle additional complexity. In this way, I may write more new code to handle newly discovered edge cases or new features, but at least I am not rewriting old code to solve the same old problems plus the new ones. That gets old really fast.
- davidw 14y agoSomeone once wrote, in their bestselling business book: "Good enough is fine A lot of people get off on solving problems with complicated solutions. Flexing your intellectual muscles can be intoxicating. Then you start looking for another big challenge that gives you that same rush, regardless of whether it's a good idea or not." This is somewhat different than what's written in this article: "Arguments like “but it works” or “it gets the job done” are tell-tale signs of someone happy at the lowest level of the technical hierarchy and your cue to just quietly back out of the debate." And here's the deal: they're both right, but you need to recognize when each situation is right. The terminology for this is called "maximizers vs satisficers". I wrote something about that and programming here: http://journal.dedasys.com/2006/02/18/maximizers-satisficers-and-programming-languages http://journal.dedasys.com/2006/02/18/maximizers-satisficers... And the book that is widely cited is this one: http://en.wikipedia.org/wiki/The_Paradox_of_Choice:_Why_More_Is_Less http://en.wikipedia.org/wiki/The_Paradox_of_Choice:_Why_More... But getting back to the discussion: there are times when you really should be looking for the best whatever it is you're looking for. But if you try and do that all the time, you'll spend all your time looking (or worse, deciding everything sucks and you can do it better yourself) and not enough time doing what it was you set out to do. Which, in the end, simply means that you have got to do the thinking and make your own difficult decisions, rather than listen to trite advice from business books or blogs, or hacker news comments, no matter how insightful they may sound!
- deleted 14y ago[deleted]
- pgrote 14y agoWhy is Wordpress on the base level?
- losethos 14y agotitanic or kayak?