[personal profile] alexbayleaf
My main task for this iteration (other than coaching) is to come up with a community guidelines document. I've just posted the draft to the mailing list so I'll just copy what I wrote there:

So, I drafted a proposed set of community guidelines. These aren't a full TOS or anything like that, but a short statement of values and then setting out a few specific interpersonal behaviours that aren't welcome, and what we'll do if they happen. I figure that when we get around to having a TOS, we include it by reference, i.e. the TOS will say something like "you agree to abide by our community guidelines".

I've put the document in github and I figure the TOS and any other policies (eg. privacy policy, copyright policy) can go there too. The good thing about having this stuff in github is that if/when we change any of our policies the change history will be visible, and people can see what's different from one version to the next.

Anyway! My draft is at https://github.com/Growstuff/policy/blob/master/community-guidelines.md and I would appreciate people reading it and letting me know what you think. I'm interested in anything ranging from high level conceptual feedback to smaller wording tweaks.
[personal profile] alexbayleaf
Hi everyone! We've come up with the list of stories we'll be working on for iteration 0. They are:

Placeholder website
Dev website
Community guidelines
Twitter account icon

More detail is available in this mailing list post and in the mailing list archives generally.
[personal profile] alexbayleaf
Hey everyone, I finally got around to renaming this community to [community profile] growstuff. The old name should redirect. In order to do this I had to have an empty community with no members but myself, and so I had to boot you all out, rename, and then re-invite you. You should have received a DW notification inviting you to rejoin. Hopefully your subscriptions to the comm should have been uninterrupted.

I also changed the theme because the old one was kind of unreadable to me. I hope this one is better. Let me know if you have trouble with it.
[personal profile] alexbayleaf
Thanks everyone for signing up in the team signup post the other day. The current list of participants in this iteration is:

Customers: [personal profile] skud, [personal profile] inkstone, [personal profile] azurelunatic, [personal profile] japester, [personal profile] ilyena_sylph, Seegwen

Design: [personal profile] commodorified, Seegwen, [personal profile] algeh, [personal profile] aquaprofunda (via other channels), [personal profile] randomling

Communication: [personal profile] skud, [personal profile] amianym, [personal profile] commodorified, [personal profile] japester (primarily technical/project stuff), [personal profile] shadowspar, [personal profile] algeh (available but less interested)

Coding: [personal profile] skud, [personal profile] amianym, [personal profile] shadowspar, [profile] seegwen, [personal profile] cesy, [personal profile] algeh, [personal profile] randomling

Sysadmin/devops: [personal profile] japester, [personal profile] shadowspar, Seegwen


Please subscribe to the mailing list! If you want to actively participate in this iteration and you're not currently subscribed to the mailing list, you probably should be. We'll be posting highlights and important stuff here to the DW community, but a lot of the conversation will be happening there. Subscribe here.

Meanwhile, we've started roughing out some stories (remember, that's the Extreme Programming term for "requirements document") that we might want to work on in this iteration or in an upcoming one. Here are some links:

Placeholder website
Dev website
Community guidelines
Twitter account icon

(The previous ones have been added to the issue tracker, while the following ones have been posted to the mailing list but haven't made it to the issue tracker yet. The process is that stories are first raised on the mailing list, then once the iteration coach(es) have validated them as being decent stories (i.e. they're written from a customer perspective, and so on) then they get added to the issue tracker. So the following ones are less solid at this point.)

Signup/login
Profile page
My garden
Profile privacy
Firehose

(You can see discussion threads about some of these stories in the mailing list archives, too.)

---

Our next step is to start breaking down these tasks and talking about what steps are needed to complete them, what skills those involve, who wants to do them, and how long it will take. From that we'll come up with a list of tasks we'll aim to complete in this iteration, with two people assigned to each one, and then -- very soon now -- we'll start work.

