5 ms·
As a general rule: you (and your company) are not special. If you look at an industry way of doing something and decide it’s wrong, you should have solid reaso
by cgrealy 6y ago
As a general rule: you (and your company) are not special.
If you look at an industry way of doing something and decide it’s wrong, you should have solid reasoning to back it up.
I’ve seen so many companies decide that they have some unique requirement to do X that every other company out there doing X doesn’t have. It leads to reinventing the wheel, but generally in a worse way.
All that said, the most dangerous words in engineering are “because we’ve always done it that way”.
- 1_2__4 6y agoCounter-argument: A positively staggering amount of decisionmaking at a company consists of "look at what other, successful companies are doing and mimic them". It's cargo cult management by the very definition: they see the other people doing the correct incantations and bounty fall upon them. Clearly, we just need to utter those same incantations and we'll have the success they did. And I'd further counter that: yeah, actually, you and your company ARE special. Every company is. There is no One True Way of running a business, or any individual aspect of that business. Everyone's triangulating around resources, people, industry, corporate vision, etc. If anything I'd say the argument that "you are not special" is the fallacy, as it leads directly to the kind of cargo-culting that you see so many failed companies do. Finally, when we see successful companies, how often is it because they just mimicked what everyone else was doing? Not very frequently, as it turns out. Well-behaved companies seldom make history.
- ska 6y ago> Not very frequently, as it turns out. I don' think this is quite right - it's probably important to do something differently, but likely equally important not to do too much differently.
- 908B64B197 6y ago> Counter-argument: A positively staggering amount of decisionmaking at a company consists of "look at what other, successful companies are doing and mimic them". It's cargo cult management by the very definition: they see the other people doing the correct incantations and bounty fall upon them. Clearly, we just need to utter those same incantations and we'll have the success they did. They never do. I recall talking to someone who was very very happy to brag that his company was doing "everything just like Google" and following the exact same practices he read the company did on various engineering blogs. I asked him what was the compensation like and how he managed to get kids from Stanford to work at his company instead of their startups and he just gave me a blank stare. Said something about how they were not in Silicon Valley and paid median salaries and that he had "no trouble finding Google caliber talent in the local market." and that "it's not really the local market's customs to give stocks to coders". I think someone ended up buying the whole thing. Not the company but the office furniture they left after going broke.
- cgrealy 6y agoI'm talking about the standard things that people do that are common across companies. Absolutely make your USP special. But logging? DB access? Deployment? Those are generally solved problems and unless you have a very good reason not to... "doing what everyone else does" is going to be a lot less pain in the long run.
- mbrodersen 6y agoYep there are many solutions to the same problems out there. So thinking is required to choose the solutions that works best in your specific situation. Taking into account your business, team, customers, runtime environment etc. etc. Simply cargo copying somebody else without understanding the pros/cons is what crappy devs do.
- 908B64B197 6y agoHere's a controversial opinion: Best practices aren't the same depending on the caliber of the engineers you have.
- ehmish 6y agoYeah but because of regression to the mean everyone has fhe same caliber of engineers
- 908B64B197 6y agoI'm not sure I'm following here.
- mbrodersen 6y agoAbsolutely true. The less experience you have, the more following/copying what others have done makes sense.
- npsimons 6y ago> If you look at an industry way of doing something and decide it’s wrong, you should have solid reasoning to back it up. I agree! Now can we also agree that often what is touted as "best practice" is not industry practice, but rather built on "authority" as the article rightly claims? The number one thing I hate about "best" practices is it heavily implies there is one and only one "correct" way to do things, and every other way is wrong.
- mbrodersen 6y agoAgree. Some people simply refuse to acknowledge that all choices have pros/cons. The less experience the developer has, the more this seems to be true.
- whatshisface 6y ago>If you look at an industry way of doing something and decide it’s wrong, you should have solid reasoning to back it up. Here's one: if you copy them in every way, you'll just be a smaller and later version of them and get no users or sales. A-priori, you're going to need to find an edge somewhere.
- Jtsummers 6y agoI've also had employers try to copy much larger companies' methods without real understanding. You should know why you're doing it, not just why you're not. Is SOA appropriate to every org? What does it solve or permit? Is it appropriate at the scale of a system with 10 developer? Or does it become effective at some scale between 10 and Amazon? Much of industry treats git as the de facto version control system. Why not another system? What makes git better overall or is it? While I'm a massive proponent of unit testing, there are systems where they're actually very impractical. Should we contort our software and environment to support a popular, best practice testing method when neither support it in their existing or natural states? Should everyone really be contorting HTTP to be the base protocol for every application? Does it make sense as a messaging system protocol? As your email protocol? Would more dedicated protocols be better?
- mbrodersen 6y agoAgree. Some developers seems to not understand that thinking is required. You need to evaluate pros/cons for each choice.
- mbrodersen 6y agoThe problem I usually experience is a developer who is unable/unwilling to even imagine that there sometimes are better ways to do things than whatever is fashionable/popular at the moment. I realised that it usually reveals a deep lack of understanding of what we are trying to accomplish and/or not understanding the pros/cons of the technology that is currently fashionable.
- fukmbas 6y agoThere's no need to reinvent the wheel