{"id":1636,"date":"2022-07-14T08:16:20","date_gmt":"2022-07-14T08:16:20","guid":{"rendered":"https:\/\/blog.amt.in\/?p=1636"},"modified":"2022-07-14T08:16:20","modified_gmt":"2022-07-14T08:16:20","slug":"introduction-to-agile-software-development","status":"publish","type":"post","link":"https:\/\/blog.amt.in\/index.php\/2022\/07\/14\/introduction-to-agile-software-development\/","title":{"rendered":"Introduction to Agile Software Development"},"content":{"rendered":"<p>Agile software development\u00c2\u00a0comprises various approaches to\u00c2\u00a0software development\u00c2\u00a0under which requirements and solutions evolve through the collaborative effort of\u00c2\u00a0self-organizing\u00c2\u00a0and\u00c2\u00a0cross-functional\u00c2\u00a0teams and their\u00c2\u00a0customer(s)\/end user(s).\u00c2\u00a0It advocates adaptive planning, evolutionary development, early delivery, and\u00c2\u00a0continual improvement, and it encourages rapid and flexible response to change.<\/p>\n<p>The term\u00c2\u00a0agile\u00c2\u00a0(sometimes written\u00c2\u00a0Agile)\u00c2\u00a0was popularized, in this context, by the\u00c2\u00a0Manifesto for Agile Software Development.\u00c2\u00a0The values and principles espoused in this manifesto were derived from and underpin a broad range of\u00c2\u00a0software development frameworks, including\u00c2\u00a0Scrum\u00c2\u00a0and\u00c2\u00a0Kanban.<\/p>\n<p>While there is much anecdotal evidence that adopting agile practices and values improves the agility of software professionals, teams and organizations, some empirical studies have disputed that evidence.<\/p>\n<p>Based on their combined experience of developing software and helping others do that, the seventeen signatories to the manifesto proclaimed that they value:<\/p>\n<ul>\n<li>Individuals and Interactions\u00c2\u00a0over processes and tools<\/li>\n<li>Working Software\u00c2\u00a0over comprehensive documentation<\/li>\n<li>Customer Collaboration\u00c2\u00a0over contract negotiation<\/li>\n<li>Responding to Change\u00c2\u00a0over following a plan<\/li>\n<\/ul>\n<p>That is to say, the items on the left are valued more than the items on the right.<\/p>\n<p>As\u00c2\u00a0Scott Ambler\u00c2\u00a0elucidated:<\/p>\n<ul>\n<li>Tools and processes are important, but it is more important to have competent people working together effectively.<\/li>\n<li>Good documentation is useful in helping people to understand how the software is built and how to use it, but the main point of development is to create software, not documentation.<\/li>\n<li>A contract is important but is no substitute for working closely with customers to discover what they need.<\/li>\n<li>A project plan is important, but it must not be too rigid to accommodate changes in technology or the environment, stakeholders&#8217; priorities, and people&#8217;s understanding of the problem and its solution.<\/li>\n<\/ul>\n<p>The\u00c2\u00a0Manifesto for Agile Software Development\u00c2\u00a0is based on twelve principles:<\/p>\n<ol>\n<li>Customer satisfaction by early and continuous delivery of valuable software.<\/li>\n<li>Welcome changing requirements, even in late development.<\/li>\n<li>Deliver working software frequently (weeks rather than months)<\/li>\n<li>Close, daily cooperation between business people and developers<\/li>\n<li>Projects are built around motivated individuals, who should be trusted<\/li>\n<li>Face-to-face conversation is the best form of communication (co-location)<\/li>\n<li>Working software is the primary measure of progress<\/li>\n<li>Sustainable development, able to maintain a constant pace<\/li>\n<li>Continuous attention to technical excellence and good design<\/li>\n<li>Simplicity\u00e2\u20ac\u201dthe art of maximizing the amount of work not done\u00e2\u20ac\u201dis essential<\/li>\n<li>Best architectures, requirements, and designs emerge from self-organizing teams<\/li>\n<li>Regularly, the team reflects on how to become more effective, and adjusts accordingly<\/li>\n<\/ol>\n<p>Most agile development methods break product development work into small increments that minimize the amount of up-front planning and design. Iterations, or sprints, are short time frames (timeboxes) that typically last from one to four weeks. Each iteration involves a\u00c2\u00a0cross-functional team\u00c2\u00a0working in all functions:\u00c2\u00a0planning,\u00c2\u00a0analysis,\u00c2\u00a0design,\u00c2\u00a0coding,\u00c2\u00a0unit testing, and\u00c2\u00a0acceptance testing. At the end of the iteration a working product is demonstrated to stakeholders. This minimizes overall risk and allows the product to adapt to changes quickly.\u00c2\u00a0An iteration might not add enough functionality to warrant a market release, but the goal is to have an available release (with minimal\u00c2\u00a0bugs) at the end of each iteration.\u00c2\u00a0Multiple iterations might be required to release a product or new features. Working software is the primary measure of progress.<\/p>\n<p>A common characteristic in agile software development is the\u00c2\u00a0daily stand-up\u00c2\u00a0(also known as the\u00c2\u00a0daily scrum<i>)<\/i>. In a brief session, team members report to each other what they did the previous day toward their team&#8217;s iteration goal, what they intend to do today toward the goal, and any roadblocks or impediments they can see to the goal.<\/p>\n<p>The above is a brief about Agile software development. Watch this space for more updates on the latest trends in Technology.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Agile software development\u00c2\u00a0comprises various approaches<\/p>\n","protected":false},"author":1,"featured_media":1638,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[335,904,7],"tags":[338,905,18],"class_list":["post-1636","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-agile-software-development","category-software-development","category-techtrends","tag-agile-software-development","tag-software-development","tag-technology"],"_links":{"self":[{"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/posts\/1636","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/comments?post=1636"}],"version-history":[{"count":1,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/posts\/1636\/revisions"}],"predecessor-version":[{"id":1637,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/posts\/1636\/revisions\/1637"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/media\/1638"}],"wp:attachment":[{"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/media?parent=1636"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/categories?post=1636"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/tags?post=1636"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}