One of the things I'm concerned about with this iteration is that we've had a lot of people sign up to take part (thank you!) but I'm not sure we have tasks for them all, as the early stuff seems to not be easily parallelisable. If you have suggestions regarding this -- of other things we can do in parallel, or of ways for everyone to get involved in the few tasks we already know of -- then I'd love to hear them!
japester: (Default)
[personal profile] japester
Brief update.
[personal profile] juliet and I have been poking the VPS a little and it's (slowly) gaining functionality.

Mailing lists
Are up and functional.

At this point, the primary list to come and hang out on will be the Discussion list. It's open to all comers.
[personal profile] alexbayleaf
Hey everyone, just wanted to get an idea of who's interested in working on what over the next few weeks, for this first iteration, named (in true programmer style) "iteration 0".

Please drop a comment with the following information:

1) team(s)/skill area(s) you're interested in
2) level of experience at that kind of work

The teams are:

- customer (you're a gardener with opinions on how the site should work)
- design (graphic design, UI, CSS, etc)
- communications (writing text for the website, eg. community guidelines)
- coding (backend/frontend, let's mix these together for now)
- sysadmin/devops (including deploying releases of our rails app, etc)

A sample response might be:


I'd like to sign up for:

- design (familiar with HTML/CSS, have worked on a few websites before)
- coding (zero experience but would like to learn frontend/javascript)
- customer (err, I have a garden? and opinions!)


Note that if you sign up now, this is not a long-term commitment! This is just for the next 3 weeks; all you're doing is expressing interest in participating in the very first steps. Also, it's not set in stone... if you want to join in or drop out partway through, that's OK. I'm just trying to get an idea of who's up for this first iteration.

When this first iteration's done, we'll either re-run this signup process, or find a better way of figuring out who's interested for each subsequent iteration. (Quite likely we'll find a better way. I know this is clunky!)

------

ETA: signups so far

Customers: [personal profile] skud, [personal profile] inkstone, [personal profile] azurelunatic, [personal profile] japester, [personal profile] ilyena_sylph, Seegwen

Design: [personal profile] commodorified, Seegwen, [personal profile] algeh, [personal profile] aquaprofunda (via other channels)

Communication: [personal profile] skud, [personal profile] amianym, [personal profile] commodorified, [personal profile] japester (primarily technical/project stuff), [personal profile] shadowspar, [personal profile] algeh (available but less interested)

Coding: [personal profile] skud, [personal profile] amianym, [personal profile] shadowspar, [profile] seegwen, [personal profile] cesy, [personal profile] algeh

Sysadmin/devops: [personal profile] japester, [personal profile] shadowspar, Seegwen
[personal profile] alexbayleaf
One of the things I'm doing to get ready for iteration 0 is to install Ruby on Rails and get it running on my local machine. If any of you are interested in doing code-related stuff for Growstuff, I suggest you do likewise!

I'm no expert in this -- I did it a couple of times over the last 5 years just to play around with but never really went anywhere with it -- so I can't offer any particular help or instructions, apart from what I found via google.

If you use Mac OS/X I've started to collect some links/instructions here: https://github.com/Growstuff/project/wiki/OSX%20Development%20Environment

If others are trying to get up and running on Windows or Linux, I suggest googling for "Install Rails 3.2 on Windows" or "Install Rails 3.2 on Linux" and see what you get (and then post the links in the comments, or add them to the wiki if you are comfortable doing that.)

That said, I am having trouble getting things going on OSX and I was wondering whether anyone with more experience could help me.

trouble compiling Ruby on OSX )

So, anyone know what could be causing this "C compiler cannot create executables" thing? It sounds like a compiler that's lost its raison d'etre, poor thing.

Apart from that, if anyone else is trying to get Rails running and has any tips or questions or problems, please post them in the comments.
shadowspar: Picture of ouendan (ouendan - osu!)
[personal profile] shadowspar

So, the previous post outlined the philosophy and reasoning behind agile development as a whole. Now, we need to decide what we want our specific agile development process to look like.

