Week 1 - Week 2 Flashcards
Definition of Software Engineering
the principles, methods, techniques and tools for the specification, development, management and evolution of software systems
What are the 5 Agile Manifesto Principles?
- Individuals and interactions over processes and tools;
- Working software over comprehensive documentation;
- Customer collaboration over contract negotiation;
- Responding to change over following a plan.
Risks of Agile Development
- Lack of customer engagement.
- Stakeholder conflict.
- Complex contractual arrangements.
- Loss of organisational memory.
- Poor code quality.
- Poor team coordination or cohesion.
Agile Methods and Practices
- Xtreme Programming;
- Scrum;
- Test driven development;
- Behaviour driven development;
- Refactoring;
- Pair programming;
- Retrospectives;
- Continuous integration and deployment.
What is Scrum?
The scrum framework is heuristic (mental shortcuts that allow people to solve problems and make judgments quickly and efficiently);
It’s based on continuous learning and adjustment to fluctuating factors. It acknowledges that the team doesn’t know everything at the start of a project and will evolve through experience. Scrum is structured to help teams naturally adapt to changing conditions and user requirements, with re-prioritization built into the process and short release cycles so your team can constantly learn and improve.
What are the roles in scrum?
Main roles: Scrum Master, Product Owner.
Other Roles: Team Manager, Quality assurance manager, Toolsmith, Chief architect, UX designer and Developer.
Scrum Workflow
Most projects start with a sprint entitled a Project Launch Meeting
1- Sprint Planning Meeting.
2- Sprint Backlog.
3- Sprint Automation.
4- Sprint Execution / Daily Scrum/ Stand Up (Can take place during the sprint).
5- Sprint Review Meeting
6- Sprint Retrospective.
Repeat the process.
A release can have of one or more sprints and each sprint last 1 to 3 weeks.
Project Launch Meeting Tasks
- Determines the major features to be delivered to a customer over a series of sprints.
- Understand customers long term objectives and identify a minimum viable product.
- Decide on the goals for within the project course.
- Develop an initial set of user stories.
- Refine the user stories into tasks and populate a backlog of issues on GitLab.
- Triage items in the backlog to establish cost estimates and priorities.
Release Planning Meetings Tasks
- Longer projects will comprise multiple releases, each of several sprints.
- Identify the high level set of features or improvements to be delivered in a release.
- Create a roadmap of milestones aligned with your customer priorities and the customer days.
- Populate the roadmap with key features from the backlog.
- Assume that these will be changed in the sprint planning meetings.
Sprint Planning Meeting Tasks
- Decide on main goal for the sprint.
- Select tasks from the backlog on your issue tracker that match the goal.
- Ensure all selected issues are sufficiently detailed, such as Cost estimates, Priorities and Assignees.
- Ensure that task cost estimates are within the project velocity.
What is Project Velocity?
Velocity in Agile is a simple calculation measuring units of work completed in a given timeframe. Units of work can be measured in several ways, including engineer hours, user stories, or story points.
Burn Down Charts
A burndown chart or burn down chart is a graphical representation of work left to do versus time. The outstanding work is often on the vertical axis, with time along the horizontal. Burn down charts are a run chart of outstanding work. It is useful for predicting when all of the work will be completed.
Reviewing a Sprint Tasks
- Review the progress on the project in the Sprint Review Meeting.
- Review the software team’s process in the Retrospective Meeting.
Sprint Review Meeting Tasks
- Deliver and demonstrate new version of software developed over the course of the sprint.
- Summarise progress compared with planned work for sprint like Additional work completed and Missed features.
- Explain reason for deviations from plan.
- Identify new features to be added to the system.
Key Point about Agile Methods
Agile methods manage project risk through frequent reviews and small adjustments to project objectives and process.