Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Purpose

This document serves to outline the main responsibilities and goals for Software Solutions for the Fall 2022 semester.

Document Owner: Anthony BernardiReid Chandler, Head of Software Solutions, bernardichandler.an@northeasternr@northeastern.edu

Mission

Empower people through software solutions.

Priorities

  1. Foster a supportive community that prioritizes growth, learning, and communication

  2. Maintain high-quality and reliable applications

  3. Constant reflection and learning from our software projects and club processes

  4. Deliver innovative and useful features to our clients

Our Applications

  • FinishLine by NER (Web)

    • AKA PM Dashboard v3

    • React frontend, Express backend, Yarn workspace in Typescript

    • Project Management dashboard Dashboard with goals to expand to finances in the Fall

  • PM Dashboard v2 (Web, Deprecated on August 15th, 2022)

    • Built-in TypeScript, React, and serverless beginning January 2021 and launched in April , 2022, 24 weekly users

    • Interactive UI for viewing, filtering, reviewing, and implementing Change Requests, Projects, and Work Packages

    • Intended expansion to financial and logistical management features

  • PM Dashboard v1 (Web, Deprecated on April 30, 2021)

    • Built-in Google Apps Scripts in July 2021, 24 weekly users

    • JS/TS-enhanced HTML-based UI with minor interactive features built on top of the Project Management Database Google Spreadsheet

  • PM Dashboard v0 (Web, Deprecated on March 14, 2020)

    • Built-in Google Apps Scripts in November 2020, 6 weekly users

    • Email automation scripting to summarize projects behind schedule

  • Future Application Ideas

    • Mobile interfaces for PM Dashboard

    • Engineering club management software

    • Engineering lab/machine shop management software

    • Northeastern club management Club Management software

Roles and Responsibilities

Developer – (5-

...

hrs/week):

Reports to: Tech Lead

A Developer is responsible for building and maintaining our full-stack web application using Typescript, React, Express, Prisma, etc. Developers should be passionate about coding and learning. The goals for a Developer are to learn web development and other skills that will prepare them professionallyfor the professional world.

Responsibilities:

  • Attend weekly Software Solutions meeting (mandatory)

  • Complete at least 3-4 tickets per semester (mandatory)

  • Attend Learning Sessions (optional)

  • Put forward their best effort and try hard to learn as much as possible

Goals

  • Understand the full architecture of Finishline and be able to explain it (e.g. in an interview)

  • Learn how to be an independent developer (debug, answer your questions, use google)

  • Get comfortable using the technologies used in our app (React, Express, Prisma, Typescript, Git)

Tech Lead – (

...

10 hrs/week):

Reports to: Software Group LeadHead of Finishline

Tech Leads are responsible for mentoring newer developers. This means making sure they have appropriate tickets to work on and , aren’t blocked, and review their tickets. A Tech Lead should also continue working on the project, contributing to more difficult tasks. The goals for a Tech Lead are to enhance their communication and mentoring skills, as well as their web development skills.

Responsibilities:

  • Attend weekly Software Solutions meeting (mandatory)

  • Attend weekly Software Leads meeting (mandatory)

  • Mentor their assigned developersgroup of developers (at max 10 ppl) and be able to walk through problems with them

  • Check-in with developers at least once a week

  • Complete advanced coding tasks

Software Group Lead – (8+ hrs / week)

Reports to: Head of Software

Software Group Leads are responsible for an entire team of Tech Leads and Developers. This team is responsible for a big set of features from the product roadmap, and the SGL should keep the team on track for completion. The goals for an SGL are to think long term and to foster an environment where their team can thrive.

Responsibilities:

  • Attend weekly Software Solutions meeting (mandatory)

  • Attend weekly Software Leads meeting (mandatory)

  • Lead development team and keep progress on track

  • Manage and mentor assigned Tech Leads and team members

  • Be an expert on the features for their team and contribute to their development

...

  • via Slack

  • Participates in at least two tickets per Release (either completely doing or completing stale developer work)

  • Review and manage (make sure they’re not blocked or waiting for another review) respective groups' PRs

  • Responsible for making sure members' work doesn’t get held up too long

    • If a high-priority ticket is stale for more than 2-3 weeks, the lead should either do the ticket themselves or ensure that it gets done by a reliable member

Goals:

  • Gain the ability to foster a sense of community in your tech lead group to maintain retention

  • Gain a more complete understanding of every aspect of the code base

  • Take ownership of the application (feel proud of the work and the website we make)

  • Learn how to write tickets and break out epics

Software Product Manager – (5 hrs/week):

Reports to: Software Product Manager, Head of Product Management

  • Same as Software Product Manager below but is in an apprenticeship role to one

  • Shadow your Assigned SPM to learn the NER product approach

  • Learn how to flesh out tickets and investigate features with users

...

Product Leads

Responsibilities:

  • Attend weekly product meetings

  • Slack and communicate with engineers and developers regularly about new features or feature requests (at least once a week)

  • Make Epics

  • Design new features

    • Follows Figma Style Guide

  • Conduct Design Reviews for their new features

  • Must come to at least one engineering bay time per week

  • Attend Product Learning Sessions