Before I lay this all out, bear in mind, this is the proposed development process. Nothing is ever written in stone, and we really want feedback on what could be better, especially now!

Infrastructure: We've set up the Growstuff project repository on github as a place to host some of the project infrastructure, like the issue tracker and project wiki. The plan is to use the issue tracker to keep track of both bugs and user stories (proposed features), and the wiki for documentation and resources. (The wiki seems to support different formats, but so far we've been using markdown -- here's a cheat sheet.)

Iterations: What we're thinking of is a development cycle based upon 3-week iterations, with iterations starting and ending mid-week, probably on Wednesdays.

An iteration would go something like this:

  • Start: On the first day of the iteration (Wednesday), the coach(es) for that iteration kick off the planning process on the mailing list.
  • Planning: We have about three days to write user stories and decide which of them are most important to finish next. By Friday or Saturday, we should have a consensus and have pretty well squared away what we'll be working on.
  • Doing: The body of the iteration gives us about 2 clear weeks to work on implementing stories.
  • Integration: Around Sunday of the last week, we start rounding everything up, make sure it's all integrated, and merge the work into the milestone branch.
  • Release: Tuesday or Wednesday, the milestone branch gets pushed to our test environment, and the previous branch from the test environment goes to production.
  • Retrospective: Around this time, the the coach(es) kick off a discussion on the mailing list about how the iteration went. What worked well? What didn't? What new things have we learned?
  • Next iteration: We integrate the feedback from the retrospective into the planning stage of the next iteration, and the cycle begins again.

If someone comes along mid-iteration and wants to get involved, they can either a) watch what's happening 'til the cycle turns, b) pair with someone who's already working on something, or c) if they can find someone to pair with them, they may pick up a small task.

Current outlook and schedule:

As it stands, here is our proposed schedule:

  • Right now, we're kind of in an "Iteration pre-0" state where we're try to get the project and infrastructure organized.
  • Iteration 0 kicks off Wed, 8 Aug. If we can get something built, that'd be great, but really the goal for Iteration 0 is to square away our development process and get everybody on board.
  • Iteration 1 kicks off Wed, 29 Aug. Hopefully, by the time this rolls around, we'll be ready to start drafting the first few stories and getting concrete things done!

Is this something that sounds workable and that you'd sign on to? What would you change? Anything that's been left out or doesn't make sense?

[personal profile] alexbayleaf
I mentioned in my earlier post about tech stuff that I'm a fan of agile software development and especially of Extreme Programming (aka XP, no relation to the Microsoft Windows version.) I thought it would be good to talk a bit about what that means, and how it affects the Growstuff project.

The underlying values of XP are that software development should be:

* participatory -- special effort is made to include everyone in every stage from planning to release
* adaptive -- able to respond to changes in circumstances/priorities in a fast moving (ahem, Internet) environment
* sustainable -- the code is developed to be maintainable, and people are encouraged to work at a pace that doesn't burn them out

To understand how novel this is, you have to know a bit about how traditional software projects work. The old-fashioned way of developing software (which is sadly still in use in many organisations, especially in large corporates and bureaucracies) goes something like this:

1. People who want the software write a requirements document, often with the assistance of professional business analysts who know how to extract information from the potential users about how they expect the system to work. This document is usually long, detailed, and unwieldy. The stakeholders are expected to read through the final version and sign off on it.

2. A design document is written, based on the requirements spec. The business analysts and/or senior software development people (often with titles like "Architect") take the requirements spec and turn it into a technical specification that defines how the system will be built. There are lots of diagrams of things like database tables and object models. A requirement like "our salespeople need to be able to access the system from their Blackberries" will be translated into technical language about VPN access, mobile interfaces, etc. This will, again, go through a review and signoff process.

