Team Management

Summary

We tried out several different approaches to managing our team. We wanted to make sure we had the maximum accountability and everyone always had something to be working on. We used Messenger for conversation. On it, we each were frequently discussing things, but also we reported on what we worked on. This ended up being a great way to make sure everyone knew where the subsystems stood, as well as what each person was working on. It also helped us make sure that things were developed in tandem (i.e. if you are supposed to code the LEAF detection state machine and see the circuit is done, you should probably focus on that over another SM so testing can go forward on the circuit).

We also used a variety of documents to keep track of what was going on. One was a simple Google doc where the software people kept track of all the little things they skipped as they went. For instance, when we wrote the House LED SM, the Energy Meter SM hadn't been written yet. However, the House posts to the EM. So, we wrote on this document: "House does not post to EM yet". We kept track of lots of things, like helper functions for servos and audio, along with PWM commands to calibrate and anything else we needed. This was great later on, because we've individually found on previous projects that typing a bunch of //TODO comments in code is not very efficient and leads to plenty of bugs.

We also used a spreadsheet to track code progress, circuit design, integration, and final integration for each subsystem. A screengrab is shown below.

Finally, we met often for about 15-20 minutes. At each of the meetings, we made a Google doc with action items for each person. In between the meetings, each person was free to add or cross off items from the documents as an action item list. It gave a good breakdown of tasks that needed to be done at any time.