Skip to main content

Scrum: What is Agile?

If you ask 10 people to define Agile development and you will receive 11 definitions emphasizing different aspects of the process. I got to hear a talk (Presented by Anthony Boobier (Nomad8)) to clear up the confusion of this buzzwords and shed light onto the fundamentals of Agile software development.

We looked into what problems Agile is trying to solve and dive deep into the reasons why it works. We undertook a brief journey into the history of software development, explore the principles and values behind Agile and then later focused on how to manage our work in an Agile fashion using its most prevalent flavour, Scrum.

Scrum is a development framework in which cross-functional teams develop products or projects in an iterative, incremental manner. It structures development in cycles of work called Sprints. These iterations are no more than four weeks each (the most common is two weeks), and take place one after the other without pause. The Sprints are timeboxed – they end on a specific date whether the work has been completed or not, and are never extended. Usually Scrum Teams choose one Sprint length and use it for all their Sprints until they improve and can use a shorter cycle. At the beginning of each Sprint, a cross-functional Team (of about seven people) selects items (customer requirements) from a prioritized list. The Team agrees on a collective target of what they believe they can deliver by the end of the Sprint, something that is tangible and will be truly “done”. During the Sprint, no new items may be added; Scrum embraces change for the next Sprint, but the current short Sprint is meant to focus on a small, clear, relatively stable goal. Every day the Team gathers briefly to inspect its progress, and adjust the next steps needed to complete the work remaining. At the end of the Sprint, the Team reviews the Sprint with stakeholders, and demonstrates what it has built. People obtain feedback that can be incorporated in the next Sprint. Scrum emphasizes working product at the end of the Sprint that is really “done”; in the case of software, this means a system that is integrated, fully tested, end-user documented, and potentially shippable. Key roles, artifacts, and events are summarized..in the link below: A Lightweight Guide to the Theory and Practice of Scrum


Comments

Popular posts from this blog

Must-see presentation for end to end testing using protractor for angularJS apps

In Wellington AngularJS meetup , I gave a talk on using protractor for end to end testing of angularJS applications . Here I presented and demonstrated some best practices with a live demo on how to get started with using protractor for e2e testing. My presentation and demonstration application are both available online. Links are as below: My presentation My demo angular app for demonstrating some best practices like page objects, reporting, login etc.

Essential Linux Monitoring Tools in 2024

Essential Linux Monitoring Tools in 2024 Essential Linux Monitoring Tools in 2024 In the ever-evolving landscape of IT infrastructure, the role of a system administrator is critical to maintaining the health, performance, and security of Linux servers. With the multitude of monitoring tools available, it's essential to select the right ones to meet your specific needs. This blog explores the essential Linux monitoring tools every sysadmin should consider, categorized into command line, network, system, log, and infrastructure monitoring tools. Command Line Monitoring Tools 1. top/htop top and htop are quintessential for real-time monitoring of system processes. htop offers a more user-friendly and interactive interface compared to top . Real-time process monitoring. CPU, memory, and swap usage. Process management capabilities (kill, renice). 2. iotop iotop is a handy tool for monito...

Are Code Challenges Useful?

Are Code Challenges Useful? Are Code Challenges Useful to Learn? In the rapidly evolving world of technology, staying relevant and sharpening your programming skills are crucial. One method that has gained popularity among both beginners and seasoned developers is the use of code challenges. But are these challenges genuinely useful for learning, or are they just a trendy distraction? Let's delve into the benefits and potential drawbacks of code challenges to understand their role in the learning process. The Benefits of Code Challenges 1. Reinforcement of Concepts Code challenges are excellent for reinforcing theoretical knowledge. They require you to apply concepts in practical scenarios, helping to cement your understanding. When you solve a problem using loops, data structures, or algorithms, the repetition and application in different contexts make these concepts more intuitive and memorable. 2. Problem-Solving...