3. Everyone argues about how long it will take to implement everything in the design document. The customers want it by June, but the tech people say it will take until at least November. If you're lucky you'll compromise on September; if you're unlucky there's a hard deadline (like a trade show or a legislation change) that means that June is it. At this point, you may try to negotiate to do less work, since you have less time. To remove any features from the system will mean going back and revising the requirements spec and the design document, getting signoff from everyone at each point. This can take a while, meaning you're even further crunched for time.

4. Programming starts! The work is broken up into chunks and assigned to developers, who work on their individual parts. The interactions between the different bits have, hopefully, been clearly defined in the design spec, so you can theoretically work in isolation from the other developers, knowing that they will give you data in X format and that all you have to do is emit results in Y format for the next person to use them. This time is mostly spent heads-down, hacking away in isolation. Every so often a manager comes round to ask how you're doing, or to tell you about changes they were unable to discourage the customers from making. The requirements and design docs no longer match reality. And you don't have time to write any other documentation as you go, so you just hope that someone, somewhere, is keeping track of everything. (Hint: they're not.) What's more, the code you're writing is kind of crap, because you're rushing it, but you tell yourself you'll fix it in the dot-point release after the big one. (Hint: you won't, because that release will be just as rushed.)

5. Finally most of the code is written and you try and integrate everything together. This is where you find out that the other programmers aren't exactly sending you X, and that the Y you're passing on should have been Z instead. Oops! Around this time is where deadlines really start to slip, and you realise you're never going to get it finished in time.

6. You work long hours and rush and rush to try and get it all done. You're tired and constantly either over-or-under caffeinated. Everyone's cranky. The customers are shouting about slipping deadlines and your manager can only insulate you from so much of it (assuming they even try and know how in the first place, which is not a given).

7. At some point stuff gets handed over to testers. It should have been in their hands months ago at this point, but of course they get it at the last possible minute. In the meantime, they've been working up a test plan based on the requirements and design specs. Their job is to make sure your code matches what was asked for in the first place. One problem -- things have changed along the way, and documentation has fallen out of step with reality. The testers work ridiculous hours, weekends, nights, all the time swearing at you. Not that it's your fault... they're just at the pointy end of that original unrealistic deadline.

8. The code is released and it's full of bugs. Worse, the users don't even want it any more, because it's 9 months since they actually needed it, and they -- or the industry you're in, or the public zeitgeist -- have moved on.

9. The next project is exactly the same, only this time you have to build on the mess you made the first time round.

-----

So that's how a typical medium sized software project works in commercial/bureaucratic environments -- most medium to large companies, governments, large non-profits, etc. It's been this way since roughly the 1960s, when computers were far more expensive, printing off reams of paper seemed like a reasonable thing to do, and everything didn't yet run on Internet time.

These days, computers are cheap, really good developers are hard to find, and everything moves at Internet speed. Rather than multi-year project release cycles, we're more likely to work at the scale of months or weeks, and even in that short time everything can change: Twitter could change their API, or some new social network like Pinterest could explode onto the scene, or you might suddenly find yourself with a bunch of users on tablet devices that didn't exist this time last year.

So, what to do? The answer is agile development.

Agile process basically throws out the traditional requirements-design-implementation-testing-release process (known as the Waterfall model, because every stage is meant to flow down to the next) and basically replaces every part of it.

Here are some of the tenets of Extreme Programming, the brand of agile that I like best:

Onsite Customer: the "customer" is part of the developer team. In a business, this may mean that some of the sales people actually come over to sit in amongst the developers so they can answer questions or take part in design discussions as they occur. In the Growstuff project, it means that we won't arbitrarily divide between "developers" and "users" but instead all hang out together on the same mailing lists and forums, and we'll explicitly seek out and value input from people who aren't coding. The customer's main job is to clearly describe what they want, and to help set priorities for tasks.

Short iterations: We'll push new features/bugfixes to the website on a frequent, regular cycle (probably every three weeks, at least at first). What's more, we'll plan each iteration as we come to it, rather than planning too far ahead, because we know that priorities can change quickly. In each iteration, we plan what we'll do using the XP Planning Game, a lightweight and reasonably fun process for specifying tasks (known as Stories in XP), estimating their scope, prioritising them, and assigning them to a developer to work on. At the end of an iteration, we take a few moments to reflect on what just happened, and feed that into the next iteration's planning game.

