{"id":4865,"date":"2026-01-30T12:32:12","date_gmt":"2026-01-30T18:32:12","guid":{"rendered":"https:\/\/ykim.synology.me\/wordpress\/?p=4865"},"modified":"2026-01-30T12:50:25","modified_gmt":"2026-01-30T18:50:25","slug":"agile-development","status":"publish","type":"post","link":"https:\/\/ykim.synology.me\/wordpress\/agile-development-4865\/","title":{"rendered":"Agile in Software Development"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Page Contents<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#Agile-software-development-anchor\">Agile software development<\/a><\/li>\n\n\n\n<li><a href=\"#Agile-Development-Vs-DevOps-anchor\">Agile Development Vs DevOps<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/User-Story-anchor\">User Story<\/a><\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"Agile-software-development-anchor\">What is Agile software development?<\/h1>\n\n\n\n<div class=\"wp-block-group\" style=\"padding-left:var(--wp--preset--spacing--70)\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-container-core-group-is-layout-b3da61e4 wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\">At its core, <strong>Agile<\/strong> is a mindset and a set of practices designed to help software teams deliver value to their customers faster and with fewer headaches.<sup><\/sup> Instead of planning everything out for the next year and hoping for the best (the &#8220;Waterfall&#8221; approach), Agile focuses on iterative development and constant feedback.<sup><\/sup><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Think of it like driving with a GPS that updates in real-time versus following a printed map from 1995.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Four Core Values<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In 2001, a group of developers drafted the <strong>Agile Manifesto<\/strong>, which prioritizes:<sup><\/sup><\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Individuals and interactions<\/strong> over processes and tools.<\/li>\n\n\n\n<li><strong>Working software<\/strong> over comprehensive documentation.<\/li>\n\n\n\n<li><strong>Customer collaboration<\/strong> over contract negotiation.<\/li>\n\n\n\n<li><strong>Responding to change<\/strong> over following a plan.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">How It Works: The Iterative Cycle<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Agile breaks down large projects into small, manageable chunks called <strong>user stories<\/strong>. These are completed in short time-boxed periods known as <strong>iterations<\/strong> or <strong>sprints<\/strong> (usually 1\u20134 weeks).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"600\" src=\"https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2026\/01\/20260130-Agile-Development-with-actions.png\" alt=\"\" class=\"wp-image-4862\" style=\"width:400px\" srcset=\"https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2026\/01\/20260130-Agile-Development-with-actions.png 800w, https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2026\/01\/20260130-Agile-Development-with-actions-300x225.png 300w, https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2026\/01\/20260130-Agile-Development-with-actions-768x576.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">The Typical Workflow:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Backlog Refinement:<\/strong> The team looks at a master list of features and picks the most important ones to tackle next.<\/li>\n\n\n\n<li><strong>Sprint Planning:<\/strong> Deciding exactly what can be finished in the upcoming window.<\/li>\n\n\n\n<li><strong>Daily Stand-ups:<\/strong> A quick 15-minute sync to discuss progress and &#8220;blockers&#8221; (things standing in the way).<\/li>\n\n\n\n<li><strong>Sprint Review:<\/strong> Showing the working software to stakeholders for feedback.<\/li>\n\n\n\n<li><strong>Retrospective:<\/strong> The team discusses what went well and what could be improved for the next round.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Popular Agile Frameworks<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Agile is the &#8220;umbrella&#8221; term, but teams usually implement it using specific frameworks:<sup><\/sup><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td><strong>Framework<\/strong><\/td><td><strong>Focus<\/strong><\/td><\/tr><\/thead><tbody><tr><td><strong>Scrum<\/strong><\/td><td>Uses fixed-length sprints and specific roles (Scrum Master, Product Owner).<\/td><\/tr><tr><td><strong>Kanban<\/strong><\/td><td>Focuses on continuous flow and &#8220;visualizing&#8221; work on a board to limit bottlenecks.<\/td><\/tr><tr><td><strong>Lean<\/strong><\/td><td>Aims to eliminate waste and deliver only what adds true value to the user.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Why Use It?<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Flexibility:<\/strong> You can pivot quickly if the market changes or a feature isn&#8217;t working.<\/li>\n\n\n\n<li><strong>Transparency:<\/strong> Because work is shown frequently, there are no &#8220;big reveals&#8221; that fail at the end.<\/li>\n\n\n\n<li><strong>Quality:<\/strong> Constant testing and reviews mean bugs are caught early rather than at the very end of a six-month cycle.<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"Agile-Development-Vs-DevOps-anchor\">Agile Development Vs DevOps<\/h1>\n\n\n\n<div class=\"wp-block-group\" style=\"padding-left:var(--wp--preset--spacing--70)\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-container-core-group-is-layout-b3da61e4 wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\">It\u2019s common to see these two grouped together, but they aren&#8217;t actually &#8220;competitors.&#8221; In fact, they\u2019re more like a set of lungs and a heart\u2014they do different jobs, but you really need both for the system to thrive.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">While <strong>Agile<\/strong> focuses on <em>how<\/em> software is designed and built, <strong>DevOps<\/strong> focuses on <em>how<\/em> that software is deployed and maintained.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Core Difference<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The simplest way to look at it is: <strong>Agile is about the &#8220;What&#8221; and &#8220;When,&#8221; while DevOps is about the &#8220;How&#8221; and &#8220;Where.&#8221;<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Agile Development<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Goal:<\/strong> Optimize the feedback loop between the <strong>Customer and the Developers<\/strong>.<\/li>\n\n\n\n<li><strong>Focus:<\/strong> Managing requirements, prioritizing features, and organizing the team&#8217;s workflow.<\/li>\n\n\n\n<li><strong>Output:<\/strong> Working code at the end of a sprint.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">DevOps Development<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Goal:<\/strong> Optimize the feedback loop between the <strong>Developers and the Operations<\/strong> (IT\/Servers).<\/li>\n\n\n\n<li><strong>Focus:<\/strong> Automation, continuous integration, continuous delivery (CI\/CD), and monitoring.<\/li>\n\n\n\n<li><strong>Output:<\/strong> Working code deployed to a live environment safely and automatically.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Head-to-Head Comparison<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td><strong>Feature<\/strong><\/td><td><strong>Agile<\/strong><\/td><td><strong>DevOps<\/strong><\/td><\/tr><\/thead><tbody><tr><td><strong>Primary Goal<\/strong><\/td><td>Better software through collaboration and iteration.<\/td><td>Faster delivery through automation and communication.<\/td><\/tr><tr><td><strong>Key Participants<\/strong><\/td><td>Product Owners, Developers, Scrum Masters.<\/td><td>Developers and Operations (IT) Engineers.<\/td><\/tr><tr><td><strong>Focus Area<\/strong><\/td><td>Managing the &#8220;Backlog&#8221; (Tasks).<\/td><td>Managing the &#8220;Pipeline&#8221; (Code to Cloud).<\/td><\/tr><tr><td><strong>Frequency<\/strong><\/td><td>Measured in Sprints (Weeks).<\/td><td>Measured in Deployments (Hours\/Days).<\/td><\/tr><tr><td><strong>Philosophy<\/strong><\/td><td>&#8220;Build the right thing.&#8221;<\/td><td>&#8220;Build it and ship it reliably.&#8221;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">How They Work Together<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In the old days, Agile teams would move fast, finish a feature, and then &#8220;toss it over the wall&#8221; to the Operations team to figure out how to install it. Operations would then get frustrated because the code wasn&#8217;t ready for their servers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>DevOps removes that wall.<\/strong> In a modern setup, the process looks like an infinite loop:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Agile<\/strong> helps you plan and code the feature.<\/li>\n\n\n\n<li><strong>DevOps<\/strong> automatically tests that code, builds it into a package, and pushes it to the server.<\/li>\n\n\n\n<li><strong>Agile<\/strong> uses the feedback from users to plan the next feature.<\/li>\n\n\n\n<li><strong>DevOps<\/strong> monitors the server for bugs to tell the developers what to fix.<\/li>\n<\/ol>\n<\/div><\/div>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"User-Story-anchor\">User Story<\/h1>\n\n\n\n<div class=\"wp-block-group\" style=\"padding-left:var(--wp--preset--spacing--70)\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-container-core-group-is-layout-b3da61e4 wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\">In Agile, a <strong>User Story<\/strong> is an informal, general explanation of a software feature written from the perspective of the <strong>end user<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Its purpose is to shift the focus from talking about &#8220;technical requirements&#8221; (like database fields) to talking about <strong>user value<\/strong> (the &#8220;why&#8221;).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The Standard Formula<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Most teams use a simple template to keep stories concise and goal-oriented:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>As a<\/strong> [type of user], <strong>I want to<\/strong> [perform some action], <strong>So that<\/strong> [I can achieve some goal\/benefit].<\/p>\n<\/blockquote>\n\n\n\n<h4 class=\"wp-block-heading\">Example:<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Poor:<\/strong> &#8220;Add a password reset button.&#8221; (Too technical\/prescriptive)<\/li>\n\n\n\n<li><strong>Better:<\/strong> &#8220;As a <strong>returning user<\/strong>, I want to <strong>reset my password<\/strong>, so that <strong>I can regain access to my account if I forget my credentials.<\/strong>&#8220;<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">The Three C&#8217;s<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A good user story follows a process often called the &#8220;Three C&#8217;s&#8221;:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Card:<\/strong> The story is small enough to fit on a physical index card (or a digital Jira card).<\/li>\n\n\n\n<li><strong>Conversation:<\/strong> The story isn&#8217;t a final command; it\u2019s an invitation for the developers and product owner to discuss the details.<\/li>\n\n\n\n<li><strong>Confirmation:<\/strong> The back of the card contains <strong>Acceptance Criteria<\/strong>\u2014a checklist of specific things that must be true for the story to be considered &#8220;Done.&#8221;<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">What makes a story &#8220;Good&#8221;? (INVEST)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">To ensure a story is ready for a sprint, teams use the <strong>INVEST<\/strong> acronym:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>I<\/strong>ndependent: Can be developed on its own.<\/li>\n\n\n\n<li><strong>N<\/strong>egotiable: Leaves room for discussion.<\/li>\n\n\n\n<li><strong>V<\/strong>aluable: Delivers a clear benefit to the user.<\/li>\n\n\n\n<li><strong>E<\/strong>stimable: The team can guess how much effort it will take.<\/li>\n\n\n\n<li><strong>S<\/strong>mall: Can be finished within a single sprint.<\/li>\n\n\n\n<li><strong>T<\/strong>estable: There is a clear way to verify it works.<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n\n<h1 class=\"wp-block-heading\">Scrum<\/h1>\n\n\n\n<div class=\"wp-block-group\" style=\"padding-left:var(--wp--preset--spacing--70)\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-container-core-group-is-layout-b3da61e4 wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\"><strong>Scrum<\/strong> is the most popular framework used to implement Agile. If Agile is the &#8220;theory,&#8221; Scrum is the &#8220;practice.&#8221; It organizes work into short, fixed-length blocks of time called <strong>Sprints<\/strong> (usually 2 weeks) to ensure the team is constantly shipping value and adjusting to feedback.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. The Three Roles<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Scrum relies on a small, cross-functional team with specific responsibilities:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Product Owner:<\/strong> The &#8220;voice of the customer.&#8221; They decide <em>what<\/em> needs to be built and maintain the priority of the backlog.<\/li>\n\n\n\n<li><strong>Scrum Master:<\/strong> The &#8220;coach.&#8221; They remove obstacles (blockers), facilitate meetings, and ensure the team follows Scrum principles.<\/li>\n\n\n\n<li><strong>Developers:<\/strong> The &#8220;creators.&#8221; The people doing the actual work (coding, testing, designing).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">2. The Five Events (Ceremonies)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Scrum follows a rhythmic cycle of meetings to keep everyone aligned:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>The Sprint:<\/strong> The 1\u20134 week window where the work happens.<\/li>\n\n\n\n<li><strong>Sprint Planning:<\/strong> The team picks the highest-priority items from the backlog to complete this month.<\/li>\n\n\n\n<li><strong>Daily Scrum (Stand-up):<\/strong> A 15-minute daily sync to discuss progress and hurdles.<\/li>\n\n\n\n<li><strong>Sprint Review:<\/strong> A &#8220;demo&#8221; at the end of the sprint to show stakeholders the finished work.<\/li>\n\n\n\n<li><strong>Sprint Retrospective:<\/strong> An internal team meeting to discuss how to improve their process for the next sprint.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">3. The Three Artifacts<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">These are the &#8220;outputs&#8221; that keep the process transparent:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Product Backlog:<\/strong> The master list of every feature, change, or fix desired for the product.<\/li>\n\n\n\n<li><strong>Sprint Backlog:<\/strong> The specific list of tasks the team committed to finishing during the current sprint.<\/li>\n\n\n\n<li><strong>Increment:<\/strong> The &#8220;Done&#8221; version of the product at the end of a sprint (must be usable and high-quality).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Why use Scrum?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Scrum is excellent for complex projects where you don&#8217;t have all the answers upfront. It forces the team to produce a <strong>working piece of software<\/strong> every couple of weeks, reducing the risk of building something nobody wants.<\/p>\n<\/div><\/div>\n<div style='text-align:center' class='yasr-auto-insert-overall'><\/div><div style='text-align:center' class='yasr-auto-insert-visitor'><\/div>","protected":false},"excerpt":{"rendered":"<p>Page Contents What is Agile software development? At its core, Agile is a mindset and a set of practices designed to help software teams deliver value to their customers faster and with fewer headaches. Instead of planning everything out for the next year and hoping for the best (the &#8220;Waterfall&#8221; approach), Agile focuses on iterative&#8230;<\/p>\n","protected":false},"author":4,"featured_media":4862,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","yasr_overall_rating":0,"yasr_post_is_review":"","yasr_auto_insert_disabled":"","yasr_review_type":"","fifu_image_url":"","fifu_image_alt":"","iawp_total_views":0,"footnotes":""},"categories":[10],"tags":[],"class_list":["post-4865","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-slug"],"yasr_visitor_votes":{"stars_attributes":{"read_only":false,"span_bottom":false},"number_of_votes":0,"sum_votes":0},"jetpack_featured_media_url":"https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2026\/01\/20260130-Agile-Development-with-actions.png","_links":{"self":[{"href":"https:\/\/ykim.synology.me\/wordpress\/wp-json\/wp\/v2\/posts\/4865","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ykim.synology.me\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ykim.synology.me\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ykim.synology.me\/wordpress\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/ykim.synology.me\/wordpress\/wp-json\/wp\/v2\/comments?post=4865"}],"version-history":[{"count":5,"href":"https:\/\/ykim.synology.me\/wordpress\/wp-json\/wp\/v2\/posts\/4865\/revisions"}],"predecessor-version":[{"id":4874,"href":"https:\/\/ykim.synology.me\/wordpress\/wp-json\/wp\/v2\/posts\/4865\/revisions\/4874"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ykim.synology.me\/wordpress\/wp-json\/wp\/v2\/media\/4862"}],"wp:attachment":[{"href":"https:\/\/ykim.synology.me\/wordpress\/wp-json\/wp\/v2\/media?parent=4865"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ykim.synology.me\/wordpress\/wp-json\/wp\/v2\/categories?post=4865"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ykim.synology.me\/wordpress\/wp-json\/wp\/v2\/tags?post=4865"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}