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?

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.


The Growstuff Project

June 2016

192021 22232425


RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 19th, 2017 03:40 am
Powered by Dreamwidth Studios