Sustainable pace: Short iterations mean we're unlikely to have major crunches before a big release, but we'll make it a core part of our value system that people should work at a pace that they find enjoyable and that doesn't burn them out.

Simple design: in XP parlance, when we first approach a problem we'll do "The Simplest Thing That Could Possibly Work", rather than planning too far in advance. No task will be bigger than will fit in a single iteration. As well as avoiding the problems of over-specifying something up front when it might change (XP: "You Ain't Gonna Need It"), this also avoids people biting off more than they can chew.

Collective code ownership: No single person should "own" our code, or any part of it. Not in the legal sense, but in the emotional sense. We want people to collaborate, not just in case of bus accidents, but also because it will get us better quality software. To that end, XP also advocates pair programming where two coders work on the same code at the same time. Although this works best in face-to-face situations, we'll try and do it as much as possible in our online community (there are various technological tricks, such as screen-sharing and skype) and where we can't we will at least have two people assigned to every task, to work together, learn from each other, and review each other's work.

Refactoring: This is a process of continual improvement in code, of removing or improving stuff that has got rusty, and of cleaning up areas of "technical debt". If you're working at a sustainable pace, you'll have time to do this, and it will benefit everyone. It's not an easy discipline to get into, but working in pairs means that one person can remind the other if they forget.

Test driven development: Test driven development means writing the tests before you write the software. It sounds backwards, but it actually helps you think about what outcomes you want from the code before you start, and it means you never run out of testing time at the end. Again, this is a practice that is reinforced by working with a partner.

Continuous integration: Every time one of us makes a change, we make sure it doesn't break anything else in the system. We can do this easily if we have good tests in place, and it means that releases -- which, after all, we do every three weeks -- are likely to run much more smoothly.

Team Coach: In order to keep all of this flowing well, the team needs a Coach (or potentially a pair of coaches), someone whose prime directive is to make sure that the team's values aren't being compromised. The coach leads the Planning Game, encourages good practices, and makes sure everyone is happy and productive. They may or may not work on other tasks, but whatever they do, their coaching duties are paramount.

So that's the idea, in a kind of theoretical sense, of how I'd like this project to work.

Of course, in terms of day-to-day pragmatic stuff (the dates of our iterations, how we write stories, how we pair, who is going to be coach) we'll have to figure that out over the first few iterations. I'd like to cover that in another post, and leave this one just as the underlying principles.

So, is this something that people are happy to sign on to? Any concerns or things you worry might not work? Any thoughts on where this might fall apart and, if so, how to avoid it? Speak now or forever -- well, okay, you can speak any time, but now would be especially good ;)

Github

Aug. 1st, 2012 12:33 am
[personal profile] alexbayleaf
I've set up https://github.com/Growstuff so for those of you know are au fait with github, well, now you know.

For those who aren't familiar, github is a platform that allows software developers (or anyone really) to collaborate on projects by keeping track of all the files, managing different versions of your work as it changes over time, and allowing multiple people to work in parallel and then merge their work together when they're ready, without stepping on each other's toes. Version control is one of the really important foundational tools of any modern software project, and github is the platform of choice for most open source projects these days.

(A while ago, I wrote a description of version control and github in the context of another project, AO3. I'm told it's a good intro for people who have absolutely zero understanding of version control and/or github, so if that's you, then you might like to read it. There's some other stuff there about the AO3 project specifically, but you can safely ignore that if you're not interested.)

So this post re: github is mostly just an FYI, but if someone could try joining the project, that'd be nice. I'm not sure how it works with Organizations on github... there's some stuff about teams etc that I don't fully understand, so having some members to try stuff out on might be handy.
[personal profile] alexbayleaf
Just chatting with [personal profile] aquaprofunda on IM and wanted to drop a copy of our discussion here for future reference. It covers a handful of things (monetisation, development/planning process, and graphic design/UI) at least in a very brief way so if you're interested in any of those take a look.

IM log )

