Tuesday, July 21, 2015

Cleveland Give Camp 2015 - Or How I Helped a Team Build an Educational Game in a Weekend. Extreme Lean Agile development.

So it finally happened. I had a year where I wasn't either working or taking care of the family during Cleveland Give Camp!!!

NOTE:  This is *NOT* yet complete. I'm just throwing it up on Blogspot so people can read the TL;DR version and get a feel for how Give Camp went. I'll finish it this week.

tl;dr (tool long didn't read version)

I went to Cleveland Give Camp 2015, ended up helping VeggieU.org build an educational game featuring a worm eating healthy veggies, avoiding veggies that make worms feel yucky, and making other veggies grow by fertilizing them. The food was awesome, the people were awesomer, and I think everyone had a blast there.

The following things ensure a good project on short timelines:

  1. End users MUST know what they want and what is most to least important in their project.
  2. These must be in some kind of prioritized order.
  3. The quickest way to get stuff done is one thing at a time. NO MULTITASKING unless necessary.
  4. Don't bug the other team members if they are working unless you are stuck and need help OR have something you know they need.
  5. Related to #4 - have some indication that you're busy such as headphones on playing your favorite music. This also helps block out distraction.
  6. Have some way to share/communicate what you're working on and progress. Group chat room (slack.com for this weekend) and Kanban board worked great. Google drive to share files.
  7. COMMUNICATE. I know this seems to go counter to #4, but you need to communicate what's next and work with the end users asking for the project to make sure you are actually meeting their needs. Also developers need to communicate with designers to make sure what they are building looks like what it should as they go.

Pre Give Camp

I figured this out rather late in the game and was on the waiting list when I first signed up. My friend, sadukie, mentioned there may be a game project this time around. So when I signed up I mentioned that I was mostly experience with Perl, PHP, Rails, and ETL/DB development but I am also working my way through the Unity 3d training videos I bought on sale.

Give Camp Day 1

I packed my things and made the trek from Columbus, Ohio to Cleveland soon after lunch. I had managed to break my CPAP mask trying to pack it and my backup mask had got kind of moldy when our basement flooded a bit earlier this summer. On the way up to Cleveland I stopped by the CPAP supply store on the North side of town. I also stopped by Microcenter to get some Penguin Mints (caffeinated mints) but found they no longer sell those. Amazon carries them, in bulk! I am putting that on the shopping list for next year.

I check into the hotel and then head over for dinner and the charity intros.

Charity Intros

This year, there were 19 charities if I remember right, which is pretty massive. Total count was over 215 volunteers. They gave us name tags with a single letter on it signifying which charity we were working with but we didn't know which charity was which letter until after the intro was over. It sounded like there would likely be some shuffling people between charities so I made notes of which ones I'd like to work with.

The main ones I wrote down were Veggie U which wanted a game and a charity that provided sports equipment for disabled people which wanted an inventory management database.

Supper was grilled burgers and hot dogs along with chips and various other stuff you'd find at most cookouts. It was excellent.

Initial Ramp Up

As you probably guessed from the blog title, I ended up on the game development team. Veggie U had a curriculum for third graders in which they used worms and digging in the dirt by providing classrooms with a "garden in a box" for the students to grow their own healthy food. At the end of the curriculum is "Feast Day" where they get to enjoy the fruits vegetables of their work.

They wanted to boil down the facts about worms from the curriculum into a game that the students could play in the classroom so it had to be a no download, no info tracking, no ads, etc game. The gameplay they had in mind was a worm would eat the food that it finds healthy, avoid the food that it finds unhealthy, and fertilize the plant by aerating the soil and leaving castings - aka worm poop.

This is where our team REALLY lucked out. We had a group of three from the Cleveland Game Developers group that had done a Game Jam (an event they had 48 hours to make a game based on a theme). Two of these people were developers with familiarity with a tool called Construct 2 which is a drag n drop game creation tool that generates HTML5 games that can be published to websites and played on most modern browsers. The third was a graphic designer with a Tetris inspired tattoo.

We also had another designer that was also awesome and had a guy show up that does 3d animations. He brought not one but TWO iMacs to handle the workload.

To get things started, one of the guys with Construct 2 experience who had actually taught it before gave the rest of the developers a crash course in how to use the tool. Sadly, it only runs on Windows so I spent a good chunk of the night getting Windows installed on my Mac in Parallels. I had just removed the Windows 10 Tech Preview to free up some space and Microsoft is no longer allowing Windows 10 TP downloads since the official release is so close.

Luckily, James Gifford came to my rescue with a spare Windows 8.1 license he had + flash drive.

Moment of Truth

While everyone was getting settled and I was fighting to get Windows installed on my laptop, Howard (our super awesome project manager) asked if anyone felt like our team had too many people. We did have a lot. And he said some other teams were short on developers. I almost said "Well, I've never made a game before. Let me join the team that needs a database set up."

Luckily I came to my senses and realized that I didn't book a hotel in Cleveland and drive all this way to do what I do for my day job for free. Also about that time one of our Construct 2 experts came to the conclusion we have just about the right number of people and said so.

I don't remember much else eventful happening that night except we had some people who were content creators (people who write online) who boiled down the Veggie U curriculum to something that might fit in a game that third graders would enjoy.

Day 2 - Minimum Viable Product and Making it Look Like a Game


Morning


Lunch


Dinner


We Only Come Out at Night


Day 3 - Wrap Up, Adding Music, Sound and This Boat is Full of Surprises

Morning


Lunch


Afternoon Session


Closing Ceremony


Heading Home


Conclusion

Give Camp in Cleveland was an entirely different experience than Columbus. It was bigger by far. Also Columbus Give Camp was hosted in just what I can only call "normal" offices. The Cleveland Give Camp facilities were amazing - taking over a floating office on a boat and nearby airport.

Anyone interested in volunteering definitely should. And not just developers. I feel that the focus on developers may be one of the small things Give Camp needs to work on. There seems to be room for more people in other roles - project managers, designers, content creators, security experts, and probably some others I'm not thinking of right now.

And for those who aren't near Cleveland - look for a Give Camp in your area. If there's not one, look for a similar event. I would be shocked if you're in an area where no such thing exists. And even in those cases, you could look for the nearest hackathon or do one remotely!

I am looking forward to the next Give Camp already. If I can make it to one before the next Cleveland Give Camp, I will. But that will be one I make every effort to get to next year.