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:
- assign people to teams of 3 - 4 members;
- every team comes up with a project idea which should be something easy enough for beginners (it's r/beginningWebDev after all);
- teams work on projects separately for a certain period of time;
- teams finish their work and post results here for later discussion.
Things we need to ponder are:
- 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?
- How do we switch teams when we're done with a project?
- how long should we settle on a single project? A week? A month? Or do we need to have deadlines at all?
- where do we post results? When do we post results? What exactly should we post?
- do we need a collaborative tool other than reddit? Maybe this should be every team own business?
- u/raspberrySquare set up a github repository, is that good enough for hosting our projects?
- 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
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.
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.
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.
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?
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.
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.
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.
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.
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.
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.
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:
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.
[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.