3 ms·
I'd like to hear more about Oxide's development process. Was this designed on an index card, and then implemented? Or was it done with piles and piles of diagra
by spenczar5 5y ago
I'd like to hear more about Oxide's development process. Was this designed on an index card, and then implemented? Or was it done with piles and piles of diagrams and documents before the first code was committed? Was it treated as a cool, out-there idea that's worth exploring, and then it gradually looked better and better?
It's hard to get software organizations to do ambitious things like this, and it's impressive that this was done on a relatively short timescale. I think the industry could learn a lot from how this was managed.
- mbag 5y agoIt was probably done using RFDs (Requests for discussion),. You can read more on the process here [1]. But someone from Oxide would need to tell you exactly how many RFDs took to desing and implement Hubris. [1] https://oxide.computer/blog/rfd-1-requests-for-discussion https://oxide.computer/blog/rfd-1-requests-for-discussion
- steveklabnik 5y agoThere was an RFD for Hubris; it laid out the basic concepts and design goals, as well as non-goals. But after that, it's largely just iterating. When I joined there were four or five people working on Hubris regularly; we have weekly meetings where we sync up, talking about what we're working on, and discuss things.
- bcantrill 5y agoSo, the Hubris repo itself will show a bunch of that history, but in particular, Cliff used the "sketch" nomenclature for the earliest ideas. I think in those first days, our thinking was that we were hitting a bunch of headwind on other approaches -- and had an increasingly concrete idea of what our own alternative might look like. I think whenever doing something new and bold, you want to give yourself some amount of time to at least get to an indicator that the new path is promising. For Hubris, this period was remarkably brief (small number of weeks), which is a tribute to the tremendous focus that Cliff had, but also how long some of the ideas had been germinating. Cliff also made the decision to do the earliest work on the STM32F407 Discovery; we knew that this wouldn't be the ultimate hardware that we would use for anything, but it is (or was!) readily attainable and just about everything about that board is known. To summarize, it didn't take long to get to the point where Hubris was clearly the direction -- and a working artifact was really essential for that.
- spenczar5 5y agoCool, thanks. This matches my experience with ambitious projects that actually succeed: - Start with a really good engineer getting frustrated with existing stuff - but frustrated in a targeted way, and over a long period of time, not just a few weeks of grumpiness. - Let them loose for a few weeks to sketch an alternative. - Pause, and then the hardest part - smell whether this is going in the right direction. This just takes good taste! - Make a decisive cut - either it's not working, or Let's Do It! I can think of four or five ambitious projects I've been on or around that have really worked well, and they all seem to have worked in this way. I don't think I realized this clearly until this comment thread - thank you.