2 items tagged "scrum"

  • How to manage your next project? Waterfall or agile?

    How to manage your next project? Waterfall or agile?

    What is waterfall?

    Waterfall methodology, also known as the linear sequential lifecycle model, is defined by its linear, structured approach to project management. It is made up of a series of steps that are completed in sequential order within the software development life cycle (SDLC). These steps are typically tracked through Gantt chart visualizations. Dr. Winston W. Royce is credited with developing this approach, which he documented in his 1970 paper, “Managing the Development of Large Software Systems.”

    Since its publication, variations of waterfall have emerged, but there is general consensus around the following steps within the process:

    1. Gathering of requirements: This stage demands upfront documentation between the development team and the client or end user. During this phase, the product features within the project plan are documented in great detail, enabling the team to determine a clear cost and timeline. After both parties align on the requirements, there is limited to no correspondence between the development team and client until the project is completed.
    2. Design: The design phase is comprised of two steps: logical design and physical design. In logical design, the team brainstorms possible ways to tackle the client problem. When the development team agrees on a solution, these ideas are translated into specific technical tasks, which are then distributed across the team to construct the physical design. 
    3. Implementation: In next phase, developers start coding based on specifications that were developed in the prior steps. 
    4. Verification: This stage tests ensures that the code functions as intended and that the requirements in the scoping document have been met. The development team checks for bugs in the code and a final validation is conducted by the client to ensure that functionality met expectations.  
    5. Maintenance: As users onboard and use the end product, there will be a need for ongoing support as new issues arise.

    Key benefits of the waterfall method

    • Detailed product requirements and documentation enable new programmers to onboard quickly and easily.
    • Documentation provides a clear scope to the project, enabling project managers to communicate budgets, timelines, and key milestones to interested parties.

    Key challenges of the waterfall method

    • Clients can find it difficult to outline all of their requirements at the beginning of the project, leading to gaps in documentation.
    • Minimal customer collaboration during the development process can lead to costly changes if the product does not meet expectations.
    • Testers report issues and bugs later in the process, which could have informed an alternative program architecture.

    What is agile?

    In contrast to waterfall development, agile is defined by its iterative approach to project management. Instead of drafting lengthy project requirements at the onset, an agile team breaks out the product into specific features, and they tackle each one under a specific time constraint, known as a sprint.

    Agile project management requires a cross-functional, self-organizing team that typically consists of five to nine members. Together, they develop a workable piece of software during each sprint, which combines with other functional code from previous iterations. By the end of the sprint timebox, the team demos their work to stakeholders for feedback, allowing them to be flexible in their approach to software development. Since the team has access to frequent feedback, they can adapt the product roadmap during the development lifecycle to ensure that functionality truly meets user expectations. In a waterfall approach, customer involvement typically coincides with the delivery of the final product, which can be costly when requirements are misinterpreted or documented incorrectly.

    There were 17 individuals who found the waterfall project management system to be a highly ineffective, and in 2001, their ideas around the software development process culminated in a piece of work known as the “Agile Manifesto.” This document highlights specific values and principles to prioritize within software development workstreams, and it has yielded a number of popular agile frameworks, such as Scrum, Kanban, Feature Driven Development (FDD), and Extreme Programming. Since then, agile software development has increased in popularity, especially when compared to the waterfall model. 

    Agile scrum framework

    Inspired by the game of rugby, agile scrum emphasizes teamwork to meet deliverables, similar to the way that forwards need to work together in a scrum to gain possession of a rugby ball. The skillset of the agile scrum team varies, but they usually include the following roles:

    • Product owner: This team member represents the needs of both the customer and the business. By crafting user stories, the team can understand how a feature request can help resolve a specific problem, and these stories formulate the backlog of tasks for the team to tackle. This person also prioritizes the stories by their value to the customer, which should, in theory, translate into value for the business. While the product owner leads the team in this way, they do not set deadlines or instruct the team on how work should be delivered.
    • Scrum master: This team member facilitates the overall agile development process. Similar to a project manager, this person keeps the team on task, ensuring that the team remains focused during the project. They can also act as a neutral party to mediate disagreements among team members. For example, team members may disagree on how much to take on in a given sprint. Product owners, in particular, may pressure teams to commit to more than they can deliver within a given timeframe. In these cases, scrum masters can remind team members the scope of their role on the team.

    Other team members of an agile team can vary, but they typically include users from a variety of disciplines, such as design, analytics, QA, and development. These individuals collaborate together to decide on how much work to take on and how they will complete it.

    Agile methodologies are also defined by the ways in which the team comes together. There are specific meetings which help facilitate the workflow across the team. Some of them include the following:

    • Sprint planning: During this meeting, the team comes together to determine which stories will be part of the current sprint. The product owner will prioritize the user stories, but the rest of the team will need to agree on how many and which user stories they can complete during that set time period.
    • Daily standup: These brief meetings are also known as daily scrums. During these check-ins, each team member communicates their individual progress, such as completed tasks, upcoming ones, and any blockers or dependencies which may result in delays.
    • Demo: This meeting showcases the working software that the team completed over the course of the sprint, which can range between two- to four-week increments. The product owner will determine if a user story has met the definition of “done.” If not, the product backlog may be groomed to account for anything missing. This is also an opportunity for the team to present to stakeholders for feedback.
    • Retrospective: This time is reserved for team introspection, where the team identifies how they could improve upon their workflow to achieve better results in the future.

    Key benefits of the agile method

    • Team design facilitates more collaboration.
    • Product development takes an adaptive design approach.
    • Since code is tested with each iteration in the development phase, code defects can inform future design of the software.
    • Tends to yield higher customer satisfaction since frequent feedback leads to increased prioritization of customer needs.
    • Enables continuous integration as each feature is its own workable piece of software.
    • This lean type of software development can lead to lower costs as there is less risk of customer and product misalignment.

    Key challenges of the agile method

    • An agile approach can lack comprehensive documentation. This makes it difficult to onboard new developers, project timelines to stakeholders, and provide accurate cost estimates.
    • Can be difficult to scale.

    Manage your project with agile

    While development teams have been successful under either project management approach, there is certainly more momentum around agile processes. It’s not hard to see why when we observe the benefits that it can offer companies today. 

    Author: Eda Kavlakoglu

    Source: IBM

  • What does Agile mean to your organization?

    What does Agile mean to your organization?

    Today it is almost 'bon ton' to talk about being 'Agile'. It is as if the word is written on billboards along every road you take: if you want innovations, be Agile; if you want to understand your clients, be Agile; if you want to manage your personnel, you seem to have no other choice.

    And the market responds. Your bank is introducing a new Agile team to react to clients’ demands. A software company you approach to make a webshop proudly describes its Agile processes.

    In reality, these are different Agiles and you may be prepared that businesses in different industries have quite different approaches.

    Agile organization

    In a broad sense, the one that you usually come across when speaking about the organization of a business as a whole, 'Agile' refers to the type of organization that incorporates small independent teams of people who have many or most of the skills the team needs to carry out its mission. Such teams are usually focused and dedicated groups of specialists created to work on a specific project that typically requires communication with customers and prompt decisions.

    What characterizes such groups?

    • Small size: Fun fact: Amazon CEO Jeff Bezos contends that a team is too big when it needs more than two pizza pies for lunch.
    • Multidisciplinarity: Rather than having technology-based departments, required experts are embedded into a group of versatile specialists capable of performing the full cycle of work on a project on their own.
    • Empowerment:Critically, Agile teams should have the authority and the resources to carry out projects without first seeking corporate approval and internal support, such as funding, planning and human resources.
    • Accountability:despite greater independence allowing teams to make day-to-day, small stakes decisions, the decisions that could have significant consequences or that can only be made effectively with input and sign-off from multiple parts of the organization should be escalated to higher management.
    • Individual significance: in small multidisciplinary teams, everyone matters, and selecting strong performers becomes an utmost priority.
    • Clear goals: Agile teams should have the full picture of the project, clear vision of its objectives, stages and tasks, and the available resources.

    Most importantly, independent teams should be created in meaningful areas, such as processes and capabilities that directly affect the customer experience where their multidisciplinary perspective, quick reaction and first-hand communication with clients can add the maximum value.

    Agile methodology

    When you hear about Agile processes in IT, you should think of a narrower sense of this word related to Agile methodology which is based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. In its essence, the Agile approach suggests that high-quality, adaptive software can be developed by small teams using the principles of continuous design improvement and testing based on rapid feedback and change.

    Hence, Agile processes encourage frequent inspection and adaptation; they promote teamwork, self-organization and accountability, as well as engineering best practices intended to allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals.

    Agile development refers to any development process that is aligned with the concepts of the Agile Manifesto, developed by fourteen leading figures in the software industry and listing the key values and principles of Agile development as opposed to traditional approaches.

    The Agile approach comes in different flavors, or frameworks: Scrum, Kanban, XP, or Extreme Programming, and Lean to name the most popular.

    Scrum is a management framework used to organize work into small, manageable pieces that can be completed within a prescribed time period, called a sprint (2-4 weeks). In planning, organization and process management Scrum relies on at least three prescribed roles: a product owner (responsible for initial planning, prioritizing, and communication with the rest of the company), a Scrum master (responsible for overseeing the process during each sprint), and team members. Another common tool is the Scrum board :  a visual representation of the workflow, broken down into manageable chunks called 'stories', with each story moved along the board from the 'backlog' (the to-do list), into work-in-progress (WIP), and on to completion. Probably, if you have been talking about Agile, you have heard the word Scrum: it has grown in popularity tremendously because it is rather simple and has a proven productivity boost.

    Kanban is used to manage the project’s creation with an emphasis on the continued delivery and not overburdening the development team. Unlike Scrum, it does not have fixed periods of time to deliver results, but it rather relies on continuous work flowing from task to task. The method promotes continued collaboration by the client and team and encourages ongoing learning and improvements to provide the best possible workflow. Its main principles include visualization of work, limiting the number of simultaneous tasks and enhancing the workflow.

    Extreme Programming (XP) is one of the most popular and at the same time controversial Agile methodologies. In its core, it is a highly disciplined method of continually delivering high-quality software faster. The customer is actively involved with the team in continued planning, testing and rapid feedback to deliver working software frequently. The software is supposed to be delivered in intervals of one to three weeks.

    Lean software development is a value-based iteration methodology originally developed by Mary and Tom Poppendieck. It focuses on giving the customer an efficient 'value stream' mechanism that delivers the value to the project. By choosing only the features that have real value for the system, prioritizing and delivering them in small batches eliminates waste. Instead, the lean methodology emphasizes on speed and efficiency; relying on rapid, reliable feedback between customers and programmers. This methodology focuses on the efficiencies of its team’s resources, ensuring everyone is as productive as possible.

    If you know how to use it, the Agile approach can deliver results faster and in a more controlled way. This article is only the beginning of a long journey, but it gives some understanding of what to expect from a software developing company that boasts about their agility, know how it differs from agility in banks and who the hell a Scrum master is.

    Source: Datafloq


EasyTagCloud v2.8