Kicking Off Second Term Capstone

Bart Massey 2017-04-04

First and foremost, let me say how proud I am of everyone so far. I said it during the Mid-Project presentations, and it's still true. You've all stepped up and done good work in an odd and sometimes tricky work situation.

Let's talk about a few things as we start the new quarter.

  • Transparency
  • Teamwork
  • Change Control
  • Testing
  • Inspection
  • Rework
  • Timeline

Transparency

  • There's a natural inclination to let problems slide.

    Don't ever let problems slide. When something seems wrong, you need to let your Team Lead know. If you are uncomfortable talking with your Team Lead about it for some reason, you need to let Eric or I know.

    What kinds of things am I talking about? For example

    • Personal issues
    • Interpersonal issues
    • Technical concerns
    • Process concerns
  • There's a natural inclination to avoid conflict.

    That's a good idea, but resolve conflict rather than letting it fester. Again, your Team Lead, Eric or I can be helpful. Give us a chance.

Teamwork

  • Especially as we start the most technical and fiddly part of your Capstone, you need to step up and be responsible. If you aren't putting in the effort in a focused way, you can make everyone around you fail. This is not OK.

  • You need to learn to work egoless. You will not succeed or fail in this project: your team will. That is harder, not easier, as it means taking a share of responsibility for your whole team. When someone on your team is failing, it is partly your fault.

  • Communication is key. Everyone should be on the same page and communicating regularly. The factory worker model doesn't work for software devepopment.

Change Control

  • Git is hard. Don't let anyone tell you it isn't. Ask for help.

  • Change control is more than just using Git. Have a solid process for making changes that involves more than one person. Gratuitous change is an enemy of process.

Testing

  • Your system test plan should be well underway or done by now. You should be writing system tests.

  • Your integration test plan should be well underway by now. You should be writing integration tests soon.

  • You should have a continuous integration and test environment set up. Tests should be run automatically as the system is built.

  • There's a lot to say about testing, and I don't feel like giving a full lecture here today. If anyone asks me to, I'll be happy to set up some testing training.

Inspection

  • Only inspectable code can be inspected. Code is written primarily for people.

  • Do you have a pull-request git model? It's a good way to ensure that some inspection is done.

  • Organize inspection sessions for critical pieces.

  • I will be organizing my own review and inspection of your work mid-quarter sometime. Be prepared to be proud of your code.

Rework

  • Some amount of rework is inevitable. Be prepared for it.

  • Learn how to do root cause analysis and proper fault repair.

  • Architecturally, know when to hold 'em and know when to fold 'em.

  • I can help with these things.

Timeline

  • For most of you, this will be the most available time of the quarter. Use it. Don't wait to get things going. Knock out as much as you can now.

  • The end of the quarter will be comically busy and stressful. We've never tried Winter-Spring Capstones before: you'll be looking for a job and anticipating changes in your life situation. Nonetheless, Capstone is still a priority, because team. Make sure you finish strong.


Now go and keep doing good things!