Brainstorming the workflow

Ahoy hoy once again, awesome you haven't left already.

Some people think this is a good idea so I thought of writing it all down separately so that with a little brainstorm we could settle on a standard workflow.

The current workflow idea:

  1. assign people to teams of 3 - 4 members;
  2. every team comes up with a project idea which should be something easy enough for beginners (it's r/beginningWebDev after all);
  3. teams work on projects separately for a certain period of time;
  4. teams finish their work and post results here for later discussion.

Things we need to ponder are:

  1. how do we assign teams? Do that randomly? Get to know everyones field of work and assing teams accordingly? Assign people with similar time zones? Am I overthinking this?
  2. How do we switch teams when we're done with a project?
  3. how long should we settle on a single project? A week? A month? Or do we need to have deadlines at all?
  4. where do we post results? When do we post results? What exactly should we post?
  5. do we need a collaborative tool other than reddit? Maybe this should be every team own business?
  6. u/raspberrySquare set up a github repository, is that good enough for hosting our projects?
  7. u/jbeardles gave an idea of a podcast. I totally agree and am thinking of setting up a blog to post important ongoing stuff and just to show people how awesome we are going to be. What do you think of this?

For distinguishing between separate teams, we could have username flairs. Green for one, red for another, yellow for the third etc. The disadvantage of that is that those should be changed every time someone switches teams.

Another idea to get you thinking:

We can set this all up as a game of sorts. Name the teams, give each other points for accomplishing certain tasks (e.g. finishing a project early) or taking some away (e.g. not finishing a project at all). Just for motivation and because we love games. Don't we?

Posted Aug 28, 2013, 9:47 AM UTC

38
[deleted]•

Edit: Sorry for the wall of text, will sort it out ASAP. I just have lots of ideas for implementing a system as described above.

assign people to teams of 3 - 4 members;

Perfect number, could we possibly have a 'helpdesk'? A group of people who volunteer their more expert knowledge (to sit in IRC or something), that way if a team runs into a complete roadblock that will cause the downfall of a project, they have somewhere to go when they can't find a solution. That's not to say this helpdesk should give out answers, just get the ball rolling in the right direction.

every team comes up with a project idea which should be something easy enough for beginners (it's r/beginningWebDev[2] after all);

If we're adopting the points based system, make it a scale of points earned, something like: *1 week+ before deadline - 2x Points

*On time - Allocated points

*1 week Late - 0.5x points

*1+ week late - negative points

This way it keeps pressure on, but doesn't give you the same level of stress as a production deadline that leads you to an early grave.

teams finish their work and post results here for later discussion.

One of the most important points IMO. I don't just want to know that it succeeded or failed though. I want to know why it failed/succeeded. Why did you choose to do things that way? How did you do things? What caused problems for the team or individuals? Can I see a reflection of this in the source code?

how do we assign teams? Do that randomly? Get to know everyones field of work and assing teams accordingly? Assign people with similar time zones? Am I overthinking this?

Yes. Don't assign the teams, let users form them for themselves. Everyone likes different things, some people need to physically speak to people over VOIP to be comfortable with what they're doing (we can always try to get them to explore working from other peoples notes/comments later), sometimes being able to ask questions about everything helps you understand, but in order to have that, you'd need to be in a similar sleeping pattern and so need a similar timezone (or to be nocturnal). We can't account for every requirement like timezones, languages or SVC (although we can do our best to guide people), so we should let them decided for themselves.

How do we switch teams when we're done with a project?

Make teams temporary, all points should be attributed to individuals. The teams score upon project completion/failure should be either applied to everyone or split between the number of members in the team. That way each person can swap between teams after each project, or reform a team with people they've work with before.

how long should we settle on a single project? A week? A month? Or do we need to have deadlines at all?

Deadlines should definitely be an option. Handling milestones is a big part of project work, it requires a lot of communication to make sure everything is on par. Give reasonable deadlines, probably with a good deal of slack to begin with, or even apply a 'difficulty' setting. More points for the earlier deadline, but you shouldn't join one of these projects if you feel like the deadline is too close for you to handle. Deadlines should also be project dependent as well as difficulty dependent, a simple comment box project could only need a week, but a full blog might need a month.

where do we post results? When do we post results? What exactly should we post?

Oh so many places, ideally this whole project is a great learning idea and I've been looking for something like this to start on for months. Github or other such project stores are good at looking at details such as commits and how the project evolves. An official thread on this subreddit for each project would also be good (or on a forum). I can easily envision an entire website full of features that would make this entire ideal work smoothly. Perhaps that's what this needs. If this subreddit gains enough traction, perhaps using the skills found here (and in other places) we could build an open source website to provide all of the tools we'd need, essentially giving a practical use to the collaborative skills we've learned as well as the technical ones (but this would be far too far in the future to seriously discuss).

Ideally, we want a page per project/team. This will contain all of the information about the members (roster, jobs etc) as well as the task (which one, difficulty level etc). After that detail should be optional, it should be updated regularly throughout the project (at major milestones) but the level of detail can be anything from a line to many pages.

do we need a collaborative tool other than reddit? Maybe this should be every team own business?

I would suggest using Git. But don't tie people down to it, someone might be interested in SVN and we shouldn't discourage people building their skillset by 'vendorlocking' them. Reddit is helpful, but not designed for this without it's own subreddit, a forum or website would be best but a list of resources somewhere would be best.

/u/raspberrySquare [3] set up a github repository, is that good enough for hosting our projects?

Each team should be responsible for their own hosting. Provided everybody can access it and it is free then I don't see why this should be an issue, github offers free repos, as do many others. At a push free hosting or dropbox can even work.

/u/jbeardles [4] gave an idea of a podcast[5] . I totally agree and am thinking of setting up a blog to post important ongoing stuff and just to show people how awesome we are going to be. What do you think of this?

Oh dear god yes. Maybe not JUST a podcast, a blog entry or maybe even just a post on the subreddit once a day (could even be automated by a bot [if we could make one]) that collates threads.

I think the team flairs are a good idea, but I think the implementation needs a tweak. You were thinking of long term fixed teams, if we want people to explore and work with lots of different people/groups it would be best to simplify it to something like:

[Team Name][Role][Project]

or similar.

Writing this at work so I'll have another look and possibly reformat when I get home. I love this idea in general.

3
[deleted]•

[deleted]

1
[deleted]•

I apologise for my phrasing. I meant I think that you meant long term fixed teams. But I was getting distracted with work. I like the whole idea you had going. I think I saw the points idea and it fell into place too readily with what I was thinking of. Ill be on my home pc soon (currently mobile) but would love to hear all of your ideas so far with more details, I presume you have more ideas you're yet to share :p like I said before I love this idea and feel like there's a genuine need for it.

1
[deleted]•

What I think:

  1. Sort out who wants to mostly work on front end and who wants to mostly work on back end then split the front end and back end groups so we have about equal experience on both team.
  2. Randomly, I guess...
  3. For the start, aim for about week long projects and try to stick to a reasonable deadline
  4. I guess we could post them here. I also quickly set up this, I dunno if it'll be any good but I guess we could try using it. It literally only took a couple of minutes to set up so I don't really mind either way.
  5. I guess teams could sort out what they use, I've heard trello is quite good, or again I could split up that forum above into catergories and we use them.
  6. Like I said in the other thread, I have a vps which we can use if you want, for instance I could update the files on the vps to match the files in the github repo every couple of days or so.
  7. That might be a little way of yet, might be best to concentrate on making a start and then we can think about those sorts of things later on.

Anyway, it's night here, so if anyone decides to use that forum hopefully nothing breaks :)

1
jbeardles•

I think 2 week long projects are pretty reasonable -- that way they can be more like a real sprint. We can even have a big, overarching (I like the idea of setting up a blog, for example) and teams could work on 2 week sprints to complete parts of the bigger project.

1
[deleted]•

[deleted]

1
jbeardles•

I also think we could use something like http://kanbanize.com/ for anyone who wants to join in on the project after we've kicked off. We can use Kanban for tracking bugs and have any new people start of on a bug-fix team so that they can get acclimated to the code base.

I'm currently looking for something simlar for a SCRUM board -- once I find something that I feel is solid, I'll go ahead and set up 2 boards and people can start collaborating.

1
mcstripes•

I like the idea of trying to divide backend and frontend evenly over teams, just so there are (ideally) two of each working on each project, and the help desk is a fabulous idea. I'm excited to start.

I don't have experience setting up team projects, so I've not got too much input on the boards/scrum stuff, but I can help set up and run the blog/podcast/news site. It could even be a homepage of sorts, with forums and links to our projects and teams behind it.

2 weeks is an appropriate amount of time.

1