What is Agile software development?
It’s a set of practices for software developers and project managers to deliver customer-centric products in a short development cycle known as sprints.
It is an iterative approach, with each iteration designed to be small and manageable.
It encourages constant feedback and it is open to change of requirements.
What are the different types of Agile methodologies?
- Scrum: hypothesis, test, and reflect. Relies on feedback, self-management, and small teams with work broken into sprints.
- Kanban: Managed through a board or table, used to keep an eye on workflow
- Lean Software Development
- XP (Extreme programming)
What are the main advantages of Agile?
Many, but to name a few:
- Faster feedback from customers and/or end users
- Quick to adapt to changes in requirements
- Quicker product delivery
- Promoting customer satisfaction
- Improves product by focusing on technical excellence and good design
Some disadvantages:
- More time and effort from everyone involved
- Can be more costly
- Lack of formal documentation
Agile testing
A fundamental part of agile
- Continuous testing
- TDD
- Clean code
What is refactoring?
Modifying the internal structure of a piece of software without changing its external behavior.
Sprit Vs product backlog
- Sprint: owned by developers
- Product: owned by the project owner
Spike
A complex piece of work that cannot be estimated.
What does zero sprint mean?
Preparation step that comes before the first sprint. It normally involves preparing the backlog, creating development environments, etc.
Velocity
A measurement unit of how much work an agile team can produce in a sprint. It can be used to estimate how much time will a project take to complete.
Daily stand-up
A meeting to discuss progress on tasks and blockers. Important to ensure that everybody is working towards the same goals.
Iterative development
A process where software cycles are based on sprints and releases until the final product is obtained. It relies on feedback from customers
Incremental development
A process where work is broken into slices, each with a complete set of functionalities. After each slice is coded and fully tested, it is integrated so the software can work as a whole.
What is a product roadmap?
A product roadmap is a tool that describes how the product will likely evolve over time. It gives a holistic view of the product features.
What is pair programming?
It’s a technique where two programmers code side-by-side on one computer. One person writes the code and the other reviews each line, switching roles while doing their work.
Benefits of pair programming
- Better quality code
- Reduces errors
- Knowledge sharing
- Improves team collaboration