-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Tagging @bradfordboyle @ktchen14 @sannidhi @kalensk @amilkh since y'all have either asked me about this project in person or replied to my email. Everyone else I've contacted (including @gavmor, @kejadlen, @bitops, @jhamon, @professor, @pgoodwin), feel free to respond too! I want to work with all of you! I'm just shy about pushing my ideas too hard.
What is this repo for?
I want to discover better ways of creating software, by creating it, reflecting on the process, and then, perhaps, writing a book about it. What exactly "better" means is up to all of us to figure out. I suspect we'll all approach the issue from slightly different angles, and that's great. One of the exciting features of our field is that there is no shortage of things that can be improved. 😉
How will this project work?
My vision is for this GitHub org to become a semi-cooperative collective, (kind of like Valve in structure; see their new employee handbook) where we collaboratively generate and discuss ideas. Any of us can then use those ideas (with attribution) in our own individually published works.
Here's how I imagine our creative process working:
- We all write down our thoughts, feelings, and experiences related to software development. Anything and everything. Each item goes in its own file, to reduce the chance of merge conflicts. The writing does not have to be polished; it can be an outline, or even just a headline. We'll add our questions, comments, and answers inline in each others' files, so gradually the outlines will be filled in by discussions.
- We can all contribute as much or as little as we want, as our schedules allow.
- Once our discussions begin to cool and solidify, we can begin the process of mining publishable materials from the collective work—though this doesn't mean we have to stop generating new ideas.
- Members of the group can work solo on their own publishable projects, or form small groups—whatever we want. As we produce polished works, we should take care to give due credit to the originators of an idea—the git history will help us here. In this way, each of our individual projects will strengthen the reputation of others in the group.
I know this all probably sounds very abstract. If you'd like to see examples of the kind of granular idea-files I'd like us to start out with, I've already written a handful of them in this repo. (Note, though, that my examples are way too polished, due to my lack of prioritization ability.)
Everything is open to change. I am not committed to the "pattern language" format, the subject matter, or even the infrastructure. We don't have to use GitHub, or Git. We could make a wiki or a Google doc instead. But I think Git is nice so we can attribute work, as I described above.
Next step: Roman vote
If, after reading all that, you're still interested in this project, please leave a thumbs-up/thumbs-down/meh reaction on this post to indicate your level of enthusiasm for my proposed creative process. If you're thumbs-down or meh, please also leave a comment to let me know what alternative organizing principles would make you excited to work on this project.