Quotes wanted
For the presentation
mark and I are giving at LinuxConf AU, I'd like to be able to intersperse some good quotes from various Dreamwidth developers in our slides. To that end, if you've got a few minutes, I'd love to hear from some of you, especially people who started programming with us (or are using us to dust off rusty skills).
The topic of the talk is "Building your own contributors", and it's going to be concentrating on the steps we take to a) attract and retain qualified contributors who have a whole host of projects clamoring for their attention, and b) train people who have interest in contributing, but don't necessarily feel like they have the skills out of the box and need some coaching.
I'm looking mostly for soundbite-type comments, but if you tl;dr on the questions I'm sure I'll be able to use what you say somehow. *g*
If you'd like to help out, leave a comment with a quick introduction outlining your background (both your experience with programming in general, and any experience you've had contributing to other open source projects), and then answers to any/some/all of the following:
What first attracted you to contributing to Dreamwidth?
What are some of the things that we (the DW project maintainers) did to make you feel welcome?
What's the best thing we did to help you get up to speed and contribute effectively?
Was there anything in particular, big or small, that made you decide that DW was the kind of project you wanted to contribute to?
If you've had experience on other OSS projects, what makes DW different? Better? (Worse?)
What's your favorite part about the DW project culture?
Do you have any good stories to share about awesome moments?
What are some of the things you've learned, both technical and otherwise, while working on DW that you don't think you would have learned otherwise?
(If there's anything else you want to discuss that isn't mentioned specifically in the questions, but that you think someone who's trying to do a DW-style OSS project should know, add that as well!)
![[staff profile]](https://www.dreamwidth.org/img/silk/identity/user_staff.png)
The topic of the talk is "Building your own contributors", and it's going to be concentrating on the steps we take to a) attract and retain qualified contributors who have a whole host of projects clamoring for their attention, and b) train people who have interest in contributing, but don't necessarily feel like they have the skills out of the box and need some coaching.
I'm looking mostly for soundbite-type comments, but if you tl;dr on the questions I'm sure I'll be able to use what you say somehow. *g*
If you'd like to help out, leave a comment with a quick introduction outlining your background (both your experience with programming in general, and any experience you've had contributing to other open source projects), and then answers to any/some/all of the following:
What first attracted you to contributing to Dreamwidth?
What are some of the things that we (the DW project maintainers) did to make you feel welcome?
What's the best thing we did to help you get up to speed and contribute effectively?
Was there anything in particular, big or small, that made you decide that DW was the kind of project you wanted to contribute to?
If you've had experience on other OSS projects, what makes DW different? Better? (Worse?)
What's your favorite part about the DW project culture?
Do you have any good stories to share about awesome moments?
What are some of the things you've learned, both technical and otherwise, while working on DW that you don't think you would have learned otherwise?
(If there's anything else you want to discuss that isn't mentioned specifically in the questions, but that you think someone who's trying to do a DW-style OSS project should know, add that as well!)
no subject
> What first attracted you to contributing to Dreamwidth?
One of you poked me!
> What are some of the things that we (the DW project maintainers) did to make you feel welcome?
You actually looked at my contributions.
> What's the best thing we did to help you get up to speed and contribute effectively?
To be honest, not much -- but also I came around *WAY* early before y'alls had anything of that sort set up.
> Was there anything in particular, big or small, that made you decide that DW was the kind of project you wanted to contribute to?
Same as for what you did to make me feel welcome -- actually looked at my contributions.
> If you've had experience on other OSS projects, what makes DW different? Better? (Worse?)
DW has a definitive task list ( of course, nowadays I've been going off on my own more and more based on things I've heard wanted, but... )
> What's your favorite part about the DW project culture?
That I can correct my "boss" (e.g. mark) and not get in trouble! And that it's totally acceptable to know more then him!
> Do you have any good stories to share about awesome moments?
Probably the whole "I finished the importer during finals week" thing.
> What are some of the things you've learned, both technical and otherwise, while working on DW that you don't think you would have learned otherwise?
BML sucks, editing the args of a Schwartz task saves said changes to the DB on temp-failures, and tons of other random technical quirks of the codebase.
no subject
Shambling horrors of the deep are REAL.
Websites can be powered by steam radiators and a bunch of inexperienced babydevs can upgrade it to solar power without the whole thing exploding.
Well, mostly without it exploding.
Ripping out "features" is cause for glee and merriment.
Devs can be bribed.
What took a sleep-deprived college student a final project requirement, a few gallons of caffeine and a few all-nighters to create can take caring devs months to fix. And? Totally worth it.
Pretty code is better than pretty shoes (but only marginally).
String is like code: you want stuff that looks nice, flows through your fingers, and doesn't tangle at every opportunity.
no subject
I think my favorite aspect of the DW project culture is that every contribution is welcomed, even if it's incomplete or flawed. There is a sense that we want to help developers improve instead of rejecting them for not meeting some sort of standard of quality. I suspect this is an attitude that is, if not unique among OSS projects, certainly unusual.
no subject
no subject
no subject
no subject
no subject
*Scuttles away again*
no subject
no subject
I am a heavy user of that site and believe in giving back if you really use a (free-ish) product, so I first hung out in Support, because that was what I knew from Livejournal. Then, one bored Friday, I thought "hey, Perl can't be that much different from Python and I have a few hours to kill" and asked for a development environment. I think I had my first patch submitted the next day and accepted a few days later.
What are some of the things that we (the DW project maintainers) did to make you feel welcome?
Cheering! :) My Perl was very sketchy at first and the first thing I changed was just splitting an if statement because a wrong image was being displayed and I still got cheered on like I had just done a 400-line patch. That, throughout the past months, kept me motivated and now I have actually submitted 400-lines patches.
What's the best thing we did to help you get up to speed and contribute effectively?
Not technically from the project maintainers, but the availability of dev environments is a big help and I know you two have as a goal that the DW code is easily installable. The #dw_kindergarten IRC channel was very helpful, as was that there were contributors I could talk to throughout the day - with my time zone I would usually be stuck shouting into dead silence as the US-Americans are still doing their day job.
Also, very clear documentation on what programming style you guys want and how to submit a patch for review.
Was there anything in particular, big or small, that made you decide that DW was the kind of project you wanted to contribute to?
Is boredom a valid answer? There were a lot of things that made me think DW was the kind of project I wanted to use, but boredom and curiosity plus the availability of people to help me when I needed help were the factors that made me choose to also contribute code.
If you've had experience on other OSS projects, what makes DW different? Better? (Worse?)
I have tried getting into other projects the past few weeks, but found the entrance very difficult - and not only do I code almost every day, but I am the kind of person that attends hacker conferences. If I find it hard to find information on how to claim bugs, submit patches, and what programming style the project prefers, I shudder to think what programming beginners must think.
What's your favorite part about the DW project culture?
The mentality of "it may be called a bug, but it's actually an opportunity to make something better". Also, I love how the developers are not just faceless shadows for most users (I think so, at least), because they actually comment on news posts or discuss things in dw_suggestions, etc. I think that's also great for the users to feel like their wishes are heard.
Do you have any good stories to share about awesome moments?
* the first accepted patch. I didn't even have it rejected first, it actually went through. I was so excited.
* coming home from a particularly hard day to find a patch I had resubmitted several times accepted.
* submitting a patch while in IRC, then the note goes up that a patch has been submitted and people going "oh, cool!"
* surfing my network page and finding people say "oh, this new feature is so cool" and thinking 'I made that!'
What are some of the things you've learned, both technical and otherwise, while working on DW that you don't think you would have learned otherwise?
I don't think I would have learned Perl on top of Python otherwise - and I have so far not opened a Perl book, I just learned by reading the code and asking a few questions. Same with CSS. My mySQL knowledge has deepened, and I now have some understanding of javaScript. I have learned valuable lessons about accessibility, a better programming/documenting style (a project that encourages comments!), better communication style with 'laypeople' and a bunch of other things I am forgetting here.
no subject
(Wow, feels like it was so long ago that I can't possibly remember, but let me try.) The biggest draw for me was that I liked the principles behind DW-the-project, so I wanted to help build DW-the-site so that I could have a good solid online home.
I also jumped at the chance to fix some of the things (small things! big things! some were code -- bugs that might take less than an hour to fix, but that no one else had had the time to dig into, or shambling horrors of the deep; some were policy -- ads, nudge, etc) that frustrated me. Plus there was talk of shiny new features.
Umm, so basically, I knew I'd be using DW every day, I like it when my user experience improves even if (especially if?) I have to jump in and do it myself. And if it meant that I'd also have fun while doing so, well so much the better!
What are some of the things that we (the DW project maintainers) did to make you feel welcome?
You guys let me know that you appreciate me / my contributions :-D
Also, I really appreciate that most of the important discussions will happen in bugzilla or a community (occasionally email) rather than requiring real-time meetings via IRC. It's one of the things that I've found difficult in every other project I've volunteered for, and as a point of practicality I've always tried to shrug it off as one of those things that just happens... and I really, really, appreciate finding out that it's possible to be otherwise.
What's the best thing we did to help you get up to speed and contribute effectively?
This ties in to there being no stigma attached to questions. I may not always be able to get an answer immediately, but I don't feel that my questions are belittled, so I was rarely blocked by that.
Decent documentation (wiki!).
Was there anything in particular, big or small, that made you decide that DW was the kind of project you wanted to contribute to?
(this whole section was originally in reply to what you guys did to make me feel welcome; transplanted down here when I realized it fit this question better)
Well, trusted me to submit patches :-) Positive reinforcement (praise, cheering, thanks *G*) when I've coded up a much-requested feature, or much-awaited bugfix, or you know, wrote up some really nice code or cleanup.
Polite rejection of my patches if something was wrong (so I could stop worrying that I'd somehow break the site... oh, anxiety :-)) -- but please note the polite. I mean, there's no way to absolutely erase the "oh crap, rejected D:", and it's only natural, but the way that the patches are rejected went a long way towards giving me the courage to resubmit (especially when I was new to this whole submitting patches thing. It's less of an issue for me *now*)
Promoted a stimulating, fun environment where I could concentrate on code (or hanging out, or whatever) with minimal aggressive competition (perhaps a slightly stronger term... dick-waving?) and without politicking. Made it easy to ask questions -- no shame attached to the asking. Also, I love that when, say, there's a question that's been repeated multiple times, the response is that something must be wrong with our documentation or our process (not the questioner) -- now what can we do to fix it? Thinking in particular of how we've been handling installation issues and questions that people occasionally ask on IRC.
Cleanup welcome; small bugs and small bugfixes are welcome alongside the larger overarching systemic stuff. Bug reports and suggestions are welcomed because if it has bothered someone enough that they bring it to our attention, then there are likely more people who noticed but just grumbled and went on their way. If we know about it, we can fix it. (Versus: a bug report is the reporter being a pain in the neck / it works for me just fine the way it is, now shut up and enjoy what's in front of you)
If you've had experience on other OSS projects, what makes DW different? Better? (Worse?)
I've been part of three other OSS projects before (one of these for work), and DW is one of the friendliest to newcomers, questions, and bug reports that I've seen, along with OTW. The others I've worked on aren't actively unfriendly, mind; just that you'd generally need to invest a lot more effort before you could start taking part.
Based on casual browsing of some other bug trackers, there *are* some pretty unfriendly projects out there, but I don't have much experience with those, because I don't really have the time/energy to get past the unfriendliness and find out what I need to do to contribute.
I don't think these are representative of all projects, but I see them often enough (in varying degrees) that the friendliness of DW really does stand out.
What's your favorite part about the DW project culture?
Friendliness and willingness to improve (code, process, etc).
Do you have any good stories to share about awesome moments?
Know I have them, but can't think of one right now; resisting urge to dig into qdb.
What are some of the things you've learned, both technical and otherwise, while working on DW that you don't think you would have learned otherwise?
More Perl? *laughs* So, when I started volunteering for DW, I didn't actually know much Perl. I knew enough to read it and be able to pick out potential causes for bugs, but I had very little experience actually writing it. I've also learned a great deal about designing modules from scratch. Most of my prior experience was tweaking small sections of code, or adding a new feature heavily based on another feature. The invite codes module, which I worked on along with Pau, was my first taste of doing something from scratch for real world use.
I've picked up a better understanding of performance / performance issues / design / security, from the (mostly unconscious now?) considerations by Mark, etc, built into the code. I'm even following suit and commenting my code a bit better nowadays (hehehe).
On the less technical side, I feel more confident in my coding skills, and even in my ability to lead (it's... not my favorite thing in the world, but I can see the necessity).
no subject
What's the best thing we did to help you get up to speed and contribute effectively?
The DreamHack provision. Not only got me up to speed & contributing quickly, but meant that I didn't have to overcome the "oh god first I have to make this work" hurdle (especially as at the time it wasn't running on OSX). Further, it was really easy to drop past & do another patch recently, despite not having contributed for a few months (i.e. v little getting-back-up-to-speed timesuck).
Close second: the preparedness of everyone on IRC (including both of you) to answer technical questions patiently & in whatever detail was required.
Was there anything in particular, big or small, that made you decide that DW was the kind of project you wanted to contribute to?
The very welcoming atmosphere in the IRC channel when I started hanging out there. The awesomeness of the diversity statement. That post you made on your own LJ fairly early on about creating a corner-store kind of place to be, which really resonated with me.
What are some of the things that we (the DW project maintainers) did to make you feel welcome?
Again, the atmosphere and chattiness on IRC. The care taken with patch feedback -- both doing it (fairly quickly), and being pleasant and encouraging about it. I didn't feel beaten down when my patches were rejected, because the improvements requested were clear, and the tone was one of "this is great BUT please could you fix A & B" (rather than "you suck! fix A & B").
I only intermittently have coding time atm but as and when I *do* I feel able to come back to DW & that whatever I do have time for will be welcomed & appreciated. I don't feel that I have to be always being Big Contribution Person for what I do to be worthwhile.