denise: Image: Me, facing away from camera, on top of the Castel Sant'Angelo in Rome (Default)
Denise ([staff profile] denise) wrote2009-08-04 01:46 pm
Entry tags:

ten things i am currently grooving on about the DW dev process

Ten things I am currently loving about the Dreamwidth development process:

1. We comment our code. We try to write code that reads like English, or at least like natural human syntax, and we put comments in there so that the next person who comes along (which might very well be the person who wrote it, four months later) can follow through all the logic and read along and know exactly what the logic was and why that one little fiddly bit is in there. If there's a $LJ::WILL_NOT_WORK_WITHOUT_STEAM_RADIATOR variable, we'll put a careful set of instructions for the dismantling and stowage of the steam radiator right above it in the code.

2. When you break something -- and you will break something, and the broken something will go live, and it will manifest in production when it didn't manifest in testing at all -- it isn't the end of the world, and nobody makes you feel like an idiot. Everyone just says "oh, yeah, I've done that too, need a hand patching it?" and the fix is committed and pushed live within like an hour.

3. When people point out that we're doing something wrong in our process, or could be doing something better, we work to fix it! (We also know that we're not going to make it 100% better immediately, and don't beat ourselves up about being imperfect.)

4. We view bugs as an opportunity to improve, not as something to roll our eyes over and sweep under the rug. We log bugs for everything from the really little to the really huge; we don't put off creating bugs to make our stats look better. We don't let bugs sit for ages, either: if something's broken, and it's negatively affecting people's use of the site, we're determined to fix it.

5. We're not afraid to rip out code that isn't used, or is really old, or that supports features we just won't use. We're also not afraid to tackle huge and sweeping projects to bring a ten-year-old legacy codebase up to our current coding standards. Even if this means touching every single file on the site, we're not afraid to update things.

6. When you screw something up in a patch, nobody makes you feel like you're an idiot who shouldn't be trusted anywhere near the code. It's just a case of "hey, you missed $thing, can you fix that and resubmit?" That kind of laid-back attitude means that it's a lot easier to reach out of your comfort zone and try something new; if you screw it up, you'll just get a hand with making it work, not any sort of feeling that you should go away and leave it to people who know better.

7. We'll work in steps if we have to. If someone has the know-how to do 60% of a project, and that 60% is a good stopping point -- meaning that things won't be utterly broken without the last 40% -- we'll check in the first 60% and let someone get the 40% later. (And, conversely, we don't let things wait at the 60% done state -- we make it a point to go back and finish them later.)

8. We move pretty fast! 90% of the time, a patch will be committed in a day or two. (The exceptions are things that have to go into the dw-nonfree repository, since only Mark has commit access there right now, and things that are big/scary and need more review.) This means that people see their name in lights -- or in [site community profile] changelog -- pretty quickly!

9. Everyone's doing all this because they really care about the project! It's not that people just want to hack on the project because they want to show off their tech skills or want to do interesting things in code; they're here because they really care about Dreamwidth and about what we're doing, and so they're really engaged with making the site better. Everyone thinks about the good of the project as a whole when they do things, so the end result is better, sharper code and a good user experience.

10. If someone comes into irc and asks a question or mentions wanting to help, everyone falls all over themselves to be helpful and friendly! Unlike some projects, where any sort of question or beginner's confusion gets a response of "rtfm n00b" or the like, someone new to #dw will get an enthusiastic welcome with links of useful information for how to contribute (if they want to) or answers to their questions (if they have them). I'm really proud of the welcoming and friendly culture we've built, and especially proud of the way that newcomers are encouraged to learn how to program with us!
lapislaz: (it figures)

[personal profile] lapislaz 2009-08-04 07:12 pm (UTC)(link)
::grumble cuss cuss grumble::

Comment code??? Young whippersnappers. If it was hard to write, it ought to be hard to understand.
sofiaviolet: drawing of three violets and three leaves (Default)

[personal profile] sofiaviolet 2009-08-05 12:47 pm (UTC)(link)
Ohgod.

(What does MOO mean?)
delight: (Default)

