We have updated the content of our program. To access the current Software Engineering curriculum visit curriculum.turing.edu.
Consultancy - Development
We will be using an Agile process during the development of this project. This will include:
- Working in short 3 or 4 day “Sprints”
- Using GitHub
- Setting up Continuous Integration and Continuous Deployment (optional)
- Using Github Projects as a project management tool
- Conducting Story Grooming meetings
- Doing daily Stand Ups
- Demoing your project to your Project Manager
- Holding Team Retros
Note: Additional non standard gems must be approved by your project manager.
Sprints
In Agile processes, a sprint is a single cycle of development. The most common length of a sprint is two weeks. During this cycle, teams will assign features, develop those features, demo their work, get feedback, and retro.
Sprint 1: User Interface and Database Planning Spike
- Begin: Monday of Week 4
- End: Thursday morning of Week 4
Day 1:
- Your group should split your team up to focus on each area of the project.
- Front-end team (2-3 people)
- Back-end team (2-3 people)
- Documentation/Planning team (1-2 people)
- Each team will use a Miro board to brainstorm ideas
-
Delegate people to set up a GitHub organization, add other members, and set up the initial repos
- Deliverables:
- Wireframes of the User Interface
- Front-end application set up with gems configured. Ideally one or two calls to the backend have been roughly implemented
- Backend application set up with gems configured. Ideally one or two CRUD operations for front-end consumption have been roughly implemented.
- Initial structure of each Service (not necessarily working API calls)
Sprint 2: Primary Development
- Begin: Thursday afternoon of Week 4
-
End: Monday morning of Week 5
- Deliverables:
- Frontend has Bootstrap (or other CSS framework) in place, each wireframe is implemented in some amount, implements OAuth, can CRUD data with backend or is mocking backend responses for any incomplete endpoints
- Rails back-end can CRUD resources based on front-end requests
- Services successfully implement their respective API calls
Sprint 3: Final Product
- Begin: Monday Afternoon Week 5
- End: Friday Week 5
- Deliverables:
- Professional-looking front-end
- MVP for each component is met
- Fully working application stack is presentable
Project Check Ins
- Check In 1
- During this meeting, you should be prepared to review the artifacts from your inception: MVP, wireframes, story board.
- During this meeting, your team will draw out the architecture of your application
- Check In 2
- During this check in, you will discuss with your project manager what the expectations are for your final demo on Friday
- You can also use this check in as an opportunity to ask any questions and get help for the final few days of the project.
- Check In 3
- Review of near-final work, check for MVP
- Discuss presentation details
Git/GitHub
- Commit Frequently
- Decide on a git workflow
- Make branches and submit Pull Requests for each new feature.
- DO NOT commit directly to main
- Keep your PRs as small as possible (one feature / user story per PR)
- Use screenshots and screencasts to demonstrate functionality.
- Your PR should be reviewed by at least one team member before it is merged.
- Tag your Project Manager if you have questions. DM your Project Manager letting them know you have tagged them.
- Use a PR Template.
Story Grooming
- You should be using a project management tool to keep track of your stories.
- When doing a “Story Grooming” you should:
- Make sure that the project board is up to date
- Look over the current backlog of stories and decide if you want to make any changes
- Are there any stories that need to be updated?
- Are there any stories that need to be added?
- Assign stories to individual team members or pairs
- Be clear on what it is that everyone should be doing
- You should be Story Grooming every 1-2 days.
Daily Stand Ups
- A Stand Up is a very brief (hence, physically standing up) meeting for the development team to keep in touch about what everyone is doing.
- During the stand up, each member of the team will take 1 - 2 minutes to answer these questions:
- What have you been working on?
- What are you going to be working on?
- Is anything blocking you?
- Every weekday you should send your PM a summary of the day’s stand up.