kcoyner / hr-rpt01-side-project

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Side Project

Overview:

Software Engineering is a rewarding career but one that requires developers to become continuous learners. Long careers are usually marked by periods of reinvention -- engineers learn new technologies, shift focus to different parts of the stack or dig deeply into some specialty like Machine Learning or DevOps, for example.

Because few engineers have the luxury of working for organizations with "20% time"* policies, much of that learning happens in the form of "side projects". This Side Project asks you to consider where you are in your learning and design a project that will allow you to dig deeper into something you've already worked on or pursue a new project interest.

The inputs and outputs for Side Project are very similar to those for your MVP:

Q: What are your inputs?
A: 20-30 hours of (relatively) undivided attention

Q: What is the required output?
A: You must have a concrete deliverable as a result of your project which you will share with your cohort in an informal project presentation.

Getting Started:

To build on your understanding of project management, we will require that you define this as a project with a project plan, it's own Trello board, and accountability milestones along the way. You may work on any of the following during your side project time:

  • Continue to build your MVP. Changes may include refactoring to improve your codebase or the project architecture or tackle your project backlog. Consider taking what you learned from Greenfield/Legacy and formally structure your MVP with a Trello board, wireframes, etc...

  • Continue working on your Greenfield or Legacy project with your project team

  • Start a new solo or group project of your choosing

  • Learn something new: IoT, VR, AI, Vue (vue-cast anyone?). There must be a deliverable at the end.

  • Develop your online presence (e.g. earn 1000 points on Stack Overflow, develop a blog and post regularly)

  • Add features to your thesis project that are not part of your team's backlog (in an independent branch, explore features that are not prioritized by your team -- make sure your choice doesn't conflict with your team's plans)

  • Define a project around deepening your general skills (e.g. dig deeper into data structures) or addressing some gaps in your understanding of curriculum materials.

You have between 20-30 hours over the next 10 weeks to commit to an effort of your design that you will work on while you're working on your Thesis Project. You can work solo or on a team of your choosing. On average, two class hours a week will be made available for this effort. You can stop at those hours or do additional work outside of class. If you do more work, make sure you are monitoring your hours so that you keep this to 10-20% of the time you're committing to thesis. That is, for every 4-5 hours of thesis group work, you will have earned an hour to give to this side effort.

You may not allow your side project to have a negative impact on your contribution to your thesis work

There are three main objectives of this exercise

  1. Learn how to structure your work so that you can preserve time for personal development.
  2. Use project management strategies to monitor and ensure progress on your project.
  3. Deepen your understanding of curriculum content or learn something new.

Please approach your Tech Mentor if you find you need to reduce the scope of your effort on this project in order to contribute fully to your thesis project.

Constraints

You will be given between 2 - 3 in class hours every week to work on this project. You...

  • should complete this within the program hours -- not on top of the hours you have already been committing to the program.
  • are not required to give any hours beyond those alloted during class time -- plan accordingly
  • may not allow your side project to undermine your contributions to your thesis project -- see your technical mentor if you find yourself in that position.

Bare Minimum Requirements

  • Complete the _PRESS-RELEASE.md template (<30min)
    • Pick an idea.
    • Flesh it out on paper
    • Define a one or more deliverables for your project
    • Set at least three milestones w/dates and target deliverables before project completion
    • Present your plan to your technical mentor for review and refinement as necessary
  • If building an app:
    • Follow the principles from your MVP project to appropriately scope an MVP and several post-MVP iterations
    • Fill in the _PRESS_RELEASE.md template document
    • Use iterative development (go straight to something that demos your idea)
  • Prepare for to give a pitch and demonstration of your work

Project Plans are due in one week for review by your Technical Mentor. Submit them early if you want feedback or are prepared to get rolling sooner.

About