4 ms·
When you hold a hammer everything looks like a nail. When your job is to write code you think the entire business is the code. The UX org thinks the business l
by felizuno 5y ago
When you hold a hammer everything looks like a nail. When your job is to write code you think the entire business is the code.
The UX org thinks the business lives and dies on design, the engineering org thinks the same about code, and the finance org thinks the same about budgets. None of these elements are optional but it's uncommon that any of them are actually what the business sells for money. Most businesses are not "technology first" businesses and at these companies you must not make perfect the enemy of good enough by obsessing about things like code quality or artistic design purity.
Sure bugs can reduce customer facing quality, but not as much as completely lacking the new features that your team put off for two sprints so they could switch CSS preprocessors for the second time in 8 months. Look at all the companies founded by former programmers with perfect clean code who fail miserably at being an actual business. Then compare that to the number of successful businesses with absolutely junk tech that do silly things like appear in the S&P 500. It's not that I think garbage code is great, simply that over focusing on code quality is frequently selfish and benefits developers at the expense of actual customers.
- Marlondu28100 5y agoJjjj
- marcus_holmes 5y agothis. Our job is to write profitable code. Not beautiful code. There's a balance; too much tech debt and the code isn't profitable. But too little tech debt is not profitable either.
- kayamon 5y agoThat’s not your job, that’s just how you choose to live your life. You reject beauty.
- xboxnolifes 5y agoWhen you program as an art form, you get the salary of an artist.
- caffeine 5y agoAppreciate your point but this is a false dichotomy - (to me, at least) there's beauty in function. In fact, it's sort of the only non-subjective aesthetic. Code like the Linux kernel isn't necessarily all beautiful in terms of overwrought abstractions, but I find quite beautiful the accretion of small changes and thought over time that has made it suited to task.
- ransom1538 5y ago^ Exactly. Give me an amazing business idea - I can make it work with the crappiest of code. Give me a terrible business idea - I could not make it work John Carmack.
- TomSwirly 5y agoI've been in too many miserable jobs where forward progress was slowed to a crawl by that attitude.
- grumpyprole 5y ago> Most businesses are not "technology first" businesses This is changing. For example, Banks are slowly realising that they are delivering all their services via technology. A serious outage of banking infrastructure can ruin lives, see for example the TSB debacle in the UK which even forced the then CEO out.
- closeparen 5y agoThis fastidious commitment to developer productivity only gets trotted out when it comes to code quality. It’s my experience that shops which are very concerned about whether maintenance and quality work is an optimal use of developer time also tend to stick them in open offices, saddle their calendars with unproductive meetings, underinvest in tooling, shatter their minds with noisy oncall shifts, impose slow and heavy bureaucratic processes, etc. If that is indeed the real motivation for blocking refactoring projects, it’s a weird place to start.
- dgb23 5y agoGood points. Personally I think quality is really hard, we don't do it nearly enough. And it will be increasingly important. There are firms who ship outstanding UX and tech. They will eat everyone's lunch if others don't manage to catch up. Reliability, consistency, responsiveness, performance... These things add up, because users apparently really like tools that are polished, just work reliably and perform well. So many horror stories have been piling up about just plain bad software and so much just doesn't work as it is supposed to work. There will be a turning point where we can't keep only throwing things at the wall and see what sticks. I think this kind of stuff will become one of the primary distinguishing features for products and services as expectations go up. People are getting tired of software that doesn't work and countless apps that crave for user attention and needs constant fixing. It's too expensive and useless. Useful, really well made stuff is going to dominate. That's not what you're criticizing directly here. But in my opinion this goes all the way down. Broken window theory and all that. Framing it as "developer productivity" seems wrong to me and perhaps reveals where the issues are. That's not what quality is primarily about I don't think. We're in midst of a revolution, but at some point we need to grow up, take more responsibility for what we make and be _actually sure_ that we can do that with confidence.
- 908B64B197 5y ago> Then compare that to the number of successful businesses with absolutely junk tech that do silly things like appear in the S&P 500 And now look at the few firms at the top who broke the 1T barrier. All tech focused, almost all lead by engineering and engineers at the top.
- felizuno 5y agoThese are actually all great examples of real "tech first" businesses that do compete and win on the basis of (among other things) the quality of their code. My point was that Under Armor, which is also on the S&P 500, sells a lot of clothes online and every dollar they save on software they can spend on R&D for fabrics etc. which is what they actually sell. I would bet that an hour long meeting with 5 software engineers and a PM so "we can agree about nested ternaries" costs as much or more than a day of prototype garment work on a new pair of socks.
- tonyedgecombe 5y agoNot any more. I chose my bank based on the quality of its phone app. I choose my hotels based on their ease of booking. We picked my wife's car based on its ability to connect to our phones. I've switched brokers because their web interface was so buggy. And on and on. If your employer can't provide a good quality interface then it won't be getting any of my business. Talking about switching CSS preprocessors is a red herring when so much enterprise software is shit.
- PeterisP 5y agoWhat I hear in your statements is that you're choosing companies based on the features or UX of their products, not because of the quality of their codebase, which is mostly not related to the things you describe. If the car had better quality code but did not yet have implemented the feature to connect to your phones, you would not have bought it - which is exactly the point the parent post was making.
- felizuno 5y agoYeah but you didn't choose them because they used if/else clauses instead of switch statements. You chose those things because they have the features you want (that work regardless of how) without knowledge of how DRY a given layer of their stack is. This is fundamentally my point - that businesses work by offering the features people want that their competitors don't have yet, regardless of what those features look like under the hood. And regardless of how shitty enterprise software is (and I hate it plenty) it seems to be funding the paychecks of millions of people.
- tonyedgecombe 5y ago>Yeah but you didn't choose them because they used if/else clauses instead of switch statements. No, but I will make choices based on systems that crash or have features that fail to work which is surprisingly common. As an example Windows XP was so insecure that it opened the door for Apple. Microsoft had to stop adding features and rewrite substantial portions of it for SP2.