Goals:

  • Learn as much about the applications that we make and about the structure of the club as a whole as you can (A good way to get very involved in the club quickly)

  • Learn how to communicate with Engineers and Developers

    • Understand and act upon criticisms of your designs or epics

  • Learn Figma

  • Learn how to write user stories and an epic for new features

  • Learn how to collaborate with a team of product managers to create larger features

Software Product Lead – (7-10 hrs/week):

Reports to: Head of Product Management

Responsibilities:

  • Attend and facilitate weekly Software Solutions meeting (mandatory)

  • Responsible for bridging the gap between users and the development team

  • Understand and advocate for the users, their needs, and resolving pain points

  • Conduct user interviews to understand user behaviors and needs

  • Write user stories, flesh out tickets, and provide user insight on tickets

  • Track the application's features and build the application roadmap

Designer — (4-7 hrs / wk)

Reports to: Head of Product Management

  • Responsible for building user interface design sketches and wireframes

  • Design improvements to existing user interfaces and create new designs

  • Help communicate the visual aesthetic to developers to ensure users have a positive experience interacting with the application

  • Work with Software Product Managers / Analysts to develop featuresproduct meetings

  • Attend Software Meetings

  • Attend at least one engineering bay time a week

  • Create Tasks for Product Managers (in Finishline)

  • Ensure that new features are delivered on time, according to preset deadlines

  • Create Product Roadmap with Head of Product Management and Head of Finishline

  • Attend all Product Design Reviews

  • Moderate #software-product-requests (respond to and properly triage inquiries)

  • Create and analyze Product Feedback Form for any new features

  • Enforces Style Guide on member designs

    • Ensure the Figma file stays organized and easy to read/ work in

Goals:

  • Learn how to communicate and build connections with Engineering Leadership

  • Learn how to manage the creation and delivery of large new features

    • Delegate smaller design/ work to newer members

  • Be able to identify pain points and proactively come up with solutions

Head of Product Management — (10-15 hrs/wk)

...

Reports to: Head of Software Solutions

...

Responsible for overseeing the overall vision and direction of Software Solutions products

Chief Software Engineer

Responsibilities:

  • Attends all product meetings

  • Attends all software meetings

  • Attends all embedded software meetings

  • Attends all head meetings

  • Attends all lead meetings

  • Attends all Design Reviews

  • Presents (or ensures that another reliable person is leading) all product learning sessions

  • Approves Epics

  • Approves Designs (should screen designs before design reviews with a larger group)

  • Work closely with club leadership (spends time in the bay, in constant communication with them)

  • Understands all features of all applications and should be able to explain why they exist

  • Creates a Product Roadmap for each semester

  • Ensures that all product deadlines (set in collaboration with other software heads) are being met

  • Ensures that users are properly educated about the rollout of new features

  • Manage Finishline projects for the Product Team

Goals:

  • Be able to sell our applications (Finishline, Telemetry System) to users, engineering leadership, developers, and outside parties

  • Gain the ability to foster a sense of community in the product team to maintain retention

  • Communicate software product roadmaps at least quarterly to club leadership

  • Ensure user pain points are documented, prioritized, and addressed appropriately

  • Properly delegate work to product leads and managers

Head of

...

Finishline – (10

...

-15 hours per week):

Reports to: Chief Business Officer

  • Pitching the group 

  • Maintaining relationship with Khoury 

  • Overall management strategy of the team

  • Responsible for process improvements and constantly upgrading the software solutions team

Goals

Universal Goals

Goals for every semester

  • Teach web development and other related skills in a way that will prepare members for co-op

  • Reflect on previous semester and revise accordingly

Fall 2022

Overall Goal: DELIVER ON FEATURES AND BUILD A COMMUNITY

  • Complete the features on the product roadmap in an organized and efficient manner

  • Implement revised learning curriculum and onboarding process to provide a better experience for new developers

  • Grow the product management and design teams, and allow them to focus more on bridging the gap between users and developers

  • Focus less on growth and more on retaining and developing talent

  • Be more efficient and deliberate with the meetings we have people come to

  • Hold more social events and workshops that build a community within the team

Summer 2022

Overall Goal: LOWER THE LEARNING CURVE FOR THE FALL

...

Complete the following features:

  • Risk Log

  • N-Proposed Solutions

  • Teams base feature

  • User Settings

...

Experiment with ticket requirement instead of hour requirement for devs

...

Lowering the learning curve:

  • Revise all onboarding and related documentation

  • Revise the learning curriculum for the Fall

  • Switch to v3 repo written in express

...

Recruit well for the Fall

...

Software Engineer