[personal profile] delight 2009-08-05 01:32 pm (UTC)(link)
MOO!

Sometimes I end up thinking I'm the last MOOer left in existence, and then I find some others. It's nice.
cheyinka: Amiu script meaning 'Bringer-forth of Ravens' (raven mama)

[personal profile] cheyinka 2009-08-05 11:10 pm (UTC)(link)
hee, I have the same thought. I'm actually an admin on an active MOO. (And a wizard on an inactive one, but who isn't?)
adalger: Earthrise as seen from the moon, captured on camera by the crew of Apollo 16 (Default)

[personal profile] adalger 2009-08-04 07:59 pm (UTC)(link)
Wow ... I was partly responsible for that variable name. I feel important!

Also: I've updated a wiki page and filed a bug report. All I have to do now is get a patch committed, and I'll have the hat trick. ;)

Thanks, Denise and Mark, for making a place where I can be involved like this. I'd like to add another to the list of groovy things: if I run out of time and disappear for weeks, I can come back and pitch in again and nobody's going to say "You disappeared on us, so you're not welcome any more." The people on the project will greet me with "Hey, how've you been?" and gladly accept whatever useful help I have time and ability to contribute.
cesy: "Cesy" - An old-fashioned quill and ink (Default)

[personal profile] cesy 2009-08-04 09:04 pm (UTC)(link)
Yes, this. I jumped in all enthusiastic to start with, and then had a busy patch of other (RL) stuff, and no-one has yelled at me or anything. I can just pick stuff up again whenever I have time or my brain starts functioning properly again.
sporky_rat: It's a rat!  With a spork!  It's ME! (Default)

[personal profile] sporky_rat 2009-08-05 12:54 am (UTC)(link)
This. Totally. I don't even have consistent internets and people are just happy to see me hanging out when I can. Totally awesome.
delight: (Default)

[personal profile] delight 2009-08-05 01:33 pm (UTC)(link)
This. I joined the docs team and haven't done a single training exercise because of school, and nobody's killed me yet!
kareila: Millie sticking out her tongue. (sillymillie)

[personal profile] kareila 2009-08-04 09:53 pm (UTC)(link)
Holy crap, we have a quote database.

HOLY CRAP, I'M IN THE QUOTE DATABASE.

Why is the RSS broken? I need to be keeping up with this thing.
dreamatdrew: An orange leopard gecko half hiding behind the leaf of a 'lucky bamboo' plant, looking directly at you. (Default)

RE: holy crap

[personal profile] dreamatdrew 2009-08-06 06:51 am (UTC)(link)
Heh...I did one better... I made it in without actually managing to be online at the time..

Also, yes, re-poke sophie about RSS.....I think it overflowed her brain's stack...
sophie: A cartoon-like representation of a girl standing on a hill, with brown hair, blue eyes, a flowery top, and blue skirt. ☀ (Default)

[personal profile] sophie 2009-08-06 08:23 am (UTC)(link)
Yeah, sorry about that. It's been on my todo list for ages. Like the ranking features, which are also similarly non-existent as of right now.

I do have an idea though and I'll see what I can do with it. (The LJ Support QDB, which is also on that QDB server, posts new quotes to a community on LJ. I could do the same with a DW comm for this QDB, though I need to tell it about DW comms :))
kareila: Seraphim uses her laptop. (laptopangel)

[personal profile] kareila 2009-08-06 01:34 pm (UTC)(link)
That would be awesome too. Thanks. :)

[personal profile] indywind 2009-08-05 03:23 pm (UTC)(link)
this sounds like a dream work environment. I wish I had some applicable skills to help, and time.
azurelunatic: A glittery black pin badge with a blue holographic star in the middle. (Default)

[personal profile] azurelunatic 2009-08-07 04:52 am (UTC)(link)
I have now added a new interest.
adalger: Earthrise as seen from the moon, captured on camera by the crew of Apollo 16 (Default)

[personal profile] adalger 2009-08-14 05:08 pm (UTC)(link)
Me too!

It's sorta like being in a seekrit club. ;)