So, I've asked [personal profile] aquaprofunda to put together a static HTML page as described, just so we can put something on our domain once it's up and running. If anyone has (or can find) a gorgeous, high-res image of a food garden to use, feel free to link it in comments. I'll work up a 1-paragraph (preferably 1 sentence) description and post it here for her to use, too.

I told [personal profile] aquaprofunda that I'd discourage bikeshedding. For those who don't know "bikeshedding" in this sort of project is when everyone argues about what colour to paint the bikeshed before it's even built yet, holding up the building process. So since we're just slapping up a placeholder page for now, and want to do it fairly fast, I'd rather not get bogged down in the details. OTOH if you have strong feelings about graphic design, UI, user experience, etc, and want to get involved in that side of the project once we really get up and running, now would be a good time to raise your hand.
[personal profile] alexbayleaf
Sorry for the spamminess!

I've set up an IRC channel for those who wish to chat about this project. It is #growstuff on Freenode (irc.freenode.net).

For those who aren't familiar, IRC is a real-time chat facility, and Freenode is a service offered to free/open source projects who want a chatroom for their people to share ideas etc.

Anyone can connect to IRC using IRC client software (various options are available for all OSes) or by using a http://webchat.freenode.net/ ... all you have to do is choose a nickname (your Dreamwidth name would be a good first choice) and connect to the #growstuff channel.

Hope to see many of you there!
[personal profile] alexbayleaf
I posted yesterday in a members-locked post looking for suggestions/ideas for a name for this site. One that I'd found that was available was growstuff.org, and after some discussion with [personal profile] shadowspar and [personal profile] thisone on IRC, I'm convinced it's the best name available, and that it has a lot going for it, so I've registered it.

Points in its favour:

* It's informal and friendly-sounding, and we can extend that into our other messaging. "Skud is growing stuff!" etc.
* It's general, and not specific to eg. organic, seed sharing, urban harvesting, etc., so it won't turn people away by thinking it's not for them
* It's easy to say and spell, which makes it easy to tell people about offline.
* It's not directly related to any other site -- there were suggestions of "harvestry" by analogy with "ravelry" but I don't think it's a good idea to tie ourselves that closely; inspiration is one thing but too-close imitation is perhaps not the best path.
* It doesn't have the religious connotations that "harvest" has for some people/in some contexts.

Points against:

* It's a bit boring, perhaps?
* We don't look like the cool kids, who leave out vowels and stuff
* ???

Anyway, I think I can deal with those negatives, and as I said, I've registered it! So now we need to actually get cracking on this thing.

Renaming this comm: does anyone have some spare DW points they can throw my way for a rename token? I need 150 points.

Hosting: We need some simple hosting to set up an initial website and the tools we need to get started. I'm going to be looking for green/carbon neutral Linux VPS hosting, preferably ones that run on renewable energy rather than using carbon credits. Anyone got any recommendations or preferences? AISO is one that showed up earlier in my search; does anyone know anything good/bad/indifferent of them?

Sysadmin tasks: Need one or more someones to step up to help us set up mailman (first priority), simple web hosting (just a static page for now I think), and eventually all our other stuff. Mailman's the biggie right now. Volunteers? [personal profile] japester?

Website: I'd like a simple placeholder webpage, something that looks nice and just says what we're doing and where to find us (links to this comm, to our mailing list, etc.) Anyone interested in putting something together? [personal profile] aquaprofunda?

ETA: Github: need to set up an "organization" on github, which needs an organizational contact address, and therefore is dependent on having hosting/email set up. Just a note to do that once we have those things, I guess.