Responsibilities:

  • Leads all Finishline meetings

    • With assistance from the Chief Software Engineer as needed

  • Leads all Finishline tech lead meetings

  • Presents (or ensures someone reliable is presenting) all Finishline learning sessions

  • Attends all Product Meetings

  • Attends all Head Meetings

  • Attends all Leads Meetings

  • Attends all Design Reviews (related to Finishline)

  • Final Reviewer and Approver of all Finishline-related PRs

    • The Chief Software Engineer will assist with this, but it’s the head's responsibility to ask the chief for help as needed

  • Breaks out epics (or delegates to a tech lead)

  • Ensure that deadlines are being met for releases

    • check-in with tech leads weekly on their progress on tickets

    • manage their tech lead group of returning members (with stricter deadlines)

    • ping people with high-priority tickets to make sure they get done by the time they’re due

      • If a developer can’t complete release work on time, it’s the head's responsibility to finish it themselves or ensure that a tech lead or reliable member of their group completes it in time

    • Work with the Product team to ensure that release deadlines are reasonable and we are on track to meet them

  • Ensure that developers have good, varied work to do

  • Manage Finishline projects for the Finishline Team

Goals:

  • Learn how to effectively manage a 50+ developer team

  • Learn how to deploy the app on AWS (optional)

  • Deliver a good product (Finishline) that they can be proud of and talk about leading the development of

  • Have a complete understanding of the codebase and or tech stack

  • Be able to answer any question about Finsihline that could be asked

  • Learn how to research new technologies for new architecture or features

Head of Application Software – (10-15 hours per week):

Reports to: Chief Software Engineer

Responsibilities:

  • Leads all Application Software Meetings

  • Presents all application software learning sessions

  • Attends all D&C meetings

  • Attends all Product meetings

  • Attends all Design Reviews (related to application software)

  • Attends all head meetings

  • Attends all lead meetings

  • Attends all software social events

  • Ensures that NERO and Telemetry Systems are being completed according to deadlines

  • Creates Application Software Roadmap with Head of Product and Chief Software Engineer

  • Communicate regularly with the head of D&C (to be changed to the head of firmware)

  • Breaks out product epics and ensures that members have work to do

  • Manage Finishline projects for the Application Software Team

  • Initial vetter of new applicants for the application software team

    • Makes technical questions for the application software team/ conducts any interviews of new applicants

  • Final reviewer/ approver of all application software PRs (it's their responsibility to get the chief software engineer involved as needed)

  • Drafting architecture for respective projects under Application Software

  • Removing any non-contributing members from the team to ensure good team moral steady progress on deliverables

Goals:

  • Learn how the car works

  • Fully understand the tech stack for all Application Software Projects

  • Gain the ability to foster a sense of community in the Application Software team to maintain retention

  • Learn how to research new technologies for new architecture or features

  • Learn how to delegate work to avoid burnout and ensure deadlines are being met

Chief Software Engineer– (15-20 hours per week):

Reports to: President of the Club/ EBoard

Responsibilities:

  • Attends all software meetings:

    • Weekly Finishline Meetings

    • Weekly Product Meetings

    • Weekly Application Software Meetings

    • All Design Reviews

    • All Learning Sessions

    • Leads biweekly software meetings and social events

  • Attends all EBoard meetings

  • Attends all head meetings

  • Attends all lead meetings

  • Attends all Kaleidoscope Meetings

  • Creates Finishline Product Roadmap with head of product and head of Finishline

  • Creates Application Software Product Roadmap with head of product and head of Application Software

  • Creates Finishline Development Roadmap with head of product and head of Finishline

  • Creates Application Software Development Roadmap with head of product and head of Application Software

  • Final decision maker for all software-related decisions

  • Represents the software team to outside groups whenever necessary

  • Understand the design, product, and implementation (tech stack) of all applications

  • Assists all heads when asked (should pick up any slack in all parts of the software team)

  • Ensures all meeting times are scheduled (with a room) with EBoard without conflicts between teams and heads' responsibilities

    • Ensures that all meetings are running as intended and with all the support that they need

  • Creates learning sessions with the heads who will be presenting them in a timely manner

  • Ensures that heads are meeting their responsibilities and fostering a good environment for members

  • Plans and facilitates all social events (buys food)

  • Deploys all applications as needed

  • Have all the logins and recurring subscriptions (AWS login, AWS bill, NER gmail, domain for Finishline, Figma, Netlify, all ENV variables)

  • Advocates for software members/leads and works on creating benefits for software members and leads (employment engagement opportunities, events with other clubs)

  • Communicate with club leadership to ensure the software team is properly supporting the rest of the team and contributing to car development

  • Manage any interpersonal conflicts that come up on the software team

  • Ensure that the team has effective heads currently and is developing more talent to lead the team in the future

Goals:

  • Collaborate with the heads of each team to ensure a good learning environment is created on the software team and people have a variety of opportunities to learn and improve their skills

  • Learn how to manage several projects and collaborate with teams of engineers

  • Make a set of products that they can be proud of/ discuss with other students or employers

  • Increase retention and decrease burnout of people in heads/ leads roles

Goals

Universal Goals

Goals for every semester

  • Teach web development and other related skills in a way that will prepare members for co-op

  • Reflect on previous semester and revise accordingly

Conclusion

If you read this far, thank you! You must care a lot about the software team to read a whole charter about it. If you have any feedback or questions, feel free to reach out to me through email or Slack.