Project: Legacy project Copy

Overview

You’ve built an awesome product as part of the Team project. You’ve developed the ability to contribute to a shared vision and iterate towards it effectively among peers. Now you’ll learn how to leverage the bonds you’ve formed over the past 2 weeks to dive into an existing project, and add to it.

As a software engineer, you’ll almost never be asked to build a new application from scratch. Instead, you’ll be given a partially constructed application and told to implement a set of new features. This is always difficult, but with practice, you’ll become exceptional at it.

You will practice that skill over the next 5 days. The Legacy project has been designed specifically to feel like it’s too short. The pressure you feel will force you to make very deliberate choices regarding how you spend your time.

Remember, time and attention are your most precious resources. They are always extremely limited. Use them wisely, and always be conscious of the choices you make as you do so.

Every decision you make over the next 5 days should be in service of the following goal:

  • add as much value as possible to the existing product (from the user’s perspective).
  • Identify the highest leverage features you can implement.
  • Do not waste time re-building the existing project’s architecture (unless it is 150% necessary), focus on the user experience.
The Legacy project is about:
  • Time management
  • Working with a legacy code base
  • Building atop an existing product design
  • Working within an existing project architecture
  • Consuming project documentation
  • Leveraging existing tests to help you build more quickly.

During the Legacy project, you must continue to document your code and feature roadmap in sufficient detail so that future open source contributors can continue to build on it.

Team Communication

  • Your team should continue to communicate new ideas for features or report important bugs through github issues or whatever tool you use to manage github issues, that way everyone on your project can see what important things are happening and there is always a repository of further work to be done.

  • To introduce new code into your project, your team should follow the parameters laid out by the previous group.

Remember, your Legacy project should look like it was built by a single person.

GitHub Workflow:

  • Download the project repo, you decided to work on. (ask the original team to send you the link for their organization)

  • Create a new github organization

  • Add a new repository to your organization with the same name of the original project.

  • Add the first version of the project to your organization.

  • Invite your teammates members and your instructors to join the organization.

  • Create a branch for each team member with their names.

  • Ask your team members to fork and clone the repo.

  • When any team member finish a task, they need to create a pull request.

  • Make sure to review the code before merging them back to your main branch.

  • Each time you need to get the new changes added by other developers you need to do git pull <remote-name> main.

Happy Hacking 👨🏻‍💻👩🏻‍💻