Hmmm, what else? I think that's all for right now.
[personal profile] alexbayleaf
I see we now have > 20 people involved here on DW, and 14 members on the (currently broken, ugh, stupid buggy hosting site) mailing list, so welcome to everyone! We have an intro thread in progress if you'd like to stop by and introduce yourself.

I wanted to take a moment to ask everyone what you would want from a site like this? I mean, I have an idea what I want, but I'm pretty sure I'm not everyone, so I'd love to hear all your ideas for what the site could do/be.

So here are some leading questions which you can answer in comments, or just ramble in a general way if you prefer?

What do you most want to be able to do on a site like this?
What's missing from other sites that you've looked at?
What would make you keep coming back/staying involved, rather than drifting away?
If this site just did one thing really well, what do you wish it was?

Tech stuff

Jul. 29th, 2012 08:25 am
[personal profile] alexbayleaf
So, how are we going to build this thing?

A bit of background: from, oh, 1996-2007 I was a full time web developer on the LAMP stack (Linux, Apache, MySQL, Perl). I've had experience building and working on quite large websites with those technologies. However, I stopped around 2007 which, of course, is five years ago, and five years is a long time in tech. So, whatever we do, I'm going to have to refresh my skills.

Since I'd be doing that anyway, I feel like it's a good idea to consider using other tools/languages/platforms. To that end, I'm strongly considering doing this thing in Ruby on Rails. Why RoR? Well, it's easy for people to learn, and I want to get people involved who might not have previously worked on this sort of thing before. I know that one other project (AO3) has been successful in this (they've had problems with scaling, but I suspect with my previous web dev experience and the help I know I can pull in, we may have less trouble with this than they did). Ravelry is also built on Rails, so I know that similar sites can do it well. And it's a modern, marketable language which means learning it is good for people's resumes if that matters to them.

That said, I could be convinced to go with something else, if someone has an idea and can address the points I've mentioned above (especially the ease-of-getting-started issues). I presume Python has a comparable web framework, so that would be one possibility.

Needless to say, there'll be a bunch of frontend stuff, which will be in Javascript, presumably with JQuery, and lots of design/UI/UX work to do. My housemate and co-gardener is a UI/UX person and has expressed interest in working on this, so I feel reassured that we have some skills in that area already, since I'm not great at it.

Apart from that, I'd like us to keep our code on github, one of the most popular version control platforms around. (AO3 already does this, and Dreamwidth is planning a move to git, so it's likely to be a handily transferrable skillset for those who've had experience on either of those projects or any of the squillions of other open source projects that use it. It also has good transparency and community features in place, which I think matches our ethos.)

I'd also like us to use test-driven development methods, and generally take an "agile" approach to the whole project. My background in that regard is in Extreme Programming, so I'd like to bring in as many of the practices from there as possible. That means short iterations (aka "release early release often" as they say in open source), flexible/lightweight planning and design (not trying to specify the whole thing up front), constant refactoring, and yes, if we can manage it, pair programming! Or at least the closest we can get to pair programming in a distributed, (mostly-)online dev community. I think XP (as it is also called) is a great match for a project that wants to be sustainable and inclusive.

So that's where my head's at and what I'm thinking of. As with everything (and you'll hear me saying this a lot especially at first) all this is up for discussion, and I promise to listen carefully to any suggestions you make.

So what I'd like to ask at this point is...

1) Roll call! If you would like to get involved in a technical way, please comment and say what part interests you. If you have existing skills in any of the areas mentioned above (or any others you think might be relevant), please mention them. If you don't know yet or would like to learn, that's fine too.

2) Tools and resources! If you know of something we should be using or looking at, whether or not it's listed above, let us know. For instance, if you know a good learning resource for new Rails developers, have opinions on database backends, or know a good web app for managing distributed XP projects, let's hear about them.
[personal profile] alexbayleaf
This evening I got chatting with [personal profile] shadowspar on IRC and told him some of the ideas I've had so far for the site. Here's an unedited (but fairly focused and not tooooo long) transcript. All this is open to discussion/debate of course -- it's just very early thoughts on how I'd structure things, and it definitely needs lots more work and refinement.

