10 ms·
A student asked how I keep us innovative – I don't
- YetAnotherNick 3y agoThis is the case where author has a fixed story and then filled rest of the details with good sounding sentences. > Have a problem with PostgreSQL? Pop it into a search engine and you'll get an answer right away. But have a problem with a vector DB? Comb the GitHub Issues or Discord and hope that you find an answer > They often have great ecosystems around them > They use well-known concepts PostgreSQL issues are generally significantly harder to debug than vector db in my experience. In general, a lot of times I found documentation and concepts to be significantly better for quite a bit of newer technologies like tailwind, caddy, gin, golang than say springboot or react or oracle DB or C++ or cassandra. Comparing PostgreSQL to graph DB or vector DB is very apples to oranges as one can't replace other. Telling old is better than new in general is both wrong and harmful to software engineering.
- mplewis 3y agoBut this is empirically true, I’m not sure what your issue is with the statement? The likelihood you will run into a serious undocumented issue with Postgres is so much lower than with some new vector database. I’ve personally experienced this moving between the mature Rails ecosystem and multiple immature microservice frameworks.
- YetAnotherNick 3y agoAs I said comparing postgres to vector db is weird example as one is not replacement of other and one field is going more technological shift. Better example would be comparing say apache to caddy or spring boot to gin or even oracle nosql to mongo.
- golemiprague 3y ago[dead]
- ulizzle 3y agoIt’s a leading question, likely political, trying to pose innovation as some sort of universal good when engineers intuitively ask “what” exactly they mean by that, as evidenced by this post. Any engineer knows intuitively that the answer when it comes to picking new technologies in your architecture is always: “it depends” but that’s not the point. When it comes to socializing the design, imo, it’s another ideologically motivated waste of time. In order to poke holes you must know the problem well enough to do so, but that’s not what people do on their “sprint planning”. Instead everyone has their own problems, which they must complete by the end of the sprint, or get a ding in their performance review. With no accountability in their estimates, there’s no pressure for accuracy. That’s why tests are better than code reviews.
- koonsolo 3y agoAdvocates of new technology mostly only mentions the benefits. I always ask what the drawbacks are, and when the answer is "None", I reply "Ah, so you don't know the drawbacks yet?" Everything is a tradeoff. If you want to switch to something newer, make sure you know the benefits and drawbacks of both systems, and then decide if it's worth the effort and risk.
- mo_42 3y agoI expected something different: whether the product that someone develops should be innovative or not. Rather the author writes about the underlying technology that is innovative or not. Neither of these two need to be innovative IMHO. Technology should enable us to do something useful. Or translated into business terms, it should be a profitable business as profit is a proxy of how useful a product or service is to people.
- Justsignedup 3y agoWell put, and is a great read for people to understand the fundamentals of leading an eng team. What sort of thinking goes into it. I feel like this perfectly explains how I need to think on a daily basis. Lead engs are about bringing order to a chaotic eng process.
- GrumpyYoungMan 3y agoSolid article. The one quibble I have is IMO that there should be mention that, when the choice is made to use an untried technology, it needs to be acknowledged and communicated that this carries some level of risk and an increased chance of not meeting the project goals.
- datadrivenangel 3y agoThe bleeding edge is called the bleeding edge, because you risk cutting yourself on it! Innovation can be good, but you have to understand the risk/reward profiles.
- dvas 3y agoSocialize the design: "Find people who you think will be contrarian, and have them poke holes in the design" Happy to see this mentioned! By involving everyone, the experienced engineers will usually ask the harder questions and test the assumption of your design and the juniors to learn and re-evaluate assumptions they have about building software. Almost a win-win for everyone. Even though in these discussions there may be a social aspect where certain individuals are trying that much harder to find disadvantages of a proposed design (many reasons which readers are probably familiar with). However, I think this becomes a net positive to the overall engineering as everyone tries to bring their A-game to these discussions. Anyhow, my experience has been that collectively reasoning about a design (assuming the team feels comfortable with criticism) will always get results quicker.
- intelVISA 3y agoCan be a tough act to balance in reality: "assuming the team feels comfortable with criticism" is where this well-meaning process falls over in most shops.
- lfowles 3y agoI've observed it used as a great way to shut down projects that don't immediately have demonstrable results
- ska 3y ago> is where this well-meaning process falls over in most shops I would argue that if you have this problem, it is fundamental, and your team will never be firing on all cylinders until you fix it. Admit it is not easy if the dysfunction is well set in.
- saulpw 3y agoGreat, but then how do you fix it, how long will that take, and how do you get any work done until then?
- 3y ago
- a1o 3y ago> On my personal projects, I will usually go with whatever sparks joy. I think this is the right thing for personal projects. I think throwaway toy projects should be free to go that route too.
- sdoering 3y agoI agree. I once built a small weather application that changes the background image based on the weather being reported. I wanted to understand single page applications a bit better and just decided to do it in Vue. Had never done anything bigger than a bit of web tracking in JS before. So it was quite a fun experience. I still sometimes enjoy using it (it is still running and available, so I like to visit it like sn old friend).
- sublimefire 3y agoI like to think about it like R&D in a company. You do not spend all of the budget on it but just some part, like 15%. Similarly you try out new things and spend some time on it, like 15%.
- xnx 3y agoVery sound advice. It's amazing how many projects never identify what problem they're trying to solve, or lose track of it immediately to focus on the technology.
- mysterydip 3y ago"our project is just like x but written in y!"
- sublimefire 3y ago"it is very easy use, I wrote it in a week"
- atomicnature 3y agoHowever, isn't innovation usually about building something exciting from output perspective, rather than about the building materials? We want the most reliable building materials, but how you put them together to get novel functionality, or other desirable characteristics at a higher level is what makes a system innovative.
- jiggawatts 3y agoIt turns out that much of modern engineering was enabled by advances in material science. As a random example, look at SpaceX Starship: a key aspect of its design is the use of a specific stainless steel that has ideal properties under cryogenic temperatures. Similarly, the Space Shuttle external tank used a weird lithium-aluminium alloy. The F35 fighters gain some of their performance from high-performance plastics you've probably never heard of. Etc, etc...
- atomicnature 3y agoOK, from a philosophical point of view, it doesn't matter what building materials you use. Practically, as you've said, it does make a huge difference on what's possible (no disagreements there) Say we have silicon chips now to build computers, which give us say an iPhone experience. Tomorrow, I have a new material, which can also be used to deliver an iPhone experience. From the experiencer's output pov, it is the same innovation. They can't tell the difference between Silicon chip iPhone vs new material iPhone. You may use any number of materials and in permutations/combinations to get a given output. An artifact is termed innovative, when the "whole system" can do something that people consider particularly exciting/useful/interesting/etc. I am merely questioning the author's notion of what makes an innovation (improved building material view vs whole system improvement view).
- deleted 3y ago[deleted]
- willcipriano 3y agoWould you consider a different pattern, woven on a old loom a new technology? A app is not a "new technology". A microprocessor is a technology and the code you run on it is just another pattern on the loom.
- MattPalmer1086 3y agoEverything is built on top of other stuff. Surely a micro processor is just a product made using chip fabrication technology? Which itself is just a commoditised production method based on other... err... technologies. You could pick another word at some arbitrary level, but I'm not sure it's a particularly useful distinction to draw.
- terminous 3y ago> Would you consider a different pattern, woven on a old loom a new technology? A app is not a "new technology". A microprocessor is a technology and the code you run on it is just another pattern on the loom. It's not useful to get pedantic about the definition of a "new technology." What is your point? Take the example cited in the article about deciding whether to store your data in SQL databases, vector databases, or blockchains. Are you saying that this is a purely aesthetic choice and not a choice that bakes in a lot of other patterns and decisions?
- willcipriano 3y agoIt's a different mindset once you start thinking in those terms. Inventing a new technology sounds impossible but writing some code isn't difficult. You'll be less likely to get paralyzed daydreaming about the lofty future of this new technology if it's just some code that can be thrown away at any time for something better. When we list humanities technological inventions a century from now, I don't think we will be listing CockroachDB or similar.
- terminous 3y ago> it's just some code that can be thrown away at any time for something better. That's exactly what the author is arguing against. Decisions about foundational infrastructure (frameworks, databases, programming languages) have consequences for the organizations that decide to use them. Switching costs can be high. Lock-in of all kinds is real. > When we list humanities technological inventions a century from now, I don't think we will be listing CockroachDB or similar. That isn't at all what I or the author of the article was saying.
- ngrilly 3y agoI am a proponent of "choosing boring technologies", but I don't see how it relates to building innovative products and services. You can create an innovative product or service using boring technologies under the hood. I really like the post otherwise.
- mattgreenrocks 3y agoYounger devs conflate tech choices with innovation. They’ll believe that a computer vision company is a dinosaur because they’re using C++ and a glorified CRUD startup is hip and relevant because it uses Rust. It doesn’t help that the anemic-ness of some domains doesn’t set in until 1-2 years later.
- kritr 3y agoUsing newer technologies sometimes buys development velocity, which is a good indication of innovation.
- BlackFly 3y agoI agree that novel technical choices are often conflated with innovation over eagerly. My experience is that in learning the lesson that these things are different many people over correct and assume that novel technical choices are only ever resume padding or useless hype. There are no silver bullets and the only way to get an order of magnitude improvement is iterated marginal improvements. That something is at best a marginal improvement shouldn't be taken for a lack of innovation.
- Joel_Mckay 3y agoThank you for being honest with the kid, as a lot of folks exploit peoples inexperience for financial reasons as policy. In general, there are a few assertions people make: A. The industry always changes B. The industry always follows the same trend Both are incorrect, but rather the truth floats somewhere between the two. A better question is often "what skills will offer long-term fiscal utility?" The answer to that utility question exposes the dirty side of the tech industry: 1. is the concept an orthogonal theme from purely Academic or Commercial Marketers? If Yes, than the probability it will still be around in 2 years is vanishingly small. 2. is the role occupied by Senior staff over 35 at more than 6 firms? No, than the probability of redundancy increases exponentially with time, as the skill demand is under artificial supply manipulation due to wage suppression, regulatory capture, and or tax incentives refactored into a subsidy. 3. what is the average ratio of staff with the skill still present at firms over 3 years? if less than 5%, than the roles still fall under churn-and-burn economics, and at some point the stock valuation bump will need ritualistic HR sacrifices. if over 90%, than a roles true value is marginal, and will be bid down in pay over time. 4. An "award for the worlds smartest sucker" is not a certificate that will hold value. Anyone that claims they know what will happen in 5 years is a fool selling something like nonsense vendor certifications, media packages, and or political rhetoric (STEM etc.) 5. Does the skill require physical presence? No, than the law of outsourcing bids down skill value over time due to irrational competitors. 6. Integrity in whatever you choose to do is important regardless of the role. For example, someone using an emotionally charged subject in an 72% LLM generated article will antagonize the wrong people eventually. 7. Copying what others do... often means one will land in second place... or worse. Good luck out there, =)
- scubbo 3y agoA relevant slideshow (with captions): https://boringtechnology.club/ https://boringtechnology.club/ You can tell it's getting old because it used Phony Stark as a symbol for innovation, but the underlying message is timeless.
- sublimefire 3y agoTotally, if you want to solve the problem you do not want to create more problems by solving it. Great slides and captions BTW. Nothing pisses me off more that to maintain two stacks at the same time - the good and the bad. The bad one was enough.
- garba_dlm 3y ago> if you want to solve the problem you do not want to create more problems by solving it. but if, in contrast, what you want to create is a business then it's easy to argue you actually DO want to create more problems; partially so you can "solve" them in "the next version" (or something); this way your "customers" (which really are looking more like victims) can have a real motivation to upgrade; to buy the next version, to keep on being "valued customers" this is why making tech products used to be very different from making consumable goods (e.g. food); right up until all businesses turned into subscriptions businesses and other kinds of rent-like schemes
- tikhonj 3y agoAnother "use popular tech because it's popular" article dressed up as engineering wisdom. "Nobody gets fired for choosing IBM" isn't supposed to be aspirational! The most effective organizations I've seen have been the ones who are the most willing to both use "non-standard" technologies and develop their own tools in-house. There's a question of causation—are they more effective because they're open-minded, or do they get away with weird choices because they're more effective?—and, from what I've seen, it's a bit of both. But I've absolutely seen, first-hand, that top-down standardization on enterprise "best practices" is absolutely not a recipe for anything beyond passable mediocrity. If anything is a sign of weak engineering leadership, it's that. I'm not saying that a team should use different technologies for the sake of using different technologies, I'm saying that strong engineering leadership means having a clear technical vision and culture where the popularity of a tool is very low on the list of considerations when choosing what to use.
- yayitswei 3y agoAgree. Another way I like to think about it is to pick the simplest path to solve the problem, which might not be the most popular solution. Choosing postgres by default bakes in a ton of assumptions and often adds extra layers of complexity. Which ORM do you use? What if you want to version your changes?
- kelsey9876543 3y agoThe author makes a horrible assumption themselves right in their opening argument that "most of the things you are trying to do have been done already". How is a business going to find value copying and pasting sql solutions from stack overflow as honestly suggested by the article author? Horrible advice, pick the correct tool for the job, sometimes that tool is brand new because you are doing something brand new. The author completely avoids the real question which is how to select what new technology to use by saying only choose old technology.
- luispauloml 3y ago>The author completely avoids the real question which is how to select what new technology There is a whole section called "When (and how) to use innovative new tech" talking about this, and another one called "My framework for choosing technologies" describing the author's approach.
- jackblemming 3y agoNot interested in hearing people parroting the boring technology mantra over and over. Maybe say something novel for once. Also maybe choose technology based on pragmatic metrics, not how old it is. “Choose boring technology” is like MBAs saying “we’re data driven”. And I guarantee if we look at this persons tech stack it’s probably slathered with a bunch of shiny new AWS crud that’s “web scale”.
- stouset 3y ago> “Choose boring technology” is like MBAs saying “we’re data driven”. This is so true. “Choose boring technology” is also used to post-hoc justify whatever choices you’ve already made. To many, golang is boring and Rust is unproven. To others, both are unproven and C/C++ are boring. Who’s right? Everyone and no-one.
- tikhonj 3y agoC is boring in the same way that weaving through traffic at full speed on a motorcycle is boring—people have been doing it forever and some of them haven't even gotten hurt by it...
- taylorbuley 3y agoI feel this. But at the same time, there are these unproven toolchains that just feel right and I am OK adopting them. GraphQL is one today. React (and before it, Backbone.js) before. Hell, even CoffeeScript. Angular 1.0 was one thing, but I don't regret a single one of those other implementations.
- mlindner 3y agoThis is a great answer if the thing you’re building isn’t innovative. If it’s just a nodejs storefront site. However it’s a pretty garbage answer if you’re say trying to create a new thing that’s not been seen before.
- __xor_eax_eax 3y agoMeh. Reading the techniques behind the giant GCloud DDoS before this, if you're not understanding the latest and greatest technology and you're attackers are, you're going to be victimized. To me this sounds like a stogy old grey-hair being defensive about why its okay to be obsolete. Its not
- reactordev 3y ago>"Now reduce down the solution" I love this part. This is the validation after proof that you indeed, solved the correct problem. Because if you can't shave away the complexity to the underlying problem and "get to the heart of it" then you didn't solve the problem yet. You merely handled its edge-cases.
- innagadadavida 3y agoThe tearoom is ask is “Can I hire an average software engineer with 2-5y experience who’ll will have no problems keeping this running 99.999% of the time while doing development and deployments?
- kubb 3y agoThis post seems to be mistaken in its understanding of innovation. It seems to take it as using new technologies. But this is a misunderstanding. Innovation means inventing novel solutions that solve relevant problems better than what has been known before. This could be creating a new tech, and using it, but it could also be applying existing tech in a novel way. So you could be innovative using old technology, and you could use new technology, but not be innovative. I guess the company where the author of the post works is neither innovative, nor do they use new technology, but there's space on the market for companies like that. Principal engineers who work there don't even need to know the meaning of innovation.
- mattgreenrocks 3y agoIMO, most people don’t want to be working on innovative things, despite what they say. It is brutally hard sometimes, and you have to be okay with being alone to figure things out in your own.