3

I have quite a few years of programming experience pre-university and have been working full time as a mobile dev at a small company for about 3 months now, so am quite far ahead of almost everyone in my courses at university.

We will have a group software project consisting of 4-5 2nd years (including myself), one or two of which will be as experienced as I am. We will have about 6 weeks to do the project. It is too early for me to know the task yet, but it will be all software.

My purpose in leading is to gain some experience and get better at leading groups, and allow everyone in the group (even the beginners) to get some experience programming. (By beginners, I mean the ones who only really started programming when we started university.)


I have been watching some brief Youtube videos about Agile, TDD/BDD (specifically this guy) and have been wondering what techniques I could use to apply to the group project. (Note that we don't get to take our agile course until 3rd year :(.) I was thinking about involving some of these sorts of things:

  • Minimum Viable Product / MVP - to make sure we don't waste time developing the wrong thing. But then will people accept that they need to tidy up their code...
  • Behavioural tests - the relatively experienced developers / myself will have to write these for everyone to give us some assurance that we don't break each other's features along the way.
  • Some way of breaking tasks into smaller tickets - so that they are assignable
    • Testing process - I definitely want some sort of quality control over the end product. I guess I will have to do this if I want others to gain experience with programming itself.
    • Code review - so that I know exactly what goes into the code base and that it isn't going to be rubbish code
  • Daily stand up - I have lead a 4 week project earlier this year and found that the beginners in the team 'fell out of the project' as we were running out of time, and simple tasks for the beginners to do. Me and the other relatively experienced developer had to take over to speed things along (which is not at all what I had wanted). I want to keep everyone (including myself) up to date with what everyone is doing, make sure they aren't stuck/blocked.

I don't want to overdo the project management and waste time overall, or overload the beginners in the team if the coding itself is going to be a bit of a challenge, so I guess I can't use all of these things. Also, with the Testing and Behavioural tests, I will have a large workload myself, so that's another problem.

I understand that I will most likely suck at this to begin with, and we have 2, two-week, pair projects so I will get some practise before the big one.

Out of these what do you guys recommend I practise and prioritise?

  • 1
    This question might be more suited for pm.stackexchange.com – Bart van Ingen Schenau Dec 29 '16 at 9:06
  • "we don't get to take our agile course until 3rd year" Dave Thomas, one of the Agile Manifesto founding Fathers, in a Dr. Dobb's interview said "The whole point, to my mind, of the Agile Manifesto is that it's a set of personal practices that may scale to team level. You do not need a consultant to show you how to do that. ... And yet immediately what happened was that everyone and their dog hung out an Agile shingle and the whole thing turned into a branding exercise." IOW you don't need to wait for a formal class to be agile. See also Agile is Dead – radarbob Dec 29 '16 at 13:19
3

To build up on what you already mentioned. Purely from a process perspective my recommendations would be

  1. Select a platform / software, be it Google Docs, University SharePoint, something like Jira, etc. to store the status of your tasks and make sure everyone understands how to reflect new tasks, update tasks, comment on tasks etc on their own
  2. Have an initial meeting to break up the project in tasks that are as small as possible, and don't necessarily assign the tasks to people but let them grab the tasks during the project one-by-one
  3. Have daily meetings/standups of no more than 15-20 minutes to highlight progress and challenges
  • Thanks for your feedback. For the first point, what if people don't want to bother updating them? I'm worried that people who don't like to stay in contact also won't like to keep the jira board or whatever updated. – Dylanthepiguy Dec 29 '16 at 21:46
  • Also, since you didn't mention most of the other things in the list in the question, I suppose they aren't the most important things? – Dylanthepiguy Dec 30 '16 at 8:34
1

I did a project just like this in school.

The big thing we did was define types of features that people could take responsibility for. We dealt with those that we're not finishing their tasks by saying that when we present I'm going to introduce each feature and who was responsible for it. Finish something or you won't have anything to say.

I moved heaven and earth to be sure everyone had something finished. I didn't do anyone else's work but I poked, prodded, coached and redefined success until everyone had some contribution.

I never dictated anything. I offered opportunities that would vanish if you were too slow.

I managed outright anger that some team members felt towards the less productive ones by listening, representing the concerns to the instructor, and creating a plan to keep everyone accountable.

It worked. Even our most difficult member had accomplished something. Which honestly surprised me. I'm more proud of that then the peer networking system I had created as my feature or anything else we did.

If he'd failed we had a work around for not having his feature. Actually I had work arounds or fall backs for not having everyone's features. I never got ahead of them. I made sure we could work without what was asked for.

In the end we only completed 10% of what we'd dreamed of doing. But that 10% was a complete product that never left the user wondering why things aren't working. When we presented we just didn't mention the missing 90%.

And we got the highest grades in the class.

  • "... I didn't do anyone else's work ..." Soooo important. I had an opposite experience in school where our team lead was an experienced professional coder. Rather than sharing his skill, knowledge, experience, etc. he just wrote lots of (everyone else's) code because he could and had the time. I wish I had protested early on. My end of project comments to the professor was five pages about how no one on the team learned a damn thing. – radarbob Dec 29 '16 at 13:59
  • @radarbob I'm curious. What happened after your handed in that report? – Dylanthepiguy Dec 30 '16 at 8:30
  • Thanks for the feedback. You said "We dealt with those that we're not finishing their tasks by saying that when we present I'm going to introduce each feature and who was responsible for it. Finish something or you won't have anything to say.". Did this always work? And do you have an example of when you could work around the work not being done? – Dylanthepiguy Dec 30 '16 at 8:33
  • It worked. I'd been on team projects before where people sat back and let others do the work. Making clear that the professor and audience was going to be able to tell who did what was a great motivator I'd wish I'd used before. One thing we wanted but wasn't critical was an email client sub system that could log on to email servers and distribute and read the connection string for the peer to peer network. Our work around for not having that done was 3rd party instant messaging combined with copy and paste. I was not going to let anyone derail the project. But we got it. – candied_orange Dec 30 '16 at 8:41
  • What happened is I learned my lesson: "assess and address, NOW". Years later, our (masters program course) class split into small groups for a project. In that initial "hello" meeting I felt shut out; it was clear that I was with a tight clique. Before class was over I worked out a different assignment with the teacher. Thank goodness. I did not have 2-3 weeks to waste hoping that things would just work out. – radarbob Dec 30 '16 at 16:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.