{"id":4,"count":4,"description":"Unlike traditional approaches to software development, Agile provides ways to adapt to changes fast and this way benefits stakeholders and developers alike. Agile best practices allow teams to achieve higher product quality through collaboration, communication, trust, and constant alignment with the changing business needs. You can find a slightly different Agile definition, yet, the key is that Agile helps teams to avoid unneeded processes and focus on work and customer feedback.\r\n<a href=\"https:\/\/hygger.io\/guides\/wp-content\/uploads\/2021\/04\/what-is-agile-1024x614.jpg\"><img class=\"aligncenter wp-image-250\" title=\"Agile methodology\" src=\"https:\/\/hygger.io\/guides\/wp-content\/uploads\/2021\/04\/what-is-agile-1024x614.jpg\" alt=\"What is Agile\" width=\"860\" height=\"516\" \/><\/a>\r\nAgile values people more than processes, collaboration more than preset arrangements, and delivery of a working software more than creating precise documentation.\r\n<h2>How was it before Agile development?<\/h2>\r\n<a href=\"https:\/\/hygger.io\/wp-content\/uploads\/2021\/03\/What-is-Agile_table-5.jpg\"><img class=\"aligncenter wp-image-21017 size-full\" src=\"https:\/\/hygger.io\/wp-content\/uploads\/2021\/03\/What-is-Agile_table-5.jpg\" alt=\"Agile vs Waterfall\" width=\"2104\" height=\"1566\" \/><\/a>\r\n\r\nTo understand why the Agile methodology became so popular, let\u2019s go back to the Waterfall times.\r\n<h3>Much time was wasted on documentation<\/h3>\r\nThe software development process required detailed documentation before developers could start coding. The traditional development process can be briefly explained the following way:\r\n<ul>\r\n \t<li>First, Business analysts collaborated with stakeholders and elaborated a business requirements document. These documents contained detailed and comprehensive information about the software, including the strategy, functional specifications, and UI designs.<\/li>\r\n \t<li>Second, the Tech team created a technical requirements document based on the business requirements document. The tech version of the customer\u2019s requirements contained the info about the software architecture, data structures, object-oriented functional designs, and user interfaces.<\/li>\r\n \t<li>Finally, developers could start coding, integrating, and testing.<\/li>\r\n<\/ul>\r\nAs a result, the traditional development process could last for several years.\r\n<h3>It was much harder for developers to introduce changes<\/h3>\r\nMany development tools required additional training, there were no reusable parts, such as open-source components, APIs, or web services, and the communication tools were very limited. All this led to a big headcount in development teams and poor collaboration between members. That is why the specification document was the key element in the development process, and all developers were supposed to know it precisely (even though sometimes it could contain hundreds of pages). Any change had to go through a long review process and hence was very hard to introduce.\r\n<h3>Stakeholders were blind until the very end of development<\/h3>\r\nLower-level parts of the architecture were developed first and followed by dependent artifacts. For example, database engineers delivered their piece of software, then developers added business logic, and after that, the UI was introduced. Stakeholders had to wait for months until they could finally try a working software. By that time, stakeholders could find what was inconvenient or unnecessary in their initial requirements. Some features became outdated, some required tweaks to resist the growing load. All these weaknesses developers and stakeholders found out only after a long development cycle.\r\n<h2>What has Agile project management changed?<\/h2>\r\nThe Agile project management methodology became so popular with software developers for the flexibility and adaptivity it brought to the project. Agile proclaims close collaboration within the team and with stakeholders, continuous improvement, openness to changes, and development in short-term cycles. Agile rests on applying 4 values and 12 principles that are stated in the Agile Manifesto (read more about it here).\r\n\r\nIf a team follows Agile, they use the next six concepts every sprint.\r\n<ul>\r\n \t<li>Product vision statement: a concise summary of the project\u2019s goals.<\/li>\r\n \t<li>Product roadmap: an overview of all the requirements that are implied in the product vision.<\/li>\r\n \t<li>Product backlog: a list of all project tasks ordered by priority.<\/li>\r\n \t<li>Release plan: a schedule that specifies when a working product will be rolled out.<\/li>\r\n \t<li>Sprint backlog: the goals and tasks (user stories) that should be achieved in the current sprint.<\/li>\r\n \t<li>Increment: a complete product or functionality that the team delivers to the customer at the end of the sprint.<\/li>\r\n<\/ul>\r\nThe scheme below shows how software development happens according to Agile.<a href=\"https:\/\/hygger.io\/wp-content\/uploads\/2021\/03\/What-is-Agile_table-2.jpg\"><img class=\"aligncenter wp-image-21015 size-full\" src=\"https:\/\/hygger.io\/wp-content\/uploads\/2021\/03\/What-is-Agile_table-2.jpg\" alt=\"Agile development scheme\" width=\"2000\" height=\"634\" \/><\/a>Though Agile principles are stated in the Agile manifesto, different companies apply them to their particular requirements, teams, and situations. Hence many Agile frameworks appeared to cover specific development cases. Frameworks illustrate specific approaches to software development, provide certain tools and terminology.\r\n<h2>What advantages can you get with Agile?<\/h2>\r\nAgile brings benefits to all the parties involved in software development, including customers, vendors, developers, product managers, and stakeholders.\r\n<h3>Customers<\/h3>\r\nCustomers can be sure that the vendor will precisely meet their needs. Customers avoid developing unnecessary functionality, have complete control over the development process, and see the results much faster than if they followed the Waterfall model.\r\n<h3>Vendors<\/h3>\r\nVendors can focus on delivering high-value features, reduce unnecessary efforts and overhead, increase efficiency, and speed up the development process. They also get more satisfied customers and hence more recommendations.\r\n<h3>Developers<\/h3>\r\nDevelopers can avoid boring and unproductive work, and focus on development. They can see that their competencies grow and their work is valuable. Customer satisfaction and participation in successful projects motivate and inspire them.\r\n<h3>Product Managers<\/h3>\r\nProduct managers or Product owners are mediators between the development team and customers who ensure that customers will get what they want. Agile frameworks help managers to achieve this alignment much easier, effectively prioritize work, and react to feedback.\r\n<h3>Project Managers<\/h3>\r\nProject Managers who work with the Agile methodology can enjoy easier and more accurate planning and monitoring than if they follow the Waterfall model. They are constantly aware of the project state and can quickly resolve any problems.\r\n<h3>Executives<\/h3>\r\nExecutives and stakeholders get full visibility into the state of the project and can plan their actions and develop strategies more accurately.\r\n\r\n<a href=\"https:\/\/hygger.io\/wp-content\/uploads\/2021\/03\/Benefits-of-Agile.jpg\"><img class=\"alignnone wp-image-21033 size-full\" src=\"https:\/\/hygger.io\/wp-content\/uploads\/2021\/03\/Benefits-of-Agile.jpg\" alt=\"Benefits of Agile\" width=\"2000\" height=\"1372\" \/><\/a>What are the key figures in the Agile environment?\r\n\r\nThree main roles are typically involved in Agile processes.\r\n<h3>User<\/h3>\r\nAgile is focused on customers, therefore developers create several user personas that represent various types of users. These user personas help developers check how the software workflows correspond to customer needs.\r\n<h3>Product owner<\/h3>\r\nThe product owner is the person who gathers all the ideas and creates a coherent product vision. It is a short and accurate description of the product, consisting of the description of the end customer, their needs, and ways to cover those needs.\r\n\r\nFor example, the product vision for Google could be \u201can easy access over the Internet to the most suitable webpages through a keyword-driven interface and a ranking algorithm organizing search results by relevance.\u201d\r\n\r\nThe product owner splits the product vision into:\r\n<ul>\r\n \t<li>user stories that show how particular features satisfy specific needs of the end user;<\/li>\r\n \t<li>and technical stories that describe crucial functionality needed to support user-facing features.<\/li>\r\n<\/ul>\r\nThe product owner defines the acceptance criteria for the solution, prioritizes user stories, and checks that all team members understand their parts of the work.\r\n<h3><b>Software development team<\/b><\/h3>\r\nIn agile, the development team and its members\u2019 responsibilities differ from those in traditional software development.\r\n\r\nThe software development team comprises members with diverse skills. Developers come up with their part of the application, be it a database, business logic, or a part of the UI, and show it in a demo. Collaboration happens daily and all team members have up-to-date information about the progress of the team. The team can also include designers, analysts, and QA engineers if the project requires this.\r\n\r\nYou can get a more detailed overview of Agile roles in this video:\r\n<h2>What are Agile methodology tips and best practices?<\/h2>\r\nThough successful implementation of the Agile methodology depends on many factors, there are at least 7 rules that will help you to achieve greater results.\r\n<h3>1. Collaboration with clients<\/h3>\r\nThe Agile Manifesto proclaimed a customer-centric approach to software development projects. This is not just a principle, this is rather actionable advice on how to maximize customer satisfaction with the product. Continuous communication and regular feedback help the team to ensure that the customer is aware of what is going on and how this or that idea transforms into a working feature.\r\n<h3>2. User Stories<\/h3>\r\nUser stories show how the feature or software should work for end-users. These are simplified descriptions of software requirements in the format of: As a [role], I want [feature], because [reason]. User stories help developers to quickly understand Who will use the feature and What for. User stories are much easier to understand than long requirements.\r\n<h3>3. Continuous Integration<\/h3>\r\nContinuous Integration (CI) is about keeping the software in a potentially deployable state all the time. Developers check that the code is clean and integrate parts as they are ready. The aim of continuous integration is to minimize the time that each integration takes. Continuous integration is more applicable to small tools and apps consisting of minor parts that can bring value independently.\r\n<h3>4. Automated tests<\/h3>\r\nAutomated regression testing allows the team to track how the code changes affect the performance of the software. Manual regression testing can be too time-consuming, that is why it is better to automate the process to allocate time for other QA processes and prevent errors.\r\n<h3>5. Pair programming<\/h3>\r\nPairs programming is an Agile programming practice that is focused on improving the functionality and design, minimizing bugs, and exchanging expertise and tips within the team. One programmer is operating the keyboard, while the other team member watches, learns, and provides feedback. Programmers change roles from time to time.\r\n<h3>6. Test-driven development (TDD)<\/h3>\r\nTDD is the development style that focuses on simple designs. Development happens in short cycles and is based on passing unit tests. Developers create unit tests that should fail because the software doesn\u2019t have a particular feature. Then they write code and refactor it to make sure that they have used the simplest code to enable a feature and pass the test.\r\n<h3>7. Burndown charts<\/h3>\r\nA burndown chart is used to visually compare how many tasks, or user stories, and how much time is left. Burndown charts help developers to tell more accurately when the work will be over.\r\n<h2>What are Agile frameworks?<\/h2>\r\nIf the Manifesto states overall principles of Agile development, specific Agile frameworks guide development teams on how to apply Agile to a particular project at each step of the software development life cycle. The two most popular Agile frameworks are Scrum and Kanban.\r\n<h3>Scrum<\/h3>\r\n<a href=\"https:\/\/hygger.io\/wp-content\/uploads\/2021\/03\/What-is-Agile_table-4.jpg\"><img class=\"aligncenter wp-image-21016 size-full\" src=\"https:\/\/hygger.io\/wp-content\/uploads\/2021\/03\/What-is-Agile_table-4.jpg\" alt=\"Scrum development process\" width=\"2000\" height=\"1324\" \/><\/a>Scrum is a time-tested and perhaps the most well-known Agile framework that is perfect for managing complex software development. This framework introduces new concepts to the development process, Scrum events, Scrum artifacts, and Scrum Roles.\r\n<ul>\r\n \t<li><b>Scrum events. <\/b>Sprints, sprint planning, daily scrums, sprint review, and sprint retrospective are called Scrum events. The development process is structured in sprints, each of which ends with a demo call or meeting. Meetings include planning sprint priorities, stating the amount of work for a sprint, and checking the work status daily. At the meeting, the team can show the results of their work to the product owner and discuss what can be improved.<\/li>\r\n \t<li><b>Scrum artifacts. <\/b>The requirements are gathered in the Backlog, and features are usually described as either user stories or use cases. The product backlog and sprint backlogs are Scrum artifacts.<\/li>\r\n \t<li><b>Scrum roles<\/b> include a product owner, the development team, and a ScrumMaster. The ScrumMaster shows other team members and stakeholders how to use Scrum for software development, keeps track of the project progress, analyzes issues, and finds ways to keep to the pace. ScrumMasters don\u2019t assign the tasks directly to team members, they help team members to develop problem-solving skills.<\/li>\r\n<\/ul>\r\nAs one of the most popular Agile frameworks, Scrum helps companies to accommodate changes much faster and evolve in line with the business.\r\n<h3>Kanban<\/h3>\r\nKanban is an Agile project management concept that provides a clear picture of the workflows when certain processes should start and stop, and allows the team to identify weaknesses, issues, and deliver better software. Kanban includes 6 core practices:\r\n<ul>\r\n \t<li>Visualization<\/li>\r\n \t<li>Work in progress limits (WIP limits)<\/li>\r\n \t<li>Flow management<\/li>\r\n \t<li>Explicit policies<\/li>\r\n \t<li>Feedback loops<\/li>\r\n \t<li>Improvement through collaboration and evolution with experiments<\/li>\r\n<\/ul>\r\nIf a company applies Kanban principles, they start using Kanban boards, Kanban cards, and WIP limits to organize work.\r\n<ul>\r\n \t<li><strong>A Kanban board<\/strong> is a physical or digital visualization of the development process that can be equally perfect for individuals and teams. It includes Cards, Columns, Swimlanes, and WIP Limits to help teams manage their processes effectively.<\/li>\r\n<\/ul>\r\n<img class=\"aligncenter wp-image-597 size-full\" src=\"https:\/\/hygger.io\/guides\/wp-content\/uploads\/2021\/05\/hygger-kanbna-board-qq-1.png\" alt=\"\" width=\"1276\" height=\"772\" \/>\r\n<ul>\r\n \t<li><strong>Kanban cards<\/strong> show the work in progress and contain such valuable info as status, assignee, priorities, subtasks, and deadlines. Cards provide visibility into how many tasks are in progress and how the work goes on.<\/li>\r\n \t<li><strong>Kanban Swimlanes<\/strong> are used to separate different kinds of activities on a board, say, task blockers, tasks and bugs, backlog, or teams.<\/li>\r\n \t<li><strong>Work in progress limits (WIP limits)<\/strong> are used to define the maximum workload at different stages of the workflow. WIP limits let teams detect issues early, avoid excessive workload, and complete tasks faster.<\/li>\r\n<\/ul>\r\n<h2>Takeaways<\/h2>\r\nIntroduced 20 years ago, Agile methodology is still an effective software development methodology. Though frameworks and approaches can differ, they are all based on Agile principles, collaboration with stakeholders, teamwork, adoption of changes, and focus on quality and customer satisfaction.\u00a0 The flexibility and quality that it brings let Agile go further than software development and enter other industries.","link":"https:\/\/hygger.io\/guides\/agile\/","name":"Agile","slug":"agile","taxonomy":"category","parent":0,"meta":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v16.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<meta name=\"description\" content=\"Agile is an iterative approach to software delivery that builds software incrementally from the start of the project, instead of trying to deliver it all at once near the end.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/hygger.io\/guides\/agile\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What Is Agile? - Hygger.io Guides\" \/>\n<meta property=\"og:description\" content=\"Agile is an iterative approach to software delivery that builds software incrementally from the start of the project, instead of trying to deliver it all at once near the end.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hygger.io\/guides\/agile\/\" \/>\n<meta property=\"og:site_name\" content=\"Hygger.io Guides\" \/>\n<meta property=\"og:image\" content=\"https:\/\/hygger.io\/guides\/wp-content\/uploads\/2021\/04\/what-is-agile-1024x614.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/hygger.io\/guides\/#website\",\"url\":\"https:\/\/hygger.io\/guides\/\",\"name\":\"Hygger.io Guides\",\"description\":\"Hygger: Project Management Software &amp; Tools for Companies\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/hygger.io\/guides\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"CollectionPage\",\"@id\":\"https:\/\/hygger.io\/guides\/agile\/#webpage\",\"url\":\"https:\/\/hygger.io\/guides\/agile\/\",\"name\":\"What Is Agile? - Hygger.io Guides\",\"isPartOf\":{\"@id\":\"https:\/\/hygger.io\/guides\/#website\"},\"description\":\"Agile is an iterative approach to software delivery that builds software incrementally from the start of the project, instead of trying to deliver it all at once near the end.\",\"breadcrumb\":{\"@id\":\"https:\/\/hygger.io\/guides\/agile\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/hygger.io\/guides\/agile\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/hygger.io\/guides\/agile\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/hygger.io\/guides\/\",\"url\":\"https:\/\/hygger.io\/guides\/\",\"name\":\"\\u0413\\u043b\\u0430\\u0432\\u043d\\u0430\\u044f \\u0441\\u0442\\u0440\\u0430\\u043d\\u0438\\u0446\\u0430\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@id\":\"https:\/\/hygger.io\/guides\/agile\/#webpage\"}}]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/hygger.io\/guides\/wp-json\/wp\/v2\/categories\/4","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hygger.io\/guides\/wp-json\/wp\/v2\/categories"}],"about":[{"href":"https:\/\/hygger.io\/guides\/wp-json\/wp\/v2\/taxonomies\/category"}],"wp:post_type":[{"href":"https:\/\/hygger.io\/guides\/wp-json\/wp\/v2\/posts?categories=4"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}