3 ms·
(Disclaimer: I teach this stuff) Good article. It's a keeper. Touches on a lot of things I've been telling clients for years. My takeaways: - Pure functions i
by DanielBMarkham 11y ago
(Disclaimer: I teach this stuff) Good article. It's a keeper. Touches on a lot of things I've been telling clients for years.
My takeaways:
- Pure functions in little composable pieces. Screw the fact you can't find programmers. With 1/20th the staff, it's not important
- Zero to few meetings. Keep focused on one thing. No playing around with WhizzBang Platform 7.0 because all the cool kids are using it. Mind your knitting.
- Keep It Simple, Stupid. Engineers are our own worst enemy. Solve the most simple problem possible. Then add complexity a little bit at a time, only as a last resort. For those of you saying "But messaging is solved", "Erlang was written for messaging", and so forth, this is where you missed. Any complex system (with a few notable exceptions) will look very simple when solved in this manner. In fact, that's the entire point.
- Running and deploying are the same thing. CI/CD. There is no Big Red Button to push because we're always working on the airplane engines while the plane is flying
Coming from a traditional OOA/D/P background, this mentality was extremely foreign to me. Even though I was using and talking about TDD, it was still in terms of composing and re-arranging object graphs. It wasn't until I got into F# several years ago that the pieces started coming together. This is a very difficult conceptual leap to make, because a lot of the ways you work looks completely ass-backwards to folks who are used to doing it the other way.
- throwaway437812 11y agoCould you elaborate what is is that F# taught you, and how it changed the way you work?
- DanielBMarkham 11y agoI realize you're using a throwaway account, but this is really more like an essay, not a HN comment (cue up snarky observations about the length of my comments). There were four or five things that all came together at the same time for me: lean startup, functional programming, TDD, and static page web programming. If you're interested, my contact details are in my profile. Happy to have a call/Skype. It's an important topic.
- baronseng 11y agomaybe a blog post and post it on hn?