4 ms·
Agreed. A former mentor of mine told me a nice way of viewing software development: 1. Make it work. 2. Make it fast. 3. Make it pretty. Transformers & LLMs h
by matthewolfe 1y ago
Agreed. A former mentor of mine told me a nice way of viewing software development:
1. Make it work.
2. Make it fast.
3. Make it pretty.
Transformers & LLMs have been developed to a point where they work quite well. I feel as though we're at a stage where most substantial progress is being made on the performance side.
- diggan 1y agoHeh, seems people I've been learning from been biased away from beauty, as I know that as "Make It Work, Make It Right, Make It Fast".
- abybaddi009 1y agoWhat's the difference between make it work and make it right? Aren't they the same thing?
- robertfw 1y agoMaking it work can be a hacky, tech debt laden implementation. Making it right involves refactoring/rewriting with an eye towards maintainability, testability, etc etc
- stavros 1y agoYeah, if it's not right, it doesn't work.
- darknoon 1y agoIn ML, often it does work to a degree even if it's not 100% correct. So getting it working at all is all about hacking b/c most ideas are bad and don't work. Then you'll find wins by incrementally correcting issues with the math / data / floating point precision / etc.
- DSingularity 1y agoNot true. Things can work with hacks. Your standards might consider it unacceptable to have hacks. So you can have a “make it right” stage.
- gabrielhidasy 1y agoDepends on your definition of "right" and "work". It could be a big ball of mud that always returns exactly the required response (so it 'works'), but be hellish hard change and very picky about dependencies and environment (so it's not 'right').
- stavros 1y agoNope, it's right, but it's not pretty.
- deleted 1y ago[deleted]
- gopalv 1y ago> make it work and make it right? My mentor used say it is the difference between a screw and glue. You can glue some things together and prove that it works, but eventually you learn that anytime you had to break something to fix it, you should've used a screw. It is trade off in coupling - the glue binds tightly over the entire surface but a screw concentrates the loads, so needs maintenance to stay tight. You only really know which is "right" it if you test it to destruction. All of that advice is probably sounding date now, even in material science the glue might be winning (see the Tesla bumper or Lotus Elise bonding videos - every screw is extra grams).
- kevindamm 1y agoI've usually heard/said it as 1. Make it 2. Make it work 3. Make it work better (different circumstances have different nuances about what "better" means, it isn't always performance optimization; some do substitute "faster" for "better" here, but I think it loses generality then).
- acosmism 1y agoi like this version best
- gabrielhidasy 1y agoI always heard the "Make it Right" as "Make it Beautiful", where Right and Beautiful would mean "non-hacky, easily maintainable, easily extendable, well tested, and well documented"
- matthewolfe 1y agoFair chance I'm remembering it wrong :D
- mindcrime 1y agoI've always heard it (and said it) as: 1. Make it work 2. Make it correct 3. Make it fast
- binarymax 1y agoThe Huggingface transformers lib is currently undergoing a refactor to get rid of cruft and make it more extensible, hopefully with some perf gains.
- jotux 1y agoA similar concept dates back to 30BC: https://en.wikipedia.org/wiki/De_architectura https://en.wikipedia.org/wiki/De_architectura Firmitas, utilitas, venustas - Strong, useful, and beautiful.