MITCHELL HASHIMOTO, @mitchellh Creator of Vagrant, Packer, Terraform, and more
- Background
- ❤️ OSS
- Idols, open source:
- Katz, Resig, DHH
- Started doing OSS, 2006
- Building mods for open source forum software
- In 2013, top contributor to OSS according to GitHub report
- Founded Hashicorp
- All open source projects have > 1500 stars on GitHub, one has > 12000 stars 💥
- Measure of usage, interest
- Success how?
- One time: chance, two times: coincidence, three times: pattern, more than this? Formulaic.
- What steps? What formula?
- ⭐ You can do it too
- Before the formula… Back to 2007
- Mac specialist, 🍎 retail
- Formative period, in terms of how to build software, communities
- Lessons:
- Look and feel matters
- iPhone alignment
- Design for humans
- Be welcoming, kind 😄
- Most people want to be nice, and are genuinely kind
- If someone’s not nice, they usually have a reason, you would feel the same in their shoes
- How to approach meanness, useful for open source
- Look and feel matters
- And now… The Formula for Open Source
- Find a problem (at least one of: time, money, errors (and fun))
- Vagrant: time and errors
- Deeply appreciate, understand. Go and experience the pain. Not that painful, maybe don’t solve for it.
- Understand: Who else has tried to fix? Why is my idea better? What are the risks?
- 10x, aim for order of magnitude… Be 10x better than anything else out there, to overcome cost of replacement. At least 3x. Be significantly better to overcome the good enough incumbent.
- Design a solution
- Don’t write code yet
- Write human language
- Cover the why, the what
- Design, in words, the front-end and back-end at the same time
- Back-end: internals, technical details
- Front-end: anything user facing. the terminal, yes!
- Nice errors, fun, intuitive, human interaction element, design for people
- Playtest the front-end, i.e. mock it, make it look like’s it done, but just a shell, so you can interact with it, improve the interface. Assume you can engineer the back-end, but get the front-end right.
- Build a 0.1
- Code!
< />
😄 - 3-6 months, regardless of bandwidth (full-time, part-time)
- Focus on primary use case, guard the bugs through human-friendly errors
- 0.1 a path to a 1.0, set the direction
- Follow the design ❗, adjust if needed (this is normal 😄)
- Code as craft, care about the code, treat it as a craft, write tests, 0.1 code rarely changes
- Code!
- Documentation
- Not just a README, yes do this. Also: make real docs. Because designing for humans.
- Code, for machines. Now invest in docs for humans. Humans will not talk to the code.
- Documentation != landing page
- Human ordering, not alphabetical. Order intuitively, like a journey. Beginners want the journey, advanced users know where to go.
- Repeat yourself. Counterintuitive to programmers (DRY). Harder to maintain, but a much nicer experience.
- Plan for a full week for documentation. But pays off, lasts forever.
- Landing page
- Marketing focus:
- What it is, why it is, how do I use it, how do I get involved
- Look and feel matters
- Common look and feel across all Hashicorp landing pages
- Marketing focus:
- Ship 🚢
🎉
- Think about the 0.2, clean up, ship features that slipped
- 0.3 to 0.5, Hashicorp aims production-ready
- If you build it they will come not necessarily true. Promote through public speaking, meet ups, conferences, get creative with funds
- Community.
- Be kind, be helpful, be welcoming. All the time. Otherwise, remove yourself from the situation. Step away.
- Negative people will come.
- Find a problem (at least one of: time, money, errors (and fun))
Wed Jun 29 10:59:31 PDT 2016