irc transcript )
[personal profile] alexbayleaf
Ooh, starting to get members, awesome!

I thought it might be good to do a quick intro thread. Let's do it like this:

Name: (DW and/or otherwise)
Where are you: (country etc)
What do you grow?
Why are you interested in this project?
[personal profile] alexbayleaf
After gleefully setting up a mailing list for this project, there's a problem with the hosting, which I need their support people to fix. This happened once before, and it should be resolved fairly quickly, but for now please don't be surprised if you subscribe to the list and don't see anything from it. (Yes, you can still subscribe. It's just sending email to the list that doesn't work.)
[personal profile] alexbayleaf
Here's a copy of what I posted to my blog just now about my idea for this project (blog link, Dreamwidth mirror):

In my talk I touched on a whole range of "open" communities including some in the green/eco/sustainability space. This morning I also attended a talk about "Gnome and the Systems of Free Infrastructure" by Federico Mena Quintero, from Mexico, who touched on similar topics. Federico and I have been talking about this stuff a bit over the last few weeks, to see what similarities we had in our talks. The other day we had lunch together and somehow the subject of open data for food crops came up: Federico asked me whether I knew of a free source of information telling you what crops grow in what climate regions at what times of year, and I said I didn't know one, but that you'd have to look at information published (usually) by the agricultural departments in various places.

Or, of course, you could crowdsource it. Thinking about that idea, I realised it was in some ways similar to Ravelry, the awesome knitting community and database of all things knit-related. Nobody used to have a huge collection of all the knitting patterns in the world til Rav came along. Then, by each individual knitter putting in their own projects and notes, the aggregate of all of it became a useful general resource. Now you can do a complex search/filter for exactly the knitting pattern or yarn you're interested in, based not on a centralised authority, but on each person adding their own small part to the whole.

If we wanted to, people growing food in their gardens and allotments and on their balconies in containers could do the same. If I posted, "I planted tomatoes in my garden in Melbourne on the 1st of November" and everyone else did likewise, we'd wind up with an extensive database of food plants, including things like heirloom varieties and where to source them from. We could also build a histogram of the distributions of planting times for every location. Eventually, we could build in tools for sharing your harvest with your local community, saying eg. "I have a tree full of lemons, does anyone want them?" or facilitating seed-sharing and other community gardening activities.

I couldn't stop thinking about this over the next day or so, and I realised it's something I really want. Really really want. I want a resource that's like Ravelry, but with a focus on food gardening, especially the sustainable/organic/heirloom end of that scene. My perfect site would have a strong community committed to sustainability both in the green sense and in the sense of a successful online community. I'm also thinking of Dreamwidth as inspiration, especially with regard to its ethics and the way its developer community works. I'd definitely want this whole thing to be open source and community-built.

So, consider this a launch announcement. If this is something you're interested in, here's where you can sign up to be part of it: mailing list, Dreamwidth community. If you're interested on any level please do join -- we will need all kinds of people from coders to gardening experts to people willing to try out early versions of the site as we build it. As I talked about in my keynote today, I would really like this to be the sort of project where we don't have false barriers between developers and users, but where every person who's involved can be part of the process of building this thing together. And again inspired by Dreamwidth, I'd love to help anyone who wants to learn to code as part of this, regardless of prior experience. Heck, I'll probably be picking up a newish-to-me language/platform for this, so we'll probably all learn together. (That said, if you're a Ruby or Python person with solid experience of medium-size-and-complexity web apps, and want to be part of this, let's talk!)

Oh, also, a quick note... "harvest project" is my working title for this thing, but I guess we'll need a real name and a domain to match at some point; if you have any bright ideas let me know.

Profile

The Growstuff Project

April 2021

S M T W T F S
    123
45678910
11121314151617
18192021222324
252627282930 

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 22nd, 2026 11:28 pm
Powered by Dreamwidth Studios