<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <copyright>Copyright TechTarget - All rights reserved</copyright>
        <description></description>
        <docs>https://cyber.law.harvard.edu/rss/rss.html</docs>
        <generator>Techtarget Feed Generator</generator>
        <language>en</language>
        <lastBuildDate>Sun, 19 Apr 2026 23:48:37 GMT</lastBuildDate>
        <link>https://www.theserverside.com</link>
        <managingEditor>editor@techtarget.com</managingEditor>
        <item>
            <body>&lt;p&gt;Almost every enterprise has some or all of its computing capacity in the cloud. As a result, a job seeker looking for a technical role in the IT industry must prove proficiency with cloud computing technology.&lt;/p&gt; 
&lt;p&gt;The AWS Certified Cloud Practitioner exam provides candidates with an opportunity to demonstrate proficiency with a range of Amazon Web Services products, from S3 storage to serverless computing with Lambda functions. The questions on the exam don't delve into specific technologies like the AWS DevOps or Solution Architect certifications, but the exam covers a more exhaustive span of topics than other AWS exams.&lt;/p&gt; 
&lt;p&gt;If an AWS Certified Cloud Practitioner certification could improve your resume, or you're curious about the exam's content, take a crack at these 10 practice questions we crafted to help candidates prepare. If you score well on these, check out 10 more AWS Practitioner Certification Exam questions and answers.&lt;/p&gt; 
&lt;div class="youtube-iframe-container"&gt;
 &lt;iframe id="ytplayer-0" src="https://www.youtube.com/embed/NNSh8ADvRdY?si=LtypmLdMEwIWMDWQ?autoplay=0&amp;amp;modestbranding=1&amp;amp;rel=0&amp;amp;widget_referrer=null&amp;amp;enablejsapi=1&amp;amp;origin=https://www.theserverside.com" type="text/html" height="360" width="640" frameborder="0"&gt;&lt;/iframe&gt;
&lt;/div&gt; 
&lt;p&gt;&lt;i&gt;Cameron McKenzie has been a Java EE software engineer for 20 years. His current specialties include Agile development; DevOps; Spring; and container-based technologies such as Docker, Swarm and Kubernetes.&lt;/i&gt;&lt;/p&gt; 
&lt;p&gt; &lt;script src="https://cdn.ttgtmedia.com/rms/editorial/AWSnewquiz.js"&gt;&lt;/script&gt; &lt;script src="https://cdn.ttgtmedia.com/quiz/quiz.js"&gt;&lt;/script&gt; &lt;/p&gt;</body>
            <description>Technical IT professionals could benefit from an AWS Certified Cloud Practitioner certification on their resume. These 10 questions can help gauge your exam readiness.</description>
            <image>https://cdn.ttgtmedia.com/rms/onlineimages/check_g1199243271.jpg</image>
            <link>https://www.techtarget.com/searchcloudcomputing/quiz/Questions-for-AWS-Certified-Cloud-Practitioner-exam-prep</link>
            <pubDate>Thu, 04 Sep 2025 13:25:00 GMT</pubDate>
            <title>10 questions for AWS Certified Cloud Practitioner exam prep</title>
        </item>
        <item>
            <body>&lt;p&gt;Looking to move into a role in the Agile software development space? Interested in moving away from pure software development and into a role where you can focus on team building and product development? The Scrum Master certification is for you.&lt;/p&gt; 
&lt;p&gt;The focus of most Scrum Master certifications is of course, the &lt;a href="https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/Basic-Scrum-101-Ten-key-takeaways-from-the-latest-Scrum-guide"&gt;Scrum Guide&lt;/a&gt;, which means test questions on a wide range of topics, including:&lt;/p&gt; 
&lt;ul class="default-list"&gt; 
 &lt;li&gt;How the &lt;a href="https://www.theserverside.com/video/Scrum-methodology-explained"&gt;Scrum methodology&lt;/a&gt; works.&lt;/li&gt; 
 &lt;li&gt;The difference between &lt;a href="https://www.theserverside.com/video/The-Scrum-framework-or-Agile-software-development"&gt;Agile versus Scrum&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;The &lt;a href="https://www.theserverside.com/video/Do-the-Scrum-values-really-add-value"&gt;five Scrum values&lt;/a&gt; and three pillars.&lt;/li&gt; 
 &lt;li&gt;The role of tools like Jira for &lt;a href="https://www.theserverside.com/video/Jira-story-vs-epic-Whats-the-difference"&gt;stories and epics&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;How &lt;a href="https://www.theserverside.com/video/Agile-software-development-or-the-Waterfall-framework"&gt;Agile compares to Waterfall&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;The role of the &lt;a href="https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/Agile-Scrum-Process-Steps-Methodology-Sprint-Flow-Principles-Values-Pillars-Guide"&gt;Agile Scrum process&lt;/a&gt; in modern software development.&lt;/li&gt; 
 &lt;li&gt;The role of &lt;a href="https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/Sprint-vs-Scrum-Whats-the-difference"&gt;Agile sprints&lt;/a&gt;, &lt;a href="https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/who-required-daily-scrum-necessarily-standup-must-developers-product-owner-master"&gt;daily Scrums&lt;/a&gt;, reviews and retrospectives.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;section class="section main-article-chapter" data-menu-title="The subtleties of the Scrum Guide"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;The subtleties of the Scrum Guide&lt;/h2&gt;
 &lt;p&gt;However, there is a great deal of nuance packed into &lt;a target="_blank" href="https://www.scrum.org/resources/scrum-guide" rel="noopener"&gt;that 14 page ebook&lt;/a&gt;. If you don't understand the nuances, you won't pass the test.&lt;/p&gt;
 &lt;p&gt;That's what this tutorial is all about -- covering dozens of different Scrum Master certification questions. In this video, you'll not only gain a better understanding of the types of questions these exams ask, but also learn from a PSMI- and PSMII-certified expert about the nuance behind the concepts these questions test you on.&lt;/p&gt;
 &lt;p&gt;Are you ready to get Scrum Master certified? These 80 Scrum Certification practice exam questions will expertly guide you on your way.&lt;/p&gt;
 &lt;p&gt;&lt;i&gt;Cameron McKenzie has been a Java EE software engineer for 20 years. His current specialties include Agile development; DevOps; Spring; and container-based technologies such as Docker, Swarm and Kubernetes.&lt;/i&gt;&lt;/p&gt;
&lt;/section&gt;</body>
            <description>Want to get Scrum Master certified? Think you're ready for the exam? As a final prep, tackle these 80 Scrum practice exam questions to solidify your knowledge.</description>
            <link>https://www.theserverside.com/video/Certified-Scrum-Master-Exam-practice-questions-and-answers</link>
            <pubDate>Thu, 04 Sep 2025 11:07:00 GMT</pubDate>
            <title>Certified Scrum Master Exam practice questions and answers</title>
        </item>
        <item>
            <body>&lt;p&gt;Looking to build an Agentic AI solution in the cloud but don't want to create your own AI model from scratch? Amazon Bedrock is the cloud computing service you're looking for.&lt;/p&gt; 
&lt;p&gt;In this quick Amazon Bedrock tutorial for beginners, we look at the many capabilities of AWS's flagship service for AI and ML, including the following:&lt;/p&gt; 
&lt;ul class="default-list"&gt; 
 &lt;li&gt;Access to foundation models from multiple providers without the need to manage infrastructure.&lt;/li&gt; 
 &lt;li&gt;The ability to build and scale generative AI applications securely in the cloud.&lt;/li&gt; 
 &lt;li&gt;Simple APIs for &lt;a href="https://www.theserverside.com/video/Send-SMS-texts-with-Amazons-SNS-simple-notification-service"&gt;SMS texts&lt;/a&gt;, chat, images and embedding generation.&lt;/li&gt; 
 &lt;li&gt;Integration with other AWS services including &lt;a href="https://www.theserverside.com/video/Host-a-static-website-on-AWS-with-Amazon-S3-and-Route-53"&gt;S3&lt;/a&gt;, &lt;a href="https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/create-python-aws-lambda-function-hello-world-tutorial-serverless-how-to-example"&gt;Lambda&lt;/a&gt; and &lt;a href="https://www.techtarget.com/searchcloudcomputing/tip/Amazon-Bedrock-vs-SageMaker-JumpStart-for-AI-apps"&gt;SageMaker&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;Customization of foundation models with your own data without retraining from scratch.&lt;/li&gt; 
 &lt;li&gt;Built-in enterprise-grade security, compliance and monitoring.&lt;/li&gt; 
 &lt;li&gt;A pay-as-you-go pricing model with no upfront costs.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;If you want to create AI-enabled applications quickly and efficiently, Amazon Bedrock is one of the best places to start.&lt;/p&gt; 
&lt;p&gt;&lt;i&gt;Cameron McKenzie has been a Java EE software engineer for 20 years. His current specialties include Agile development; DevOps; Spring; and container-based technologies such as Docker, Swarm and Kubernetes.&lt;/i&gt;&lt;/p&gt;</body>
            <description>Looking to build an AWS-based agentic AI application? Then look no further than Amazon Bedrock and it's machine learning capabilities.</description>
            <link>https://www.theserverside.com/video/Amazon-Bedrock-tutorial-for-agentic-AI-in-AWS</link>
            <pubDate>Wed, 03 Sep 2025 14:52:00 GMT</pubDate>
            <title>Amazon Bedrock tutorial for agentic AI in AWS</title>
        </item>
        <item>
            <body>&lt;p&gt;There are various popular options for free website hosting, but for developers who are already familiar with &lt;a href="https://www.theserverside.com/video/Full-Git-and-GitHub-tutorial-for-beginners"&gt;Git and the GitHub&lt;/a&gt; ecosystem it simply makes sense to use GitHub Pages.&lt;/p&gt; 
&lt;p&gt;This quick GitHub Pages tutorial not only shows you how to enable GitHub Pages and deploy your webpages for free, but also how to map a &lt;a href="https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/How-to-Transfer-a-Domain-to-Amazons-Route-53"&gt;GoDaddy domain&lt;/a&gt; to your GitHub-hosted site.&lt;/p&gt; 
&lt;p&gt;If you're looking for &lt;a href="https://www.theserverside.com/video/Host-a-static-website-on-AWS-with-Amazon-S3-and-Route-53"&gt;free hosting in the cloud&lt;/a&gt;, and you already use the ubiquitous GitHub &lt;a target="_blank" href="https://github.com/" rel="noopener"&gt;version control service&lt;/a&gt;, this GitHub Pages tutorial is for you.&lt;/p&gt; 
&lt;p&gt;&lt;i&gt;Cameron McKenzie has been a Java EE software engineer for 20 years. His current specialties include Agile development; DevOps; Spring; and container-based technologies such as Docker, Swarm and Kubernetes.&lt;/i&gt;&lt;/p&gt;</body>
            <description>Looking for free website hosting? For a low traffic site, few options are as reliable and easy to use as GitHub Pages.</description>
            <link>https://www.theserverside.com/video/Free-website-hosting-with-GitHub-Pages-tutorial</link>
            <pubDate>Wed, 03 Sep 2025 12:26:00 GMT</pubDate>
            <title>Free website hosting with GitHub Pages tutorial</title>
        </item>
        <item>
            <body>&lt;p&gt;Most enterprise organizations run on yesterday's software.&lt;/p&gt; 
&lt;p&gt;A significant chunk of &lt;a href="https://www.techtarget.com/searchcio/feature/6-reasons-legacy-systems-are-still-in-use"&gt;core business systems are legacy&lt;/a&gt; and a large portion of IT budgets are often dedicated to keeping them alive. Legacy tech can restrict growth and block strategy, with many companies identifying it as a major barrier to digital transformation and a main &lt;a href="https://www.cfodive.com/news/dont-over-budget-for-transformation-in-2025/724939/"&gt;driver of IT spend&lt;/a&gt;. This impact team productivity directly as they end up devoting time to legacy system maintenance.&lt;/p&gt; 
&lt;p&gt;AI won't fix that magically. It does change the slope of a team's productivity curve when used well, however. Instead of flat output or incremental gains, AI can help teams modernize faster over time.&lt;/p&gt; 
&lt;p&gt;Generative AI can read code and logs, suggest safe refactors, generate tests, and sketch platform moves. People still make the calls -- set the target architecture, check behavior and decide when to ship. Learn some practical ways AI can drive legacy code modernization efforts.&lt;/p&gt; 
&lt;section class="section main-article-chapter" data-menu-title="Challenges of legacy code"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Challenges of legacy code&lt;/h2&gt;
 &lt;p&gt;Legacy code hurts in two ways: what's in the code and what's around it.&lt;/p&gt;
 &lt;p&gt;Inside the code, there can be years of &lt;a href="https://www.networkcomputing.com/network-security/managing-application-dependencies-in-containerized-environments"&gt;tangled dependencies&lt;/a&gt;, hidden side‑effects, mixed concerns, deprecated libraries and little in the way of tests or documentation. Data and behavior are coupled in surprising places; a seemingly harmless change in a handler ripples into reporting jobs or batch interfaces.&lt;/p&gt;
 &lt;p&gt;Around the code, environments are difficult to recreate, deploys are fragile, &lt;a href="https://www.itprotoday.com/it-operations/observability-in-2025-open-source-use-rising-as-complexity-challenges-grow"&gt;observability is thin&lt;/a&gt; and compliance and security posture lags. Addressing this isn't as simple as modifying the code. It's important to keep SLAs, manage risk and coordinate teams while choosing the right approach.&lt;/p&gt;
 &lt;p&gt;The hardest part of working around fragile systems is getting the order of changes -- code, configuration and data -- right and making sure the system continues to function. That means &lt;a href="https://www.techtarget.com/searchsoftwarequality/answer/What-are-requirements-types"&gt;setting clear requirements&lt;/a&gt;, testing before changing anything, breaking work into safe steps, moving data without hiccups and avoiding the temptation to throw everything out and start over. Teams should work incrementally with guardrails and rollback mechanisms to gain progress without betting the business.&lt;/p&gt;
&lt;/section&gt;     
&lt;section class="section main-article-chapter" data-menu-title="7 approaches to legacy code modernization"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;7 approaches to legacy code modernization&lt;/h2&gt;
 &lt;p&gt;Modernizing legacy applications involves &lt;a href="https://www.techtarget.com/searchapparchitecture/tip/Refactor-vs-rewrite-Deciding-what-to-do-with-problem-software"&gt;more than a rewrite plan&lt;/a&gt;. It is a business decision about how to reduce risk, improve operations and unlock new strategies. A good starting point is application rationalization. Take inventory, score each system on value, cost to maintain, technical fitness and business risk, then decide which ones to invest in, consolidate, keep as-is or retire. With that short list in hand, development teams can match each system to a practical application modernization path that fits the budget, timeline and cloud roadmap.&lt;/p&gt;
 &lt;h3&gt;1. Encapsulate&lt;/h3&gt;
 &lt;p&gt;Wrap the legacy system with stable APIs or events so teams can build new features around it without changing the core. This protects consumers from outdated interfaces and buys time to plan deeper changes. Encapsulation often pairs well with &lt;a href="https://www.techtarget.com/searchapparchitecture/tip/A-detailed-intro-to-the-strangler-pattern"&gt;a strangler-style migration&lt;/a&gt;, where new capabilities live outside while old ones shrink over time.&lt;/p&gt;
 &lt;h3&gt;2. Rehost&lt;/h3&gt;
 &lt;p&gt;Lift and shift the workload to new infrastructure with minimal code changes -- such as moving a VM from a data center to the cloud for example. This approach provides quicker wins in reliability, cost transparency and basic automation but the legacy code and architecture stay the same. Use this when speed matters and deeper changes would add undue risk.&lt;/p&gt;
 &lt;h3&gt;3. Replatform&lt;/h3&gt;
 &lt;p&gt;Move to a modern runtime or managed service with small, targeted changes. Common examples are migrating to containers, a managed database or &lt;a href="https://www.techtarget.com/searchapparchitecture/feature/A-feature-rundown-of-6-popular-API-gateway-tools"&gt;serverless front doors&lt;/a&gt; such as AWS API Gateway. This approach can improve operations and scalability without redesigning the application. This is a solid middle ground that provides cloud benefits quickly while only slightly modifying the code.&lt;/p&gt;
 &lt;h3&gt;4. Refactor&lt;/h3&gt;
 &lt;p&gt;Restructure the code to improve maintainability without changing external behavior. &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/Essential-refactoring-techniques-to-know"&gt;Refactoring can involve&lt;/a&gt; splitting large modules, adding tests, removing dead code and updating libraries. The goal is to make the legacy code easier to maintain and safer to evolve. Refactoring pays off when the business logic is still valuable but the codebase has aged.&lt;/p&gt;
 &lt;h3&gt;5. Rearchitect&lt;/h3&gt;
 &lt;p&gt;Change the system's design to meet new quality goals such as scalability, resilience or speed of delivery. Examples include &lt;a href="https://www.techtarget.com/searchapparchitecture/tip/Architecting-beyond-microservices-and-monoliths"&gt;moving from a monolith&lt;/a&gt; to well-bounded services, adopting event-driven patterns or decoupling data stores. This is where architecture leads the transformation and often unlocks the most long-term agility.&lt;/p&gt;
 &lt;h3&gt;6. Rebuild&lt;/h3&gt;
 &lt;p&gt;Rewrite the application from the ground up while preserving scope and core behavior. This approach offers a clean slate for technology choices and testing practices, which can dramatically improve velocity. Rebuilds are best when the current implementation blocks change, yet the domain logic still matches how the business works.&lt;/p&gt;
 &lt;h3&gt;7. Replace&lt;/h3&gt;
 &lt;p&gt;Retire the custom system and adopt a commercial or SaaS product. This can cut ongoing cost and risk if the market provides what the business needs. Replacing works well for commodity capabilities such as HR, finance or CRM. The tradeoff is &lt;a href="https://www.techtarget.com/searchwindowsserver/tutorial/Try-default-values-in-PowerShell-parameters-for-flexibility"&gt;customization flexibility&lt;/a&gt;, so validate the replacement's fit and integration early.&lt;/p&gt;
 &lt;p&gt;These paths are not mutually exclusive. Many teams encapsulate first, rehost or replatform to stabilize operations, then refactor and rearchitect targeted areas. Rebuild or replace can follow once the organization is ready. The sequence &lt;a href="https://www.techtarget.com/searchcio/feature/Risk-appetite-vs-risk-tolerance-How-are-they-different"&gt;depends on risk tolerance&lt;/a&gt;, available talent and the urgency of digital transformation.&lt;/p&gt;
&lt;/section&gt;                 
&lt;section class="section main-article-chapter" data-menu-title="How can AI enable legacy code modernization?"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;How can AI enable legacy code modernization?&lt;/h2&gt;
 &lt;p&gt;AI is not a magic wand. It is an efficient colleague who reads everything, keeps perfect notes and does the boring parts without complaining. Used well, AI shortens the path from "we should modernize" to running software. Below are eight hands-on examples of AI-assisted code modernization tasks, generated by Claude Code CLI.&lt;/p&gt;
 &lt;blockquote class="main-article-pullquote"&gt;
  &lt;div class="main-article-pullquote-inner"&gt;
   &lt;figure&gt;
    Used well, AI shortens the path from 'we should modernize' to running software.
   &lt;/figure&gt;
   &lt;i class="icon" data-icon="z"&gt;&lt;/i&gt;
  &lt;/div&gt;
 &lt;/blockquote&gt;
 &lt;h3&gt;1. Turn legacy code into living specs and tests&lt;/h3&gt;
 &lt;p&gt;Capture what the system really does today in plain English and executable tests. This approach freezes current behavior so developers can improve structure, fix design issues or change technology without losing business rules.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Prompt:&lt;/b&gt;&lt;/p&gt;
 &lt;p style="padding-left: 40px;"&gt;"Scan ./cobol/ and ./jcl/ plus sample outputs in ./samples/ratings.csv. Produce a concise human spec of rating rules and a Python test pack that locks in current behavior. Use golden files based on ratings.csv. Keep the language business friendly."&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Output:&lt;/b&gt;&lt;/p&gt;
 &lt;pre class="language-python"&gt;&lt;code&gt;Premium rules v1
- If driver_age &amp;lt; 25 and vehicle_class in {"sport","performance"} apply surcharge S3 = 0.12
- If prior_claims &amp;gt;= 2 apply penalty P2 = 0.07
- Multi-vehicle discount 0.05 if household_vehicles &amp;gt;= 2
- Round to nearest cent after all adjustments&lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;—-&lt;/p&gt;
 &lt;pre class="language-python"&gt;&lt;code&gt;# tools/build_golden.py
import csv, json, os
os.makedirs("tests/golden", exist_ok=True)
with open("samples/ratings.csv") as f:
    for i,row in enumerate(csv.DictReader(f), start=1):
        case = {"input": row, "expected_total": float(row["total_premium"])}
        with open(f"tests/golden/case_{i}.json","w") as o:
            json.dump(case, o, indent=2)
print("golden files written")&lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;—&lt;/p&gt;
 &lt;pre class="language-python"&gt;&lt;code&gt;# tests/test_rating_rules.py
import glob, json, math
from legacy_adapter import calc_premium  # wrapper around COBOL batch calc

def cases():
    for path in glob.glob("tests/golden/*.json"):
        with open(path) as f:
            yield path, json.load(f)

def money_eq(a, b): return math.isclose(a, b, rel_tol=0, abs_tol=0.01)

def test_golden_parity():
    for path, case in cases():
        got = calc_premium(case["input"])
        assert money_eq(got, case["expected_total"]), f"mismatch in {path}"

def test_young_driver_surcharge_applies():
    base = {"driver_age": 22, "vehicle_class": "sport", "prior_claims": 0, "base": 1000}
    assert money_eq(calc_premium(base), 1120.00)&lt;/code&gt;&lt;/pre&gt;
 &lt;h3&gt;2. Apply minor, targeted code changes at scale&lt;/h3&gt;
 &lt;p&gt;Make many small, mechanical edits across one or more codebases to meet a platform or runtime goal. Examples include dependency upgrades, API swaps, logging standards or container readiness updates. The business logic stays the same while the code becomes consistent and compatible.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Prompt&lt;/b&gt;&lt;/p&gt;
 &lt;p style="padding-left: 40px;"&gt;Create an OpenRewrite recipe to move services from Java 8 to 17 and Spring Boot 2.7 to 3.2. Replace Apache HttpClient with &lt;span style="font-family: 'courier new', courier, monospace;"&gt;java.net.http.HttpClient&lt;/span&gt;.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Output&lt;/b&gt;&lt;/p&gt;
 &lt;pre class="language-python"&gt;&lt;code&gt;# rewrite.yml
type: specs.openrewrite.org/v1beta/recipe
name: company.upgrade-java17-spring3-httpclient
recipeList:
  - org.openrewrite.java.migrate.UpgradeToJava17
  - org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_2
  - org.openrewrite.java.ChangeType:
      oldFullyQualifiedTypeName: org.apache.http.client.HttpClient
      newFullyQualifiedTypeName: java.net.http.HttpClient
  - org.openrewrite.java.migrate.JavaxToJakarta&lt;/code&gt;&lt;/pre&gt;
 &lt;h3&gt;3. Build API facades and strangler seams&lt;/h3&gt;
 &lt;p&gt;Put a clean API in front of a legacy system and route traffic through it. The team can attach new features to the facade while gradually moving or rewriting internals behind the scenes. This reduces coupling and buys time to evolve the core safely.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Prompt&lt;/b&gt;&lt;/p&gt;
 &lt;p style="padding-left: 40px;"&gt;From ./traffic/*.har derive OpenAPI v3 for Orders with POST /orders and GET /orders/{id}. Generate an Express facade that maps to the legacy endpoints.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Output&lt;/b&gt;&lt;/p&gt;
 &lt;pre class="language-python"&gt;&lt;code&gt;openapi: 3.0.3
info: { title: Orders API, version: '1.0' }
paths:
  /orders:
    post:
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: '#/components/schemas/CreateOrder' }
      responses: { '201': { description: Created } }
  /orders/{id}:
    get: { responses: { '200': { description: OK } } }
components:
  schemas:
    CreateOrder:
      type: object
      required: [customerId, items]
      properties:
        customerId: { type: string }
        items:
          type: array
          items: { type: object, required: [sku, qty], properties: { sku: {type: string}, qty: {type: integer} } }&lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;—&lt;/p&gt;
 &lt;pre class="language-python"&gt;&lt;code&gt;// api/facade.js
import express from "express";
import fetch from "node-fetch";
const app = express(); app.use(express.json());

const toLegacyCreate = b =&amp;gt; ({ custId: b.customerId, lines: b.items.map(i =&amp;gt; ({ sku: i.sku, q: i.qty })) });
const fromLegacy = r =&amp;gt; ({ id: r.ordId, status: r.stat, total: r.total });

app.post("/orders", async (req, res) =&amp;gt; {
  const r = await fetch(process.env.LEGACY_URL + "/createOrder", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify(toLegacyCreate(req.body))
  });
  if (!r.ok) return res.status(502).json({ error: "legacy error" });
  res.status(201).json(fromLegacy(await r.json()));
});

app.get("/orders/:id", async (req, res) =&amp;gt; {
  const r = await fetch(process.env.LEGACY_URL + `/order?id=${req.params.id}`);
  if (!r.ok) return res.status(404).end();
  res.json(fromLegacy(await r.json()));
});

app.listen(8080);&lt;/code&gt;&lt;/pre&gt;
 &lt;h3&gt;4. Discover usage patterns and guide application rationalization&lt;/h3&gt;
 &lt;p&gt;Use real usage and cost data to decide what to keep, consolidate or retire. The goal is to shrink scope before modernizing to ultimately invest in the few applications that matter and remove redundant or idle ones.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Prompt&lt;/b&gt;&lt;/p&gt;
 &lt;p style="padding-left: 40px;"&gt;Analyze &lt;span style="font-family: 'courier new', courier, monospace;"&gt;api_logs.csv&lt;/span&gt; and &lt;span style="font-family: 'courier new', courier, monospace;"&gt;service_costs.csv&lt;/span&gt;. List endpoints unused in 180 days, cluster services by usage and cost and suggest retire or consolidate actions.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Output&lt;/b&gt;&lt;/p&gt;
 &lt;pre class="language-python"&gt;&lt;code&gt;import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans

logs = pd.read_csv("api_logs_features.csv")      # req_per_day, latency_p95_ms, distinct_flows, service
costs = pd.read_csv("service_costs.csv")         # monthly_cost, service
df = logs.merge(costs, on="service")
X = StandardScaler().fit_transform(df[["req_per_day","latency_p95_ms","monthly_cost","distinct_flows"]])
df["cluster"] = KMeans(n_clusters=4, n_init="auto").fit_predict(X)
candidates = df[(df["req_per_day"] &amp;lt; 5) &amp;amp; (df["monthly_cost"] &amp;gt; 2000)]
print("retire candidates:\n", candidates[["service","monthly_cost"]].sort_values("monthly_cost", ascending=False))

—

"Retire: hr-letter-2, hr-letter-3 (zero traffic 6 months). Consolidate into hr-letter-1.

Replace: expense-legacy with SaaS-X (85 percent feature overlap). Integration cost low.

Keep: payroll-core (high traffic, unique features)."&lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;&lt;/p&gt;
 &lt;h3&gt;5. Synthesize infrastructure, runbooks and smoke tests for safer rehosting&lt;/h3&gt;
 &lt;p&gt;Turn tribal setup knowledge into infrastructure as code (&lt;a href="https://www.techtarget.com/searchitoperations/definition/Infrastructure-as-Code-IAC"&gt;IaC&lt;/a&gt;), a clear cutover plan and quick health checks. This approach lift and shifts with fewer surprises because provisioning and validation are scripted, repeatable and easy to audit.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Prompt&lt;/b&gt;&lt;/p&gt;
 &lt;p style="padding-left: 40px;"&gt;From &lt;span style="font-family: 'courier new', courier, monospace;"&gt;/runbooks/windows-farm.md, /scripts/*.ps1&lt;/span&gt;, and &lt;span style="font-family: 'courier new', courier, monospace;"&gt;/configs/*.ini&lt;/span&gt; generate Terraform for EC2, a runbook titled Cutover Tuesday 7 pm, and a bash smoke test that hits &lt;span style="font-family: 'courier new', courier, monospace;"&gt;/healthz&lt;/span&gt; and creates a sample order.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Output&lt;/b&gt;&lt;/p&gt;
 &lt;pre class="language-python"&gt;&lt;code&gt;# infra/main.tf
module "orders" {
  source        = "terraform-aws-modules/ec2-instance/aws"
  name          = "orders-svc"
  instance_type = "m6i.large"
  ami           = data.aws_ami.al2023.id
  user_data     = file("bootstrap.ps1")
  vpc_security_group_ids = [aws_security_group.orders.id]
}

resource "aws_security_group" "orders" {
  name = "orders-sg"
  ingress { from_port=8080, to_port=8080, protocol="tcp", cidr_blocks=["10.0.0.0/16"] }
  egress  { from_port=0, to_port=0, protocol="-1", cidr_blocks=["0.0.0.0/0"] }
}&lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;&lt;b&gt;—&lt;/b&gt;&lt;/p&gt;
 &lt;p&gt;Pre checks&lt;/p&gt;
 &lt;p&gt;- Freeze deploys. Confirm latest AMI. Verify backups &amp;lt; 24h old.&lt;/p&gt;
 &lt;p&gt;Cutover 19:00&lt;/p&gt;
 &lt;p&gt;- Drain target group orders-tg.&lt;/p&gt;
 &lt;p&gt;- Deploy canary to one instance. Run smoke tests.&lt;/p&gt;
 &lt;p&gt;- Shift 10 percent traffic. Observe 15 minutes. If clean, ramp to 100 percent.&lt;/p&gt;
 &lt;p&gt;Rollback&lt;/p&gt;
 &lt;p&gt;- Point target group back to asg-orders-old. Restore snapshot if needed.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;—&lt;/b&gt;&lt;/p&gt;
 &lt;pre class="language-python"&gt;&lt;code&gt;#!/usr/bin/env bash
set -euo pipefail
BASE=${1:-http://orders.internal:8080}
curl -fsS "$BASE/healthz" | grep "ok"
curl -fsS -X POST "$BASE/orders" -H 'Content-Type: application/json' \
  -d '{"customerId":"demo","items":[{"sku":"ABC","qty":1}]}' | jq -e '.id'
echo "smoke tests passed"&lt;/code&gt;&lt;/pre&gt;
 &lt;h3&gt;6. Extract domains and events to unlock a better architecture&lt;/h3&gt;
 &lt;p&gt;Identify natural boundaries in code and data, then define the events those domains share. For example, teams could split a monolith into well-bounded services in small steps, improving scalability and delivery speed without a risky big bang.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Prompt&lt;/b&gt;&lt;/p&gt;
 &lt;p style="padding-left: 40px;"&gt;Analyze &lt;span style="font-family: 'courier new', courier, monospace;"&gt;./src&lt;/span&gt; and &lt;span style="font-family: 'courier new', courier, monospace;"&gt;docs/erd.png&lt;/span&gt;. Propose bounded contexts for catalog, pricing, inventory, checkout. Produce JSON schemas for key events and minimal Kafka producer and consumer samples&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Output&lt;/b&gt;&lt;/p&gt;
 &lt;pre class="language-javascript"&gt;&lt;code&gt;{
  "event": "PriceChanged",
  "version": 1,
  "product_id": "SKU-123",
  "old_price": 19.99,
  "new_price": 17.99,
  "currency": "USD",
  "occurred_at": "2025-08-20T12:34:56Z",
  "source": "pricing-service"
}&lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;—&lt;/p&gt;
 &lt;pre class="language-javascript"&gt;&lt;code&gt;from kafka import KafkaProducer
import json, time
producer = KafkaProducer(bootstrap_servers=["kafka:9092"], value_serializer=lambda v: json.dumps(v).encode())
def publish_price_changed(sku, old, new):
    evt = {"event":"PriceChanged","version":1,"occurred_at":time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()),
           "product_id":sku,"old_price":old,"new_price":new,"currency":"USD","source":"pricing-service"}
    producer.send("price-events", evt)&lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;—&lt;/p&gt;
 &lt;pre class="language-javascript"&gt;&lt;code&gt;from kafka import KafkaConsumer
import json
consumer = KafkaConsumer("price-events", bootstrap_servers=["kafka:9092"], value_deserializer=lambda v: json.loads(v.decode()))
for msg in consumer:
    evt = msg.value
    # TODO update read model or invalidate cache&lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;—&lt;/p&gt;
 &lt;pre class="language-javascript"&gt;&lt;code&gt;Catalog -&amp;gt; emits ProductUpdated
Pricing -&amp;gt; emits PriceChanged
Inventory -&amp;gt; emits InventoryAdjusted
Checkout -&amp;gt; consumes ProductUpdated, PriceChanged, InventoryAdjusted&lt;/code&gt;&lt;/pre&gt;
 &lt;h3&gt;7. Guide a rebuild with scaffolds, seeds and property-based tests&lt;/h3&gt;
 &lt;p&gt;Start fresh on a modern stack while proving the new behavior matches the old one during the transition. Scaffolding speeds up setup, dual-run or replay. Property-based tests &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/The-importance-of-edge-case-testing-When-to-fix-the-bug"&gt;catch edge cases early&lt;/a&gt;.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Prompt&lt;/b&gt;&lt;/p&gt;
 &lt;p style="padding-left: 40px;"&gt;Generate a Go HTTP service with &lt;span style="font-family: 'courier new', courier, monospace;"&gt;/price&lt;/span&gt;. Add a Python parity test that compares new pricing to the legacy function. Provide a small dual-write adapter for order creation."&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Output&lt;/b&gt;&lt;/p&gt;
 &lt;pre class="language-python"&gt;&lt;code&gt;// cmd/pricing/main.go
package main
import ("encoding/json"; "log"; "net/http"; "time")
type PriceRequest struct{ SKU string; Qty int }
type PriceResponse struct{ SKU string; Price float64; Currency string }
func priceHandler(w http.ResponseWriter, r *http.Request) {
  start := time.Now()
  var req PriceRequest
  if err := json.NewDecoder(r.Body).Decode(&amp;amp;req); err != nil { w.WriteHeader(400); return }
  resp := PriceResponse{SKU: req.SKU, Price: 17.99, Currency: "USD"} // TODO call domain
  json.NewEncoder(w).Encode(resp)
  log.Printf("path=/price sku=%s qty=%d latency_ms=%d", req.SKU, req.Qty, time.Since(start).Milliseconds())
}
func main() { http.HandleFunc("/price", priceHandler); log.Fatal(http.ListenAndServe(":8081", nil)) }&lt;/code&gt;&lt;/pre&gt;
 &lt;pre class="language-python"&gt;&lt;code&gt;# tests/test_parity.py
from hypothesis import given, strategies as st
from new_impl import price as new_price
from legacy_impl import price as legacy_price

@given(sku=st.from_regex(r"[A-Z0-9\-]{3,12}"), qty=st.integers(min_value=1, max_value=10))
def test_new_matches_legacy_for_many_inputs(sku, qty):
    assert round(new_price(sku, qty), 2) == round(legacy_price(sku, qty), 2)

—&lt;/code&gt;&lt;/pre&gt;
 &lt;pre class="language-python"&gt;&lt;code&gt;import requests
def create_order(new_order):
    r1 = requests.post("http://new/orders", json=new_order, timeout=2)
    r2 = requests.post("http://legacy/order_create", json=map_to_legacy(new_order), timeout=2)
    return r1.status_code == 201 and r2.ok&lt;/code&gt;&lt;/pre&gt;
 &lt;h3&gt;8. Make buy-versus-build decisions with total cost of ownership and fit simulations&lt;/h3&gt;
 &lt;p&gt;Compare long-term cost, feature fit and integration effort across three paths: &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/When-and-how-to-refactor-code"&gt;keep plus refactor&lt;/a&gt;, rebuild or replace with SaaS. The outcome is a clear, numbers-backed plan that shows where custom code still adds value.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Prompt&lt;/b&gt;&lt;/p&gt;
 &lt;p style="padding-left: 40px;"&gt;Using &lt;span style="font-family: 'courier new', courier, monospace;"&gt;usage.csv, vendor_pricing.csv&lt;/span&gt;, and &lt;span style="font-family: 'courier new', courier, monospace;"&gt;run_costs.csv&lt;/span&gt;, compute five-year NPV for keep plus refactor, rebuild, and replace with SaaS at a 10 percent discount rate. List top integration hotspots and generate a TypeScript adapter stub for the vendor journal API.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Output&lt;/b&gt;&lt;/p&gt;
 &lt;pre class="language-python"&gt;&lt;code&gt;import numpy as np, pandas as pd

# thousands of dollars per year
keep_refactor = [300, 120, 120, 120, 120]
rebuild       = [800, 90, 90, 90, 90]
saas          = [400, 70, 70, 70, 70]

def npv(stream, rate=0.10):
    return sum(v / ((1 + rate) ** t) for t, v in enumerate(stream))

print("NPV keep+refactor:", round(npv(keep_refactor), 1))
print("NPV rebuild:", round(npv(rebuild), 1))
print("NPV replace with SaaS:", round(npv(saas), 1))&lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;&lt;b&gt;—&lt;/b&gt;&lt;/p&gt;
 &lt;p&gt;&lt;span style="font-family: 'courier new', courier, monospace;"&gt;1. Journal posting and reconciliation&lt;/span&gt;&lt;br&gt;&lt;span style="font-family: 'courier new', courier, monospace;"&gt;2. User provisioning and SSO mapping&lt;/span&gt;&lt;br&gt;&lt;span style="font-family: 'courier new', courier, monospace;"&gt;3. Historical report backfill&lt;/span&gt;&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;—&lt;/b&gt;&lt;/p&gt;
 &lt;pre class="language-python"&gt;&lt;code&gt;// adapters/vendorLedger.ts

type JournalLine = { account: string; debit?: number; credit?: number };

type JournalEntry = { id: string; date: Date; lines: JournalLine[] };

function mapAccount(a: string): string {

const map: Record&amp;lt;string,string&amp;gt; = { "1000": "Assets:Cash", "2000": "Liabilities:AP" };

return map[a] ?? a;

}

export async function postJournal(entry: JournalEntry): Promise&amp;lt;string&amp;gt; {

const payload = {

date: entry.date.toISOString().slice(0,10),

lines: entry.lines.map(l =&amp;gt; ({ account: mapAccount(l.account), debit: l.debit, credit: l.credit })),

externalId: entry.id

};

const res = await fetch(`${process.env.VENDOR_URL}/journals`, {

method: "POST",

headers: { "Authorization": `Bearer ${process.env.TOKEN}`, "Content-Type":"application/json" },

body: JSON.stringify(payload)

});

if (!res.ok) throw new Error(`Vendor error ${res.status}`);

const { id } = await res.json();

return id;

}&lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;At its best, AI turns modernization plans into working code the user can see and trust. It writes plain-English specs and tests that lock in business rules, runs code mods that clean up APIs and fronts brittle systems with simple facades to let teams improve the core behind them. It trims scope by showing what to keep or retire, scripts rehosting with IaC and &lt;a href="https://www.techtarget.com/searchsoftwarequality/definition/smoke-testing"&gt;smoke checks&lt;/a&gt;, and suggests clear domain boundaries with events.&lt;/p&gt;
 &lt;p&gt;When a rebuild is right, it proves parity before cutover. A smart replacement strategy backs the call with numbers and adapter stubs. The result is steady, low-risk progress commits, tests and runbooks that make legacy code easier to maintain and primed for a cloud-ready architecture.&lt;/p&gt;
&lt;/section&gt;                                                                                   
&lt;section class="section main-article-chapter" data-menu-title="Limitations of AI-driven code modernization"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Limitations of AI-driven code modernization&lt;/h2&gt;
 &lt;p&gt;AI can speed up modernization, but it has real limits to plan around.&lt;/p&gt;
 &lt;ul class="default-list"&gt; 
  &lt;li&gt;&lt;b&gt;Context and data quality.&lt;/b&gt; Models only see what they're fed. Outdated specs, missing logs and edge cases outside the sample set lead to wrong conclusions and brittle code.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Behavior coverage.&lt;/b&gt; Generated tests and golden files can lock in existing bugs or miss cross-system side effects. SMEs, exploratory testing and production safeguards are still necessary.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Security, privacy and compliance.&lt;/b&gt; Code generation can introduce vulnerabilities, mishandle secrets or reuse licensed snippets. Guardrails, SAST/DAST, &lt;a href="https://www.techtarget.com/searchsecurity/post/The-benefits-and-challenges-of-SBOMs"&gt;SBOMs&lt;/a&gt; and clear data handling rules are still necessary.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Architecture and change management.&lt;/b&gt; AI can propose edits, not own trade-offs, sequencing or organizational alignment. &lt;a href="https://www.techtarget.com/searchenterpriseai/tip/Agentic-AI-governance-strategies-A-complete-guide"&gt;Without governance&lt;/a&gt;, CI quality bars and rollback paths, mass changes raise risk.&lt;/li&gt; 
 &lt;/ul&gt;
 &lt;p&gt;Used with these limits in mind, AI turns strategy into steady, observable progress, but it is a power tool, not an autopilot.&lt;/p&gt;
 &lt;p&gt;&lt;i&gt;Nick Femia is a Tech Lead and full-stack engineer with over six years of experience driving product engineering and AI innovation.&lt;/i&gt;&lt;/p&gt;
&lt;/section&gt;</body>
            <description>AI will not be able to refurbish legacy systems at the push of a button. Still, with proper guidance and oversight, AI tools can speed up code modernization projects.</description>
            <image>https://cdn.ttgtmedia.com/rms/onlineimages/code_g1289411982.jpg</image>
            <link>https://www.techtarget.com/searchsoftwarequality/tip/Guidelines-for-AI-driven-legacy-code-modernization</link>
            <pubDate>Wed, 03 Sep 2025 10:50:00 GMT</pubDate>
            <title>Guidelines for AI-driven legacy code modernization</title>
        </item>
        <item>
            <body>&lt;p&gt;The Capability Maturity Model (CMM) is a methodology used to develop and refine an organization's software development process. The model describes a five-level evolutionary path of increasingly organized and systematically more mature processes.&lt;/p&gt; 
&lt;p&gt;CMM was developed and is promoted by the Software Engineering Institute (&lt;a href="https://www.sei.cmu.edu/" target="_blank" rel="noopener"&gt;SEI&lt;/a&gt;), a research and development center sponsored by the U.S. Department of Defense (DOD) and now part of Carnegie Mellon University. SEI was founded in 1984 to address &lt;a href="https://www.techtarget.com/whatis/definition/software-engineering"&gt;software engineering&lt;/a&gt; issues and, in a broad sense, to advance software engineering methodologies. More specifically, SEI was established to optimize the process of developing, acquiring and maintaining heavily software-reliant systems for the DOD. SEI advocates industry-wide adoption of the CMM Integration (CMMI), which is an evolution of CMM. The CMM model is still widely used as well.&lt;/p&gt; 
&lt;p&gt;CMM is similar to &lt;a href="https://www.techtarget.com/searchdatacenter/definition/ISO"&gt;ISO&lt;/a&gt; 9001, one of the &lt;a href="https://www.techtarget.com/searchdatacenter/definition/ISO-9000"&gt;ISO 9000&lt;/a&gt; series of standards specified by the International Organization for Standardization. The ISO 9000 standards specify an effective quality system for manufacturing and service industries; ISO 9001 deals specifically with software development and maintenance.&lt;/p&gt; 
&lt;p&gt;The main difference between CMM and ISO 9001 lies in their respective purposes: ISO 9001 specifies a minimal acceptable quality level for software processes, while CMM establishes a &lt;a href="https://www.techtarget.com/whatis/definition/framework"&gt;framework&lt;/a&gt; for continuous process improvement. It is more explicit than the ISO standard in defining the means to be employed to that end.&lt;/p&gt; 
&lt;section class="section main-article-chapter" data-menu-title="CMM's five levels of maturity for software processes"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;CMM's five levels of maturity for software processes&lt;/h2&gt;
 &lt;p&gt;There are five levels to the CMM development process. They are the following:&lt;/p&gt;
 &lt;ol class="default-list"&gt; 
  &lt;li&gt;&lt;b&gt;Initial.&lt;/b&gt; At the initial level, processes are disorganized, ad hoc and even chaotic. Success likely depends on individual efforts and is not considered to be repeatable. This is because processes are not sufficiently defined and documented to enable them to be replicated.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Repeatable.&lt;/b&gt; At the repeatable level, requisite processes are established, defined and documented. As a result, basic &lt;a href="https://www.techtarget.com/searchcio/definition/project-management"&gt;project management&lt;/a&gt; techniques are established, and successes in key process areas are able to be repeated.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Defined.&lt;/b&gt; At the defined level, an organization develops its own standard &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/A-guide-to-software-design-documentation-and-specifications"&gt;software development process&lt;/a&gt;. These defined processes enable greater attention to documentation, standardization and integration.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Managed.&lt;/b&gt; At the managed level, an organization monitors and controls its own processes through &lt;a href="https://www.techtarget.com/searchcio/definition/data-collection"&gt;data collection&lt;/a&gt; and analysis.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Optimizing.&lt;/b&gt; At the optimizing level, processes are constantly improved through &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/6-ways-to-catch-defects-in-software-tighten-feedback-loops"&gt;monitoring feedback from processes&lt;/a&gt; and introducing innovative processes and functionality.&lt;/li&gt; 
 &lt;/ol&gt;
 &lt;figure class="main-article-image full-col" data-img-fullsize="https://www.techtarget.com/rms/onlineimages/5_levels_of_the_capability_maturity_model-f.png"&gt;
  &lt;img data-src="https://www.techtarget.com/rms/onlineimages/5_levels_of_the_capability_maturity_model-f_mobile.png" class="lazy" data-srcset="https://www.techtarget.com/rms/onlineimages/5_levels_of_the_capability_maturity_model-f_mobile.png 960w,https://www.techtarget.com/rms/onlineimages/5_levels_of_the_capability_maturity_model-f.png 1280w" alt="Diagram of the 5 levels of the Capability Maturity Model" height="213" width="560"&gt;
  &lt;figcaption&gt;
   &lt;i class="icon pictures" data-icon="z"&gt;&lt;/i&gt;The Capability Maturity Model takes software development processes from disorganized and chaotic to predictable and constantly improving.
  &lt;/figcaption&gt;
  &lt;div class="main-article-image-enlarge"&gt;
   &lt;i class="icon" data-icon="w"&gt;&lt;/i&gt;
  &lt;/div&gt;
 &lt;/figure&gt;
&lt;/section&gt;    
&lt;section class="section main-article-chapter" data-menu-title="CMM vs. CMMI: What's the difference?"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;CMM vs. CMMI: What's the difference?&lt;/h2&gt;
 &lt;p&gt;CMMI is a newer, updated model of CMM. SEI developed &lt;a href="https://www.cmmiinstitute.com/" target="_blank" rel="noopener"&gt;CMMI&lt;/a&gt; to integrate and standardize CMM, which has different models for each function it covers. These models were not always in sync; integrating them made the process more efficient and flexible.&lt;/p&gt;
 &lt;p&gt;CMMI includes additional guidance on how to improve key processes. It also incorporates ideas from &lt;a href="https://www.techtarget.com/searchsoftwarequality/definition/agile-software-development"&gt;Agile development&lt;/a&gt;, such as continuous improvement.&lt;/p&gt;
 &lt;p&gt;SEI released the first version of CMMI in 2002. In 2013, Carnegie Mellon formed the CMMI Institute to oversee CMMI services and future model development.&lt;/p&gt;
 &lt;p&gt;ISACA, a professional organization for IT governance, assurance and cybersecurity professionals, acquired CMMI Institute in 2016. The next version -- CMMI V2.0 -- came out in 2018. It focused on establishing business objectives and tracking those objectives at every level of business &lt;a href="https://www.techtarget.com/whatis/definition/maturity-model"&gt;maturity&lt;/a&gt;.&lt;/p&gt;
 &lt;p&gt;The current version of CMMI, Version 3.0, was released in 2023. It leverages comments from users and CMMI partners to improve various elements of the model, including changes to the architecture and development of new practice areas addressing people and &lt;a href="https://www.techtarget.com/searchdatamanagement/definition/data-management"&gt;data management&lt;/a&gt;, in addition to addressing &lt;a href="https://www.techtarget.com/searchsecurity/tip/Remote-work-cybersecurity-12-risks-and-how-to-prevent-them"&gt;virtual (e.g., remote) work environments&lt;/a&gt;.&lt;/p&gt;
 &lt;p&gt;CMMI adds Agile principles to CMM to help improve development processes, software configuration management and &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/Make-quality-a-priority-in-your-software-engineering-culture"&gt;software quality&lt;/a&gt; management. It does this, in part, by incorporating continuous feedback and continuous improvement into the software development process. Under CMMI, organizations are expected to continually optimize processes, record feedback and use that feedback to further improve processes in a cycle of improvement.&lt;/p&gt;
 &lt;div class="youtube-iframe-container"&gt;
  &lt;iframe id="ytplayer-0" src="https://www.youtube.com/embed/lHmHKh-QVNQ?autoplay=0&amp;amp;modestbranding=1&amp;amp;rel=0&amp;amp;widget_referrer=null&amp;amp;enablejsapi=1&amp;amp;origin=https://www.theserverside.com" type="text/html" height="360" width="640" frameborder="0"&gt;&lt;/iframe&gt;
 &lt;/div&gt;
 &lt;p&gt;One criticism of CMM is that it is too process-oriented and not goal-oriented enough. Organizations have found it difficult to tailor CMM to specific goals and needs. One of CMMI's improvements is to focus on strategic goals and additional practice areas. CMMI is designed to make it easier for businesses to apply the methodology to specific uses than with CMM.&lt;/p&gt;
 &lt;p&gt;Like CMM, CMMI consists of five process maturity levels. However, they are different from the levels in CMM.&lt;/p&gt;
 &lt;p&gt;The process performance levels of CMMI are the following:&lt;/p&gt;
 &lt;ol class="default-list"&gt; 
  &lt;li&gt;&lt;b&gt;Initial.&lt;/b&gt; Processes are unpredictable and reactive. They increase risk and decrease efficiency.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Managed.&lt;/b&gt; Processes are planned and managed, but they still have issues.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Defined.&lt;/b&gt; Processes become more proactive than reactive.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Quantitatively managed.&lt;/b&gt; Quantitative data is used to craft predictable processes that fulfill &lt;a href="https://www.techtarget.com/searchcio/definition/stakeholder"&gt;stakeholder&lt;/a&gt; needs based on more accurate measurement of adherence to business goals.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Optimizing.&lt;/b&gt; The organization has a set of consistent &lt;a href="https://www.computerweekly.com/feature/How-AI-is-helping-to-drive-business-process-optimisation"&gt;processes that are constantly being improved and optimized&lt;/a&gt;.&lt;/li&gt; 
 &lt;/ol&gt;
 &lt;figure class="main-article-image full-col" data-img-fullsize="https://www.techtarget.com/rms/onlineimages/5_levels_of_the_capability_maturity_model_integration-f.png"&gt;
  &lt;img data-src="https://www.techtarget.com/rms/onlineimages/5_levels_of_the_capability_maturity_model_integration-f_mobile.png" class="lazy" data-srcset="https://www.techtarget.com/rms/onlineimages/5_levels_of_the_capability_maturity_model_integration-f_mobile.png 960w,https://www.techtarget.com/rms/onlineimages/5_levels_of_the_capability_maturity_model_integration-f.png 1280w" alt="Diagram of the 5 levels of the Capability Maturity Model Integration" height="241" width="560"&gt;
  &lt;figcaption&gt;
   &lt;i class="icon pictures" data-icon="z"&gt;&lt;/i&gt;The Capability Maturity Model Integration combines various software develop maturity models into one process.
  &lt;/figcaption&gt;
  &lt;div class="main-article-image-enlarge"&gt;
   &lt;i class="icon" data-icon="w"&gt;&lt;/i&gt;
  &lt;/div&gt;
 &lt;/figure&gt;
 &lt;p&gt;The Capability Maturity Model Integration combines various software development maturity models into one process.&lt;/p&gt;
&lt;/section&gt;              
&lt;section class="section main-article-chapter" data-menu-title="Pros and cons of CMMI"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Pros and cons of CMMI&lt;/h2&gt;
 &lt;p&gt;The latest version of the CMMI offers some important advantages, including an updated framework for structured process management, increased scalability to address a wider variety of organizations, and by achieving CMMI certification, an improved competitive position and reputation for excellence.&lt;/p&gt;
 &lt;p&gt;The above benefits also come with a few challenges, including the cost and time needed to achieve and maintain the CMMI model, complexity associated with the program implemented, and possible &lt;a href="https://www.techtarget.com/searchcio/tip/The-importance-of-culture-in-digital-transformation"&gt;cultural resistance&lt;/a&gt; to CMMI processes and their application.&lt;/p&gt;
&lt;/section&gt;   
&lt;section class="section main-article-chapter" data-menu-title="Preparing for CMMI assessment and certification"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Preparing for CMMI assessment and certification&lt;/h2&gt;
 &lt;p&gt;Assuming an organization wishes to pursue CMMI accreditation, it must first complete a self-assessment which is followed by a third-party assessment and, hopefully, an &lt;a href="https://cmmiinstitute.com/learning/certifications"&gt;CMMI certification&lt;/a&gt; by the CMMI Institute.&lt;/p&gt;
 &lt;p&gt;The process has several steps, which start by gathering data on the assessment and certification processes from CMMI Institute or one of its approved partner organizations. The candidate organization may elect to receive training on the CMMI process and then proceed to a self-assessment of its current practices as compared to CMMI requirements. Deficiencies uncovered by the assessment can then be addressed.&lt;/p&gt;
 &lt;p&gt;Once the organization has completed the above steps and addressed the relevant assessment components, an appraisal can be scheduled by an approved third party. This can involve interviews, inspections, program and project reviews and other structured activities. Results of the appraisal report can be turned into an action plan to correct any issues. Working in concert with the third-party appraiser, the organization can then apply for certification by the CMMI Institute.&lt;/p&gt;
 &lt;p&gt;A key consideration of self-assessment, appraisal and certification is that the CMMI process does not end with certification. Instead, CMII processes should be part of &lt;a href="https://www.informationweek.com/it-leadership/why-your-it-organization-needs-to-embrace-continuous-improvement"&gt;an organization's continuous improvement&lt;/a&gt; activities.&lt;/p&gt;
&lt;/section&gt;     
&lt;section class="section main-article-chapter" data-menu-title="Organizations that provide CMMI assessments and appraisals"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Organizations that provide CMMI assessments and appraisals&lt;/h2&gt;
 &lt;p&gt;The CMMI Institute provides details on how to organize an assessment and/or appraisal. The CMMI Institute Partner Directory lists all partners worldwide. Following is a brief list of CMMI certified lead appraisers.&lt;/p&gt;
 &lt;ul class="default-list"&gt; 
  &lt;li&gt;ABI Consultants&lt;/li&gt; 
  &lt;li&gt;Abridge Technology&lt;/li&gt; 
  &lt;li&gt;Accenture LLP&lt;/li&gt; 
  &lt;li&gt;ACE Guides, LLC&lt;/li&gt; 
  &lt;li&gt;ActioNet, Inc.&lt;/li&gt; 
  &lt;li&gt;AFNOR Certification&lt;/li&gt; 
  &lt;li&gt;AG Kaizen Group&lt;/li&gt; 
  &lt;li&gt;Brightline Performance Group&lt;/li&gt; 
  &lt;li&gt;BVSLN System Services Private Ltd.&lt;/li&gt; 
  &lt;li&gt;Delivery Excellence, Inc.&lt;/li&gt; 
  &lt;li&gt;IBM&lt;/li&gt; 
  &lt;li&gt;Layermark&lt;/li&gt; 
  &lt;li&gt;Leading Edge Process Consultants, LLC&lt;/li&gt; 
  &lt;li&gt;Plowright International LLC&lt;/li&gt; 
  &lt;li&gt;Prescient Security&lt;/li&gt; 
  &lt;li&gt;RSK Consulting&lt;/li&gt; 
  &lt;li&gt;Sandhill Consultants Ltd.&lt;/li&gt; 
  &lt;li&gt;Shanghai Fancier Info Tech Ltd.&lt;/li&gt; 
 &lt;/ul&gt;
&lt;/section&gt;   
&lt;section class="section main-article-chapter" data-menu-title="The future of CMMI programs"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;The future of CMMI programs&lt;/h2&gt;
 &lt;p&gt;Considering the latest iteration -- Version 3.0 -- of the CMMI model, its expansion into a global set of capability performance metrics, and a greater focus on &lt;a href="https://www.techtarget.com/whatis/feature/Tips-for-learning-new-technologies"&gt;advanced technologies&lt;/a&gt;, people management, virtual work, and environmental, social and governance (&lt;a href="https://www.techtarget.com/whatis/definition/environmental-social-and-governance-ESG"&gt;ESG&lt;/a&gt;) issues, the long-term view of CMMI is positive.&lt;/p&gt;
 &lt;p&gt;&lt;i&gt;As software permeates all aspects of life, developers have an ethical duty to their users. Learn how to &lt;/i&gt;&lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/5-examples-of-ethical-issues-in-software-development"&gt;&lt;i&gt;uphold this responsibility in software development&lt;/i&gt;&lt;/a&gt;&lt;i&gt;. Also, learn about &lt;/i&gt;&lt;a href="https://www.techtarget.com/sustainability/feature/5-IT-sustainability-approaches-to-consider"&gt;&lt;i&gt;constructive approaches to enhancing IT sustainability&lt;/i&gt;&lt;/a&gt;&lt;i&gt;, such as prioritizing e-waste reduction and adopting responsible AI practices. &lt;/i&gt;&lt;/p&gt;
&lt;/section&gt;</body>
            <description>The Capability Maturity Model (CMM) is a methodology used to develop and refine an organization's software development process.</description>
            <image>https://cdn.ttgtmedia.com/visuals/digdeeper/3.jpg</image>
            <link>https://www.techtarget.com/searchsoftwarequality/definition/Capability-Maturity-Model</link>
            <pubDate>Wed, 03 Sep 2025 09:00:00 GMT</pubDate>
            <title>What is Capability Maturity Model (CMM)?</title>
        </item>
        <item>
            <body>&lt;p&gt;You don't have to be a full-stack developer to become a Scrum Master, but you should be creative and quick with a whiteboard marker.&lt;/p&gt; 
&lt;p&gt;As a Scrum Master, you facilitate the procedures of Scrum, a framework for Agile development. This person &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/The-Scrum-events-explained"&gt;orchestrates the events&lt;/a&gt;, also called ceremonies, such as the daily Scrum and the sprint review. &lt;a href="https://www.techtarget.com/whatis/definition/scrum-master"&gt;Scrum Masters&lt;/a&gt; enable collaboration, resolve conflict and improve processes; they exist to serve the team.&lt;/p&gt; 
&lt;p&gt;When work interruptions occur, Scrum Masters should lead collaborative efforts to address impediments -- especially if they're external. For example, requirements changes and technical issues stall work during both individual &lt;a href="https://www.techtarget.com/searchsoftwarequality/definition/Scrum-sprint"&gt;sprints&lt;/a&gt; and the fuller development cycle. To address such problems, the Scrum Master needs to be proficient with the development tools a team uses. A Scrum Master with these advanced skill sets can help a software team greatly.&lt;/p&gt; 
&lt;p&gt;Beyond Agile project management abilities, skilled Scrum Masters are also need broad leadership skills. They build trust, promote healthy conflict and conflict resolution, get commitment, ensure accountability and maintain focus on sprint goals. To do so, they must understand the technical product developers are building.&lt;/p&gt; 
&lt;p&gt;If you're ready to &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/Scrum-master-interview-questions-and-answers"&gt;advance your Agile development career&lt;/a&gt;, study up on these essential Scrum Master skills.&lt;/p&gt; 
&lt;section class="section main-article-chapter" data-menu-title="1. Learning to build Scrum knowledge"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;1. Learning to build Scrum knowledge&lt;/h2&gt;
 &lt;p&gt;Study core Scrum pillars and &lt;a href="https://www.techtarget.com/whatis/feature/What-are-the-5-Scrum-values"&gt;values&lt;/a&gt; to become an effective Scrum Master. Three pillars of Scrum exist: adaptation, transparency and inspection. The framework has five values: respect, courage, openness, commitment and focus.&lt;/p&gt;
 &lt;figure class="main-article-image full-col" data-img-fullsize="https://www.techtarget.com/rms/onlineimages/whatis-scrum_pillars.png"&gt;
  &lt;img data-src="https://www.techtarget.com/rms/onlineimages/whatis-scrum_pillars_mobile.png" class="lazy" data-srcset="https://www.techtarget.com/rms/onlineimages/whatis-scrum_pillars_mobile.png 960w,https://www.techtarget.com/rms/onlineimages/whatis-scrum_pillars.png 1280w" alt="The pillars of scrum" height="373" width="560"&gt;
  &lt;div class="main-article-image-enlarge"&gt;
   &lt;i class="icon" data-icon="w"&gt;&lt;/i&gt;
  &lt;/div&gt;
 &lt;/figure&gt;
 &lt;p&gt;Scrum competency requires knowledge of these concepts and activities.&lt;/p&gt;
 &lt;ul class="default-list"&gt; 
  &lt;li&gt;Daily Scrum.&lt;/li&gt; 
  &lt;li&gt;Definition of done.&lt;/li&gt; 
  &lt;li&gt;Development team.&lt;/li&gt; 
  &lt;li&gt;Increment.&lt;/li&gt; 
  &lt;li&gt;Product backlog.&lt;/li&gt; 
  &lt;li&gt;Product owner.&lt;/li&gt; 
  &lt;li&gt;Sprint.&lt;/li&gt; 
  &lt;li&gt;Sprint retrospective.&lt;/li&gt; 
  &lt;li&gt;Sprint review.&lt;/li&gt; 
  &lt;li&gt;Timeboxing.&lt;/li&gt; 
 &lt;/ul&gt;
 &lt;p&gt;The book &lt;em&gt;Essential Scrum&lt;/em&gt; by Kenneth S. Rubin is a great resource for Scrum Masters of any skill level. An Agile framework and Scrum trainer, Rubin describes &lt;a href="https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/Agile-Scrum-Process-Steps-Methodology-Sprint-Flow-Principles-Values-Pillars-Guide"&gt;the Scrum process and characteristics&lt;/a&gt; that help teams continually improve.&lt;/p&gt;
&lt;/section&gt;      
&lt;section class="section main-article-chapter" data-menu-title="2. Execution of Scrum"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;2. Execution of Scrum&lt;/h2&gt;
 &lt;p&gt;Scrum Masters must &lt;a href="https://www.theserverside.com/quiz/Tough-Scrum-Master-quiz-questions"&gt;demonstrate competency with the framework&lt;/a&gt;. A certification proves that you understand Scrum and can apply it in real-world scenarios.&lt;/p&gt;
 &lt;p&gt;&lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/Top-Scrum-certifications-Which-path-to-choose"&gt;Choose a certification path&lt;/a&gt; based on your knowledge level and job. Basic certification covers the fundamentals of the Scrum framework. An experienced Scrum Master might want to pursue advanced certification to test their abilities to apply skills to more complex projects and organizations.&lt;/p&gt;
 &lt;table class="main-article-table"&gt; 
  &lt;thead&gt; 
   &lt;tr&gt; 
    &lt;td valign="top" colspan="7"&gt; &lt;p&gt;&lt;span style="color: #ecf0f1;"&gt;&lt;strong&gt;Compare the best certifications for Scrum Masters&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/thead&gt; 
  &lt;tbody&gt; 
   &lt;tr&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;Name&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;Difficulty&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;Cost&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;Accreditations&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;Questions&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;Duration&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;Pass&lt;/p&gt; &lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;&lt;a target="_blank" href="https://www.scrum.org/assessments/professional-scrum-master-i-certification" rel="noopener"&gt;PSM I&lt;/a&gt;&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;Beginner&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;$200&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;+720,000&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;80&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;60 mins&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;85%&lt;/p&gt; &lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;&lt;a target="_blank" href="https://www.scrum.org/assessments/professional-scrum-master-ii-certification" rel="noopener"&gt;PSM II&lt;/a&gt;&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;Intermediate&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;$250&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;+52,000&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;30&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;90 mins&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;85%&lt;/p&gt; &lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;&lt;a target="_blank" href="https://www.scrum.org/assessments/professional-scrum-master-iii-certification" rel="noopener"&gt;PSM III&lt;/a&gt;&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;Expert&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;$500&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;+1,200&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;24&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;150 mins&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;Pass/Fail&lt;/p&gt; &lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;&lt;a target="_blank" href="https://www.scrum.org/assessments/scaled-professional-scrum-certification" rel="noopener"&gt;SPS&lt;/a&gt;&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;Expert&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;$250&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;+7,300&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;40&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;60 mins&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;85%&lt;/p&gt; &lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;&lt;a target="_blank" href="https://community.atlassian.com/learning/certifications/jira-software-essentials" rel="noopener"&gt;Jira&lt;/a&gt;&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;Intermediate&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;$100&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;N/A&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;30&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;60 mins&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;72%&lt;/p&gt; &lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;&lt;a target="_blank" href="https://scaledagile.com/certification/scrum-master/" rel="noopener"&gt;SAFe&lt;/a&gt;&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;Expert&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;$3000&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;N/A&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;45&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;90 mins&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;73%&lt;/p&gt; &lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;&lt;a target="_blank" href="https://d1.awsstatic.com/onedam/marketing-channels/website/aws/en_US/certification/approved/pdfs/docs-cloud-practitioner/AWS-Certified-Cloud-Practitioner_Exam-Guide.pdf" rel="noopener"&gt;AWS&lt;/a&gt;&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;Beginner&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;$100&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;+400,000&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;65&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;90 mins&lt;/p&gt; &lt;/td&gt; 
    &lt;td valign="top"&gt; &lt;p&gt;70%&lt;/p&gt; &lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt; 
 &lt;/table&gt;
 &lt;p&gt;Some certification organizations require applicants to take a course prior to the exam. The certification exams from the two dominant certifiers require passing grades to obtain the certification. CSM from the Scrum Alliance requires 37 out of 50 answers correct, or 74%. The PSM from Scrum.org requires 68 out of 80 answers correct, or 85%. Both exams run for one hour. &lt;br&gt;&lt;br&gt;Some Scrum Master certifications expire. For example, the CSM certification is only valid for two years, then needs to be renewed. The PSM, by contrast, is valid for life.&lt;/p&gt;
 &lt;p&gt;Check whether your company supports training classes under its continuing education program. If you already hold a basic Scrum Master certification, consider an advanced certification.&lt;/p&gt;
&lt;/section&gt;      
&lt;section class="section main-article-chapter" data-menu-title="3. Leadership"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;3. Leadership&lt;/h2&gt;
 &lt;p&gt;The Scrum Master is the glue between the product owner and the development team. The relationship between the Scrum Master and the product owner is key to success.&lt;/p&gt;
 &lt;p&gt;The product owner is responsible for &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/Requirements-vs-user-stories-in-software-development"&gt;user story creation&lt;/a&gt;. Then, the entire Scrum team reviews these stories to finalize, estimate and prioritize them. The Scrum Master ensures the development team fully supports story refinement, also called &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/What-productive-backlog-grooming-sessions-entail"&gt;backlog grooming&lt;/a&gt;. The product owner takes on product challenges and changes in feature prioritization. To assist the product owner, the Scrum Master informs the development team of product changes. Scrum Masters should especially highlight changes that affect work in progress during a sprint.&lt;/p&gt;
 &lt;p&gt;The Scrum Master helps the product owner by being a good leader with well-developed soft skills. A Scrum Master performs the tasks below.&lt;/p&gt;
 &lt;ul class="default-list"&gt; 
  &lt;li&gt;Holds the Scrum team accountable to the defined sprint goals.&lt;/li&gt; 
  &lt;li&gt;Implements effective product backlog management.&lt;/li&gt; 
  &lt;li&gt;Helps the Scrum team understand story grooming and estimated product backlog items.&lt;/li&gt; 
  &lt;li&gt;Arranges the product backlog to maximize value.&lt;/li&gt; 
  &lt;li&gt;Facilitates Scrum events.&lt;/li&gt; 
 &lt;/ul&gt;
 &lt;p&gt;Conflicts will arise in performing this service. Scrum Masters must be accountable, organized and build consensus throughout an organization. This will help to manage conflict effectively. Work with the team every day to help members achieve sprint goals.&lt;/p&gt;
 &lt;div class="youtube-iframe-container"&gt;
  &lt;iframe id="ytplayer-0" src="https://www.youtube.com/embed/lM38mXNBIAk?si=CdiBzfKib39tCoWP?autoplay=0&amp;amp;modestbranding=1&amp;amp;rel=0&amp;amp;widget_referrer=null&amp;amp;enablejsapi=1&amp;amp;origin=https://www.theserverside.com" type="text/html" height="360" width="640" frameborder="0"&gt;&lt;/iframe&gt;
 &lt;/div&gt;
 &lt;p&gt;Learn new skills from books about leadership. Many titles focus on leading Agile teams, but they don't have to pertain to &lt;a href="https://www.theserverside.com/tip/Agile-versus-Scrum-Whats-the-difference"&gt;Agile or Scrum&lt;/a&gt; specifically. I recommend &lt;em&gt;The Five Dysfunctions of a Team &lt;/em&gt;by Patrick Lencioni. Find a book that resonates with your personal approach to leadership.&lt;/p&gt;
 &lt;p&gt;Sharpen your leadership skills through practice. Take on a nontechnical leadership role outside of your job. Look into community volunteer opportunities, such as coaching a youth sports team. The same elements of collaboration and teamwork that win soccer games can apply to successful Agile software delivery.&lt;/p&gt;
&lt;/section&gt;         
&lt;section class="section main-article-chapter" data-menu-title="4. Collaboration"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;4. Collaboration&lt;/h2&gt;
 &lt;p&gt;Scrum Masters' responsibilities extend beyond their own development teams. To remove impediments for their teams, Scrum Masters collaborate with stakeholders and other dev teams. Some Scrum experts say this interaction falls outside of the traditional Scrum Master role, but it's necessary work, and you're the right person to do it. As a Scrum Master, use &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/How-Agile-and-DevOps-leadership-empowers-the-whole-team"&gt;leadership skills&lt;/a&gt; to collaborate across teams, negotiate schedules and facilitate technical meetings.&lt;/p&gt;
 &lt;figure class="main-article-image full-col" data-img-fullsize="https://www.techtarget.com/rms/onlineimages/software_quality-scrum_master-f.png"&gt;
  &lt;img data-src="https://www.techtarget.com/rms/onlineimages/software_quality-scrum_master-f_mobile.png" class="lazy" data-srcset="https://www.techtarget.com/rms/onlineimages/software_quality-scrum_master-f_mobile.png 960w,https://www.techtarget.com/rms/onlineimages/software_quality-scrum_master-f.png 1280w" alt="Diagram illustrating the Scrum team roles." height="485" width="560"&gt;
  &lt;figcaption&gt;
   &lt;i class="icon pictures" data-icon="z"&gt;&lt;/i&gt;A Scrum team consists of the product owner, the Scrum Master and the development team.
  &lt;/figcaption&gt;
  &lt;div class="main-article-image-enlarge"&gt;
   &lt;i class="icon" data-icon="w"&gt;&lt;/i&gt;
  &lt;/div&gt;
 &lt;/figure&gt;
&lt;/section&gt;   
&lt;section class="section main-article-chapter" data-menu-title="5. Organization"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;5. Organization&lt;/h2&gt;
 &lt;p&gt;Scrum teams require structure and planning, so Scrum Masters must facilitate a process to keep everyone on track. While a Scrum Master should be an organized individual, the role requires more than just personal management skills.&lt;/p&gt;
 &lt;p&gt;The Scrum Master needs to have honed skills in team management. A &lt;em&gt;team agreement&lt;/em&gt; is in the Scrum Master's toolbox to get everyone on the same page. The team agreement, or team operating procedure, is a document that defines procedures for the team, such as core working hours, Scrum ceremony formats, escalation paths and stakeholder involvement. The agreement is a living document; the team should modify it as the group changes. These guidelines should enable transparency across personalities and roles.&lt;/p&gt;
 &lt;p&gt;Organizational skills are also key to collaboration with the product owner on the product backlog. The Scrum master ensures team members complete their task assignments and that the overall feature is tracking to delivery. Scrum teams can use project management tools to keep the entire team connected and organized.&lt;/p&gt;
&lt;/section&gt;    
&lt;section class="section main-article-chapter" data-menu-title="6. Project management tools expertise"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;6. Project management tools expertise&lt;/h2&gt;
 &lt;p&gt;Scrum Masters should develop advanced skills on project management Kanban boards and collaboration and documentation software, including calendars.&lt;/p&gt;
 &lt;p&gt;&lt;a href="https://www.techtarget.com/searchsoftwarequality/tutorial/Project-management-tools-and-strategies-Gantt-charts-PERT-charts-and-PM-planning-tools"&gt;Task boards&lt;/a&gt; are the primary tool Scrum teams use to manage, organize and track work. Teams should be able to look at the task board and know how the sprint and project overall are tracking. Task boards are common online list-making, issue-tracking and project-management tools; options include Asana, and Atlassian's Trello and Jira.&lt;/p&gt;
 &lt;p&gt;The task board structure illustrates project workflows and the dependencies and hierarchical relationships between tasks. The Scrum Master should be able to set up the task board, establish workflows and move tasks, and help team members move tasks properly. Kanban boards are a specific type of task board.&lt;/p&gt;
 &lt;p&gt;Development teams use collaboration software for documentation and group communication throughout the development cycle. Teams capture user stories, discuss work and resolve problems. Inefficient use of messaging tools can overburden a team, interrupting the work. The Scrum Master must set guidelines, choose channels and otherwise manage these team communication tools.&lt;/p&gt;
 &lt;p&gt;The Scrum Master also runs all Scrum events. Use a calendar tool, such as Microsoft Outlook or Google Calendar -- or a calendar within the collaboration platform -- to send and manage event invites.&lt;/p&gt;
 &lt;div class="extra-info"&gt;
  &lt;div class="extra-info-inner"&gt;
   &lt;h3 class="splash-heading"&gt;Scrum master skills checklist&lt;/h3&gt; 
   &lt;ul class="default-list"&gt; 
    &lt;li&gt;Facilitates Scrum team agreement and activities: standups, backlog meetings, sprint planning, team review, retrospectives.&lt;/li&gt; 
    &lt;li&gt;Knows Scrum values, principles and practices.&lt;/li&gt; 
    &lt;li&gt;Adapts Scrum framework for team needs.&lt;/li&gt; 
    &lt;li&gt;Coordinates with other teams and stakeholders.&lt;/li&gt; 
    &lt;li&gt;Understands the technical product and processes.&lt;/li&gt; 
    &lt;li&gt;Resolves issues and removes impediments.&lt;/li&gt; 
    &lt;li&gt;Communicates and listens well.&lt;/li&gt; 
    &lt;li&gt;Collaborates with groups and organizes team tasks.&lt;/li&gt; 
    &lt;li&gt;Coaches colleagues to success.&lt;/li&gt; 
    &lt;li&gt;Adapts to change.&lt;/li&gt; 
   &lt;/ul&gt;
  &lt;/div&gt;
 &lt;/div&gt;
&lt;/section&gt;       
&lt;section class="section main-article-chapter" data-menu-title="7. Agile and software development knowledge"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;7. Agile and software development knowledge&lt;/h2&gt;
 &lt;p&gt;At its core, Scrum helps software development teams build products adaptively. Technical knowledge on how to develop software in an Agile environment can help Scrum Masters move teams ahead with the proper tools and techniques.&lt;/p&gt;
 &lt;p&gt;Scrum Masters should be familiar with the technical product under development and with the development tool suite. A Scrum Master does not need to be able to write software. However, a high level understanding of the product's technical features and use cases is essential to effectively run the Scrum project.&lt;/p&gt;
 &lt;p&gt;Scrum Masters can even participate in end-to-end acceptance testing of the product.&lt;/p&gt;
&lt;/section&gt;    
&lt;section class="section main-article-chapter" data-menu-title="8. Listening"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;8. Listening&lt;/h2&gt;
 &lt;p&gt;Be a good leader, which starts with being a good listener; consider the &lt;a href="https://www.techtarget.com/searchcio/definition/Servant-Leadership"&gt;servant leader&lt;/a&gt; model. Listening is a must-have Scrum Master skill. Pay close attention at daily standups, backlog meetings, sprint planning, team review and the retrospective. Hear where issues arise, raise awareness of them and lead the team to a resolution.&lt;/p&gt;
&lt;/section&gt;  
&lt;section class="section main-article-chapter" data-menu-title="9. Adaptability"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;9. Adaptability&lt;/h2&gt;
 &lt;p&gt;Many Scrum Masters fixate on following the framework. Instead, think of Scrum as a foundational tool rather than the goal. The Agile methodology centers upon the concept of change, and the framework and processes necessary to manage change. The Scrum framework must adapt to best support the team. Every team executes Scrum ceremonies but works differently from others.&lt;/p&gt;
&lt;/section&gt;  
&lt;section class="section main-article-chapter" data-menu-title="10. Risk management"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;10. Risk management&lt;/h2&gt;
 &lt;p&gt;The Scrum Master should be knowledgeable in &lt;a href="https://www.techtarget.com/searchcio/feature/Top-12-risk-management-skills-and-why-you-need-them"&gt;common processes to manage risk&lt;/a&gt;. They can facilitate that process, from risk identification through mitigation and monitoring.&lt;/p&gt;
 &lt;p&gt;Some risks are related to process, skills or &lt;a href="https://www.techtarget.com/searchcio/feature/Key-technical-debt-reduction-strategies"&gt;technical debt&lt;/a&gt;. All projects accept some level of debt. However, during development, issues can arise that are impediments to tasks. These issues might result in risks that add to quality, feature or UX debt. The Scrum Master helps to identify dangers, and works with the development team to analyze, rank and communicate them. This skill helps the product owner and stakeholders make decisions to best mitigate or reduce the risk.&lt;/p&gt;
 &lt;p&gt;A Scrum Master who learns, leads and listens, and applies their knowledge of processes, associated tools and team dynamics where needed, is in the right position to &lt;a href="https://www.techtarget.com/searchcio/feature/career-advice-for-aspiring-cios-5-tips"&gt;make the team run efficiently&lt;/a&gt;. These Scrum Master skills support rapid, predictable delivery at every iteration. That kind of high-quality software delivery is ultimately why the team chose Scrum.&lt;/p&gt;
 &lt;p&gt;&lt;i&gt;Diane Hoffman is the principal consultant at Intelopment Group LLC. Her areas of expertise include Agile software development and project management.&lt;/i&gt;&lt;/p&gt;
&lt;/section&gt;</body>
            <description>From sprint planning to servant leadership, Scrum Masters help Agile developers, product owners and other team members perform at their best. Here's what makes a good Scrum Master.</description>
            <image>https://cdn.ttgtmedia.com/rms/onlineimages/maze_g1261411056.jpg</image>
            <link>https://www.techtarget.com/searchsoftwarequality/tip/Why-essential-Scrum-Master-skills-are-elementary</link>
            <pubDate>Tue, 02 Sep 2025 10:44:00 GMT</pubDate>
            <title>10 essential Scrum Master skills in 2025</title>
        </item>
        <item>
            <body>&lt;p&gt;A comprehensive set of requirements is crucial for any software project.&lt;/p&gt; 
&lt;p&gt;Requirements identify the product's business needs and purposes at a high level. They also clarify the features, functionality, behaviors and performance that stakeholders expect.&lt;/p&gt; 
&lt;p&gt;Software requirements are a way to identify and clarify the why, what and how of a business's application. When researched and documented properly, software requirements form a roadmap that leads a development team to build the right product quickly with &lt;a href="https://www.techtarget.com/searchcio/feature/The-negative-impact-of-technical-debt"&gt;minimal costly rework&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;The actual types of software requirements and documents an IT organization produces for a given project depend on the audience and the maturity of the project. In fact, organizations often draft several requirements documents, each to suit the specific needs of business leaders, project managers and application developers.&lt;/p&gt; 
&lt;p&gt;Let's start with a look at the main types of requirements in software engineering: business requirements, user requirements, and software requirements. Then, explore common &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/A-guide-to-software-design-documentation-and-specifications"&gt;types of software requirements documentation&lt;/a&gt;, as well as tried-and-true characteristics for defining requirements.&lt;/p&gt; 
&lt;figure class="main-article-image full-col" data-img-fullsize="https://www.theserverside.com/rms/onlineImages/software_quality-types_software_requirements-f.png"&gt;
 &lt;img data-src="https://www.theserverside.com/rms/onlineImages/software_quality-types_software_requirements-f_mobile.png" class="lazy" data-srcset="https://www.theserverside.com/rms/onlineImages/software_quality-types_software_requirements-f_mobile.png 960w,https://www.theserverside.com/rms/onlineImages/software_quality-types_software_requirements-f.png 1280w" alt="An image depicting the different types of software requirements." height="288" width="559"&gt;
 &lt;figcaption&gt;
  &lt;i class="icon pictures" data-icon="z"&gt;&lt;/i&gt;A software project includes business, user and software requirements.
 &lt;/figcaption&gt;
 &lt;div class="main-article-image-enlarge"&gt;
  &lt;i class="icon" data-icon="w"&gt;&lt;/i&gt;
 &lt;/div&gt;
&lt;/figure&gt; 
&lt;section class="section main-article-chapter" data-menu-title="What are the different types of requirements in software engineering?"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;What are the different types of requirements in software engineering?&lt;/h2&gt;
 &lt;p&gt;Teams must outline requirements to meet the needs of business stakeholders and users as well as the more technical features of the software. The three main types of requirements in software engineering are business, user and software.&lt;/p&gt;
 &lt;h3&gt;Business requirements&lt;/h3&gt;
 &lt;p&gt;Business needs drive many software projects. A business requirements document (BRD) outlines measurable project goals for the business, users and other stakeholders. Business analysts, leaders and other project sponsors create the BRD at the start of the project. This document defines the why behind the build. For software development contractors, the BRD also serves as the basis for more detailed document preparation with clients.&lt;/p&gt;
 &lt;p&gt;A BRD is composed of one or more statements. No universally established format exists for BRD statements, but one common approach is to align goals. Write statements that match a project goal to a measurable stakeholder or business goal.&lt;/p&gt;
 &lt;p&gt;The basic format of a BRD statement is&lt;i&gt;, &lt;/i&gt;"The [project name] software will [meet a business goal] in order to [realize a business benefit]." An example of a completed BRD statement is,&lt;i&gt; &lt;/i&gt;"The laser marking software will allow the manufacturing floor to mark text and images on stainless steel components using a suitable laser beam in order to save money in chemical etching and disposal costs."&lt;/p&gt;
 &lt;p&gt;For this example, the purpose of the proposed software project is to operate an industrial laser marking system to mark stainless steel product parts, which is an alternative to costly and environmentally dangerous chemicals.&lt;/p&gt;
 &lt;p&gt;Business goals and benefits can be varied and sometimes interchangeable. Common business goals and benefits can include the following:&lt;/p&gt;
 &lt;ul class="default-list"&gt; 
  &lt;li&gt;Achieve a specific technical outcome, such as implementing a new technology.&lt;/li&gt; 
  &lt;li&gt;Achieve a specific logistical outcome, such as faster time-to-market.&lt;/li&gt; 
  &lt;li&gt;Increase market share or revenue, which facilitates business growth.&lt;/li&gt; 
  &lt;li&gt;&lt;a href="https://www.techtarget.com/searchcustomerexperience/tip/Customer-experience-strategy-tips-to-build-a-valuable-CX"&gt;Improve customer experience&lt;/a&gt;, satisfaction or relationships.&lt;/li&gt; 
  &lt;li&gt;Strengthen business continuance, security or compliance postures.&lt;/li&gt; 
  &lt;li&gt;Increase business productivity or efficiency, such as automating manual processes.&lt;/li&gt; 
  &lt;li&gt;Build the business's brand.&lt;/li&gt; 
  &lt;li&gt;Manage or reduce costs.&lt;/li&gt; 
  &lt;li&gt;Increase website traffic.&lt;/li&gt; 
  &lt;li&gt;Increase social media presence.&lt;/li&gt; 
 &lt;/ul&gt;
 &lt;p&gt;Organizations &lt;a href="https://www.techtarget.com/searchsoftwarequality/answer/Does-Agile-use-business-requirements-documents"&gt;prepare a BRD&lt;/a&gt; as a foundation for subsequent, more detailed requirements documents. Ensure that the BRD reflects a complete set of practical and measurable goals as well as meets customer expectations.&lt;/p&gt;
 &lt;p&gt;Finally, the BRD should be a living document. Evaluate any future requirements, updates or &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/How-to-tame-ever-changing-requirements-in-software-development"&gt;changes to the project&lt;/a&gt; against the BRD to ensure that the organization's goals are still met.&lt;/p&gt;
 &lt;h3&gt;User requirements&lt;/h3&gt;
 &lt;p&gt;User requirements reflect the specific needs or expectations of the software's customers. Organizations sometimes incorporate these requirements into a BRD, but an application that poses extensive user functionality or complex UI issues might justify a separate document specific to the needs of the intended user. User requirements, much like user stories, highlight the ways in which customers interact with software.&lt;/p&gt;
 &lt;p&gt;There is no universally accepted standard for user requirements statements, but this is one common format:&lt;i&gt; &lt;/i&gt;"The [user type] shall [interact with the software] in order to [meet a business goal or achieve a result]."&lt;/p&gt;
 &lt;p&gt;A user requirement in that mold for the industrial laser marking software example looks like:&lt;i&gt; &lt;/i&gt;"The production floor manager shall be able to upload new marking files as needed in order to maintain a current and complete library of laser marking images for production use."&lt;/p&gt;
 &lt;p&gt;There might be many user requirements for any software project, each reflecting an expectation, goal or user story. In most cases, user requirements are high-level goals that &lt;a href="https://www.techtarget.com/searchsoftwarequality/answer/What-is-the-difference-between-a-user-story-and-use-case-in-software-testing"&gt;reflect what the software should be able to do&lt;/a&gt;. They typically avoid any technical details related to how they accomplish the goals. User requirements frequently form the foundation for specific software requirements.&lt;/p&gt;
 &lt;h3&gt;Software requirements&lt;/h3&gt;
 &lt;p&gt;After the BRD outlines the business goals and benefits of a project, the team should devise a software requirements specification (&lt;a href="https://www.techtarget.com/searchsoftwarequality/definition/software-requirements-specification"&gt;SRS&lt;/a&gt;) that identifies the specific features, functions, nonfunctional requirements and requisite use cases for the software. Essentially, the SRS details what the software will do. It expands upon or translates the BRD and user requirements into features and functions that developers can understand and implement.&lt;/p&gt;
 &lt;p&gt;Software requirements typically break down into functional requirements, nonfunctional requirements (NFRs) and domain requirements.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Functional requirements.&lt;/b&gt; Functional requirements are statements or goals that teams use to define system behavior. Functional requirements define what a software system must or must not do. They are typically expressed as responses -- interactions or outputs -- generated in response to inputs or conditions. Common functional requirements include data input, data access, user authentication, alerting and reporting, online payments and integrations with other software.&lt;/p&gt;
 &lt;p&gt;A functional requirement can express an if/then relationship, as in the following example:&lt;i&gt; &lt;/i&gt;"If an alarm is received from a sensor, the system will report the alarm and halt until the alarm is acknowledged and cleared."&lt;/p&gt;
 &lt;p&gt;Functional requirements might detail specific types of data inputs or operational constraints such as names, addresses, dimensions and distances. These requirements often include an array of calculations vital to the software working correctly.&lt;/p&gt;
 &lt;p&gt;Functional requirements are &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/Common-functional-testing-types-explained-with-examples"&gt;relatively straightforward to test&lt;/a&gt; because they define how the system behaves. A test fails when the system does not function as expected.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;NFRs.&lt;/b&gt; Nonfunctional requirements relate to software usability. Nonfunctional software requirements define how the system must operate or perform. A system can meet its functional requirements and fail to meet its nonfunctional requirements.&lt;/p&gt;
 &lt;p&gt;NFRs define the software's characteristics and expected user experience (UX). They cover the following:&lt;/p&gt;
 &lt;ul class="default-list"&gt; 
  &lt;li&gt;&lt;b&gt;Performance.&lt;/b&gt; This measures how quickly the software should respond or render an output.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Usability.&lt;/b&gt; The level of difficulty that users experience in understanding or using a UI or software system.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Scalability.&lt;/b&gt; The software's ability to handle more simultaneous users or transactions.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Security.&lt;/b&gt; The ways in which the software safeguards processing and data against loss or theft.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Maintainability.&lt;/b&gt; The ability of the software to be patched or upgraded over time.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Compatibility.&lt;/b&gt; Compatibility involves the hardware, OS and other platform requirements for the software.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Portability.&lt;/b&gt; The ability of the software to operate on different systems or platforms.&lt;/li&gt; 
 &lt;/ul&gt;
 &lt;p&gt;An example nonfunctional requirement related to performance and UX could be, "The pages of this web portal must load within 0.5 seconds."&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Domain requirements.&lt;/b&gt; Domain requirements are expectations related to a particular type of software, purpose or industry vertical. Domain requirements &lt;a href="https://www.techtarget.com/searchsoftwarequality/answer/Functional-and-nonfunctional-requirements"&gt;can be functional or nonfunctional&lt;/a&gt;. The common factor for domain requirements is that they meet established standards or widely accepted feature sets for that category of software project.&lt;/p&gt;
 &lt;p&gt;Domain requirements can vary wildly but typically arise in military, medical and financial industry sectors. An example of a domain requirement for software in medical equipment is,&lt;i&gt; "&lt;/i&gt;The software must be developed in accordance with IEC 60601 regarding the basic safety and performance for medical electrical equipment."&lt;/p&gt;
 &lt;p&gt;Another example of a domain requirement for the financial industry is, "The software should adhere to current &lt;a href="https://www.techtarget.com/whatis/definition/GAAP-generally-accepted-accounting-principlestemp"&gt;Generally Accepted Accounting Principles&lt;/a&gt; standards for financial accounting and reporting."&lt;/p&gt;
 &lt;p&gt;Software can be functional and usable but not acceptable for production because it fails to meet domain requirements.&lt;/p&gt;
&lt;/section&gt;                               
&lt;section class="section main-article-chapter" data-menu-title="Examples of requirements in software documentation"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Examples of requirements in software documentation&lt;/h2&gt;
 &lt;p&gt;An SRS often describes the software as a series of individual functional modules. In the laser marking software example, an SRS could define the following modules:&lt;/p&gt;
 &lt;ul class="default-list"&gt; 
  &lt;li&gt;The interface that translates marking image files into control signals for the laser beam.&lt;/li&gt; 
  &lt;li&gt;A UI that enables an operator to log in, select products from a library and start or stop marking cycles.&lt;/li&gt; 
  &lt;li&gt;A test mode to calibrate the system.&lt;/li&gt; 
 &lt;/ul&gt;
 &lt;p&gt;There are some industry standards for an SRS, such as &lt;a target="_blank" href="https://standards.ieee.org/standard/29148-2018.html" rel="noopener"&gt;ISO/IEC/IEEE 29148:2018&lt;/a&gt;, but organizations can still use a different preferred format for SRS statements. One common approach is,&lt;i&gt; &lt;/i&gt;"The [feature or function] shall [do something based on user inputs and provide corresponding outputs]."&lt;/p&gt;
 &lt;p&gt;A few software requirements related to the laser marking system example might include the following:&lt;/p&gt;
 &lt;ul class="default-list"&gt; 
  &lt;li&gt;"The laser marking operation shall translate AutoCAD-type vector graphics files into laser on/off control signals as well as X and Y mirror control signals used to operate the laser system."&lt;/li&gt; 
  &lt;li&gt;"The software provides visual feedback to the operator, who shall be able to track the current state of the marking cycle overlaid on a graphic product image displayed on a nearby monitor in real time."&lt;/li&gt; 
 &lt;/ul&gt;
 &lt;p&gt;In addition to functional requirements, an SRS often includes nonfunctional requirements that identify attributes of the system or the operational environment. These influence key system design decisions regarding usability, security, availability, capacity, reliability and compliance. They dictate development decisions and design requirements for the software, like password change frequency, data protection settings and login details.&lt;/p&gt;
 &lt;p&gt;A systems analyst or product manager typically &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/Document-software-requirements-now-avoid-a-mess-later"&gt;puts together an SRS&lt;/a&gt; in collaboration with relevant stakeholders, such as the developer staff and business leaders. Ideally, every requirement delineated in an SRS should correspond with the business objectives that a BRD outlines. For third-party software contractors, the completed SRS provides the basis for cost estimation and contract compliance.&lt;/p&gt;
 &lt;p&gt;While the SRS typically includes functional and nonfunctional requirements, some organizations might differentiate between an SRS and a functional requirements specification. In these cases, the FRS serves as a separate document and delves into the how of a software product. An FRS often stipulates all of the fields and user interactions throughout the entire software product.&lt;/p&gt;
 &lt;figure class="main-article-image full-col" data-img-fullsize="https://www.theserverside.com/rms/onlineimages/whatis-functional_specification-f.png"&gt;
  &lt;img data-src="https://www.theserverside.com/rms/onlineimages/whatis-functional_specification-f_mobile.png" class="lazy" data-srcset="https://www.theserverside.com/rms/onlineimages/whatis-functional_specification-f_mobile.png 960w,https://www.theserverside.com/rms/onlineimages/whatis-functional_specification-f.png 1280w" alt="Image outlining instructions for writing a functional specifications document." height="374" width="560"&gt;
  &lt;figcaption&gt;
   &lt;i class="icon pictures" data-icon="z"&gt;&lt;/i&gt;How to outline functional specifications.
  &lt;/figcaption&gt;
  &lt;div class="main-article-image-enlarge"&gt;
   &lt;i class="icon" data-icon="w"&gt;&lt;/i&gt;
  &lt;/div&gt;
 &lt;/figure&gt;
&lt;/section&gt;          
&lt;section class="section main-article-chapter" data-menu-title="Characteristics of good software requirements"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Characteristics of good software requirements&lt;/h2&gt;
 &lt;p&gt;All types of software requirements require significant prep work and elicitation from stakeholders as part of the product development process. Additionally, such efforts force organizations to think about why they undertake a project, what the software product should provide and how it will accomplish the desired goals. Requirements documents are a foundation upon which teams conceive, propose, budget and implement a software development project.&lt;/p&gt;
 &lt;blockquote class="main-article-pullquote"&gt;
  &lt;div class="main-article-pullquote-inner"&gt;
   &lt;figure&gt;
    When researched and documented properly, software requirements form a roadmap that leads a development team to build the right product quickly and with minimal costly rework.
   &lt;/figure&gt;
   &lt;i class="icon" data-icon="z"&gt;&lt;/i&gt;
  &lt;/div&gt;
 &lt;/blockquote&gt;
 &lt;p&gt;Consequently, requirements can have a profound impact on software development and business outcomes for months or even years. Prudent consideration and intellectual investment up front can improve software quality and business outcomes dramatically.&lt;/p&gt;
 &lt;p&gt;Teams should ensure software requirements embody the following eight characteristics.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Clear and understandable&lt;/b&gt;. Software requirements must provide the utmost clarity. &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/How-to-write-and-structure-worthwhile-SRS-documentation"&gt;Write requirements&lt;/a&gt; in plain language, free of domain-specific terms and jargon. Clear and concise statements make requirements documents easy to evaluate for subsequent characteristics during analysis and review.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Correct and complete&lt;/b&gt;. The document should accurately detail all requirements. If it's a BRD, the document should detail all business goals and benefits. If it's an SRS, it should describe all features and functionality expected from the system. Use an easily readable format and go back to finish any to-be-determined entries. It rarely falls on one person to deliver a correct and complete software requirements document. Involve all relevant parties -- business leaders, project managers, development staff, customers, and even users -- in careful and ongoing requirements collaboration.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Consistent, not redundant&lt;/b&gt;. Software requirements documents are often long and divided into multiple parts, each with specific requirements. Consistent requirements have no conflicts, such as differences in time, distance or terminology. For example, the difference between server and system might confuse some team members, so use only one to refer to the physical machine in the data center running the software. Only state a requirement once; don't duplicate it. Redundant requirements often lead to errors if the team changes or updates an iteration and the manager forgets to change or update repeated entries elsewhere in the document.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Unambiguous&lt;/b&gt;. No software requirement can leave room for interpretation. Even clear statements can still be subject to multiple interpretations, which leads to implementation oversights. For example, it might be clear to require that a function, such as a mathematical process, should be performed on a temperature measurement. But a requirement must specify the temperature measurement as degrees in Fahrenheit, Celsius or Kelvin. Phrase each statement so that there is only one possible interpretation. Collaboration and peer reviews ensure unambiguous requirements documentation.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Design agnostic&lt;/b&gt;. Software requirements documents should illustrate a result. Like an &lt;a href="https://www.techtarget.com/searchapparchitecture/infographic/Serverless-architecture-diagram-shows-a-new-side-of-server-side"&gt;architectural diagram&lt;/a&gt;, the different types of requirements together detail what the development team should build and why but rarely explain how. Empower developers to select from various design options during the implementation phase of the software project. Don't stipulate specific implementation details unless they're necessary to satisfy business goals. A business might, for example, prohibit developers from using open-source components in a project, as the approach conflicts with its ability to sell or license the finished project.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Measurable and testable&lt;/b&gt;. The goal of a requirements document is to provide a roadmap for implementation. Eventually, teams must evaluate a completed project to determine whether the effort is successful -- for this, they must be able to objectively measure statements. For example, a requirement such as "must start quickly" is not measurable. Instead, use a quantifiable requirement such as "must initialize and be ready to accept network traffic within five seconds." This characteristic is particularly important for software subcontractors' work as unmeasurable statements can lead to cycles of costly rework. Prepare a software requirements document with testing in mind. Each statement should enable the team to &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/How-to-write-test-cases-one-component-at-a-time"&gt;create test plans and test cases&lt;/a&gt; that validate the completed build.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Traceable&lt;/b&gt;. It's hard to know when developers are done with a software project. Ideally, there is a direct connection between requirements documents and finished code. A project manager should be able to follow the provenance of a project from a requirement to a design element to a code segment and even to a test case or protocol. When a requirement does not trace to the finished code, the development team might not implement it, and the project could be incomplete. Code that is present without a corresponding requirement might be superfluous or even malicious. Conversely, when a project manager sees all requirements reflected in the finished code and it passes testing, the project is complete.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Managed document.&lt;/b&gt; Most software design documents are living and evolving entities that can change over time, sometimes frequently, through collaboration and review. Organizations often opt to manage design documents through an annotated version control system, which is similar to the system that manages the software versions in development. Version management helps ensure that every developer and project stakeholder is referring to the same document version for discussion and implementation. Version updates are generally circulated to the project team on a regular basis and made available through team sharing and collaboration tools.&lt;/p&gt;
 &lt;p&gt;&lt;i&gt;Stephen J. Bigelow, senior technology editor at Informa TechTarget, has more than 20 years of technical writing experience in the PC and technology industry.&lt;/i&gt;&lt;/p&gt;
&lt;/section&gt;</body>
            <description>Requirements fall into three categories: business, user and software. See examples of each one, as well as what constitutes functional and nonfunctional software requirements.</description>
            <image>https://cdn.ttgtmedia.com/rms/onlineimages/check_g1255870711.jpg</image>
            <link>https://www.techtarget.com/searchsoftwarequality/answer/What-are-requirements-types</link>
            <pubDate>Tue, 02 Sep 2025 00:00:00 GMT</pubDate>
            <title>What are the types of requirements in software engineering?</title>
        </item>
        <item>
            <body>&lt;p&gt;AI agents can sling code faster than any human can, although they need some oversight as a junior programmer would. Watch my recent walkthrough of &lt;a href="https://www.theserverside.com/tutorial/Vibe-coding-tutorial-with-Replit-and-GitHub-Copilot"&gt;vibe coding with Replit and GitHub Copilot&lt;/a&gt; and you'll see for yourself.&lt;/p&gt; 
&lt;p&gt;The question becomes: If not slinging code, what else &lt;i&gt;will&lt;/i&gt; human programmers do? The following examples explore how developers can survive when vibe coding becomes a commonplace practice.&lt;/p&gt; 
&lt;section class="section main-article-chapter" data-menu-title="Determine which programming languages and frameworks to use"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Determine which programming languages and frameworks to use&lt;/h2&gt;
 &lt;p&gt;An AI agent such as Replit or GitHub Copilot can only do what it's told to do. Basic decisions about which language or coding framework to use remain in the developer's hands, although a developer can ask the AI agent to suggest a specific language for a given use case.&lt;/p&gt;
 &lt;p&gt;For now, and the foreseeable future, the final decision of programming languages and frameworks rests with the developer and the enterprise's technical management. They must understand the benefits and tradeoffs of programming languages and make informed decisions about when and how to use them accordingly.&lt;/p&gt;
&lt;/section&gt;   
&lt;section class="section main-article-chapter" data-menu-title="Think creatively about software development and architecture"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Think creatively about software development and architecture&lt;/h2&gt;
 &lt;p&gt;AI is very good at replicating patterns, because the models that drive AI process existing information. However, AI tends to run into problems when it tries to imagine new things. If it hasn't been done before, AI is going to have a hard time doing it.&lt;/p&gt;
 &lt;p&gt;AI itself confirms this assertion. Recently, I posed a question to the Perplexity AI chatbot: &lt;i&gt;Would it have been possible for AI to create a programming framework, such as object-oriented programming, before the framework existed?&lt;/i&gt; Here is the final paragraph of &lt;a target="_blank" href="https://www.perplexity.ai/search/would-it-have-been-possible-fo-z2rHQfqqSRi4oi0tWEH6JA" rel="noopener"&gt;its very long answer&lt;/a&gt;:&lt;/p&gt;
 &lt;blockquote&gt;
  In summary, 
  &lt;b&gt;with the state of AI at the time object-oriented programming was invented, &lt;/b&gt;
  &lt;b&gt;it would not have been possible for AI to create such a framework&lt;/b&gt;. Today's AI, while capable of generating code and suggesting improvements, still builds on existing paradigms and data -- not inventing entirely novel ones from a blank slate.
 &lt;/blockquote&gt;
 &lt;p&gt;One thing humans are particularly skilled at versus intelligent machines and AI is imagination. So, developers must think up things that have never existed before. &lt;a href="https://www.theserverside.com/tip/Abstract-pattern-recognition-skills-aid-developers-and-musicians"&gt;Creativity is transferable&lt;/a&gt; to a wide variety of endeavors, even software development.&lt;/p&gt;
 &lt;p&gt;Creativity is also a capability that must be nurtured and strengthened through exercise. Engage in a broad range of creative activities, such as learning to cook new cuisines, woodworking or writing poetry.&lt;/p&gt;
 &lt;p&gt;Human intelligence and imagination came together to look at a motorcycle and a pair of skis and see the idea of a snowmobile. It will take some time before AI agents are able to perform at that level.&lt;/p&gt;
&lt;/section&gt;       
&lt;section class="section main-article-chapter" data-menu-title="See the bigger picture"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;See the bigger picture&lt;/h2&gt;
 &lt;p&gt;Slinging code and identifying and fixing errors is the bread and butter of entry-level and maintenance programmers -- and it will be turned over to AI agents as soon as possible. They are less costly than human programmers (calculated by hardware and electricity usage), they don't complain, they don't need vacations and they don't have personality foibles to be accommodated.&lt;/p&gt;
 &lt;p&gt;AI agents, however, cannot do everything that a human developer can, at least for the foreseeable future. Therefore, developers need to think about tomorrow's technology landscape and focus on large-scale architectural design and implementations. Further into the future, developers must devise innovative processes and technologies to address needs not yet envisioned.&lt;/p&gt;
&lt;/section&gt;   
&lt;section class="section main-article-chapter" data-menu-title="Hone your analytical skills"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Hone your analytical skills&lt;/h2&gt;
 &lt;p&gt;Developers also must possess Ph.D.-level capabilities to create new knowledge for others to use. This means extraordinary analytical skills and the ability to synthesize a wide variety of facts and situations into something new. Sadly, those advanced thinking skills are currently confined to a small portion of the population. This should change in general society and absolutely must in software development.&lt;/p&gt;
 &lt;p&gt;Moving forward, more people will need these capabilities to participate in the world of modern software development. The ability to think with an extraordinary level of creativity, which AI cannot, will be essential.&lt;/p&gt;
 &lt;p&gt;&lt;i&gt;Bob Reselman is a software developer, system architect and writer. His expertise ranges from software development technologies to techniques and culture.&lt;/i&gt;&lt;/p&gt;
&lt;/section&gt;</body>
            <description>Programmers can stay a step ahead of AI agents and vibe coding by focusing on four areas: precise AI prompts, a broad architectural perspective, keen analysis and imagination.</description>
            <image>https://cdn.ttgtmedia.com/rms/onlineimages/code_g1019737194.jpg</image>
            <link>https://www.theserverside.com/tip/Developers-and-vibe-coding-Survival-tips-in-the-AI-age</link>
            <pubDate>Tue, 26 Aug 2025 14:25:00 GMT</pubDate>
            <title>Developers and vibe coding: 4 survival tips in the AI age</title>
        </item>
        <item>
            <body>&lt;p&gt;Skilled quality assurance analysts exhibit an inexhaustible curiosity that drives their work. Software testing is one of the few professions where people get paid to find out how something is supposed to work, then immediately try to break it -- and get praised for their efforts when they do.&lt;/p&gt; 
&lt;p&gt;To get ahead in this somewhat wacky profession, &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/Ten-skills-of-highly-effective-software-testers"&gt;software testers must get serious about setting goals&lt;/a&gt;. Cultivate a passion for understanding how things work; that's a smart goal for QA analysts from the very start of their careers.&lt;/p&gt; 
&lt;p&gt;Every &lt;a href="https://www.techtarget.com/searchsoftwarequality/opinion/5-software-testing-books-QA-professionals-should-dig-into"&gt;QA analyst should learn more&lt;/a&gt; about how and why things work, especially things that have nothing to do with computers and software. Ever wonder how mechanical cash registers kept a running tally of the day's sales? How were telephones connected using a patch panel matrix through a switchboard? These are great questions for testers to ponder and research. With that background, it becomes clearer how computers and the software that instructs them improved upon sales tracking, or how communication circuits can be established without human intervention.&lt;/p&gt; 
&lt;p&gt;Curiosity is one thing, but &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/13-common-QA-interview-questions-and-answers"&gt;advancement on a career path&lt;/a&gt; is another. Read on for five &lt;a href="https://www.techtarget.com/whatis/definition/SMART-SMART-goals"&gt;SMART&lt;/a&gt; goals a tester can target to stand out.&lt;/p&gt; 
&lt;section class="section main-article-chapter" data-menu-title="What are SMART goals?"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;What are SMART goals?&lt;/h2&gt;
 &lt;p&gt;The SMART goals framework helps those who employ it set meaningful, realistic goals. To set SMART goals as a QA analyst, first learn what a SMART goal consists of:&lt;/p&gt;
 &lt;ul class="default-list"&gt; 
  &lt;li&gt;&lt;b&gt;Specific. &lt;/b&gt;Goals in this framework should be as specific, clear and focused as possible. Ambiguous goals leave margin for distraction or waste.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Measurable. &lt;/b&gt;A measurable goal provides information that lets teams track progress and gives concrete benchmarks for achievement.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Achievable. &lt;/b&gt;A SMART goal is achievable -- completing it within the allotted time frame is possible.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Relevant. &lt;/b&gt;The goal should align with the broader objectives of the team and organization.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Time-bound. &lt;/b&gt;The goal should have a target end date.&lt;/li&gt; 
 &lt;/ul&gt;
 &lt;figure class="main-article-image full-col" data-img-fullsize="https://www.techtarget.com/rms/onlineimages/what_does_smart_mean-f.png"&gt;
  &lt;img data-src="https://www.techtarget.com/rms/onlineimages/what_does_smart_mean-f_mobile.png" class="lazy" data-srcset="https://www.techtarget.com/rms/onlineimages/what_does_smart_mean-f_mobile.png 960w,https://www.techtarget.com/rms/onlineimages/what_does_smart_mean-f.png 1280w" alt="Diagram of the SMART goals framework" height="274" width="559"&gt;
  &lt;figcaption&gt;
   &lt;i class="icon pictures" data-icon="z"&gt;&lt;/i&gt;The SMART framework helps teams in any discipline ensure they're setting valuable goals.
  &lt;/figcaption&gt;
  &lt;div class="main-article-image-enlarge"&gt;
   &lt;i class="icon" data-icon="w"&gt;&lt;/i&gt;
  &lt;/div&gt;
 &lt;/figure&gt;
&lt;/section&gt;    
&lt;section class="section main-article-chapter" data-menu-title="5 SMART goals for QA analysts"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;5 SMART goals for QA analysts&lt;/h2&gt;
 &lt;p&gt;With a basic understanding of the SMART framework, consider these five example SMART goals for QA analysts.&lt;/p&gt;
 &lt;h3&gt;1. Get indoctrinated in business process mapping&lt;/h3&gt;
 &lt;p&gt;This SMART objective is easier said than done, but worth the effort.&lt;/p&gt;
 &lt;p&gt;For starters, lobby the test lead or QA management to spend time in the trenches. When testers spend time with business users who help work flow from input to output, both sides can learn from the experience. Understand the data that higher management needs to &lt;a href="https://www.techtarget.com/searchbusinessanalytics/feature/6-big-data-benefits-for-businesses"&gt;make sound business decisions&lt;/a&gt; and know when it's safe to hand off work from one team member to another.&lt;/p&gt;
 &lt;p&gt;Don't just observe. Ask lots of questions about what constitutes individual units of work and how business users would like to see them improved.&lt;/p&gt;
 &lt;div class="extra-info"&gt;
  &lt;div class="extra-info-inner"&gt;
   &lt;h3 class="splash-heading"&gt;10 testing techniques for QA professionals&lt;/h3&gt; 
   &lt;p&gt;Software testers, embrace your creative and fearless side and learn &lt;a href="https://www.techtarget.com/searchsoftwarequality/pro/10-Exploratory-Testing-Techniques-for-QA-Professionals?utm_source=widget&amp;amp;utm_medium=download&amp;amp;Offer=OTHR-Widget_OTHR-DLO_OTHR-Offer_2021May10_QATesting"&gt;how to do exploratory testing&lt;/a&gt; with approaches for QA professionals of all skill levels.&lt;/p&gt;
  &lt;/div&gt;
 &lt;/div&gt;
 &lt;p&gt;Use a &lt;a href="https://www.techtarget.com/searchapparchitecture/tip/A-review-of-top-software-architecture-visualization-tools"&gt;flow chart tool&lt;/a&gt;, such as Visio or Lucidchart, to create diagrams that highlight where key business decisions are made. Detail these decisions in terms that will help the development or test team later, automating a manual task or improving an existing algorithm, for example.&lt;/p&gt;
 &lt;p&gt;This work is akin to what a business analyst might do, but it's also a worthy goal for a QA analyst. The tester's objective here is to become as much of a business subject matter expert as possible in how work is done in the organization. When creating test scenarios, they can determine what's in the software's critical path versus an &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/The-importance-of-edge-case-testing-When-to-fix-the-bug"&gt;edge or corner case&lt;/a&gt;.&lt;/p&gt;
 &lt;p&gt;It might not be possible to shadow software's end users as they toil through the day, but learn any standard operating procedures that might be lying around. If no documentation for these procedures exists, draft some with an eye toward a QA audience. Ask why something is done a certain way, not how it is done.&lt;/p&gt;
 &lt;p&gt;It's difficult to measure this individual goal. It's all about gaining an overall knowledge of how processes work on the business side. Understanding this bigger picture will yield better test scenarios, rather than simply improving test execution steps. One way to measure this goal is to see whether a tester can fill in for someone on the business side in an emergency or stand in for one during code deployment verification. The team could theoretically use the key performance indicators for that specific process to measure the QA analyst's performance as a stand-in. Trying to review or validate this measurement might result in a point of diminishing return, however&lt;/p&gt;
 &lt;h3&gt;2. Understand the basics of programming logic&lt;/h3&gt;
 &lt;p&gt;Though it's not a critical requirement for QA analysts, coding proficiency can help to keep up with changing test methodologies and improve automated testing.&lt;/p&gt;
 &lt;p&gt;Traditional QA analysts and manual testers won't require &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/Skills-an-SDET-needs"&gt;as much coding knowledge as SDETs&lt;/a&gt; or automation QA engineers. After all, QA analysts don't write the code. However, programming logic is important for any QA profession. All programming languages have several basic logic structures in common:&lt;/p&gt;
 &lt;ul class="default-list"&gt; 
  &lt;li&gt;If-then-else.&lt;/li&gt; 
  &lt;li&gt;Case structure.&lt;/li&gt; 
  &lt;li&gt;&lt;em&gt;Do-while.&lt;/em&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;em&gt;Do-until.&lt;/em&gt;&lt;/li&gt; 
 &lt;/ul&gt;
 &lt;p&gt;Software testers need a basic knowledge of these programming language staples for continued career growth. Successful execution of &lt;a href="https://www.techtarget.com/searchsoftwarequality/answer/Can-automated-application-testing-be-better-than-manual-QA"&gt;manual tests and automated scripts&lt;/a&gt; is helpful, but testing activities only go so far. It's even more important to know the conditions under which data enters one of the programming structures, and what must happen for that data to exit it.&lt;/p&gt;
 &lt;p&gt;Let's start with if-then-else logic. In this structure, &lt;em&gt;if&lt;/em&gt; is whether a condition exists. If it does exist, then execute the &lt;em&gt;then&lt;/em&gt; function. Otherwise, execute the &lt;em&gt;else&lt;/em&gt; function -- or do nothing. The if-then-else structure works well when a condition is true or false.&lt;/p&gt;
 &lt;p&gt;A case structure might be appropriate when a condition falls into one slot in a range of possibilities.&lt;/p&gt;
 &lt;p&gt;A case structure expands on if-then-else by providing multiple functions to execute if certain conditions exist. For example, an if-then-else structure might check if a number falls in a range between 2-10 and, if it does, then the number is multiplied by five. If the number is not in that range, it will fall into the &lt;em&gt;else&lt;/em&gt; condition and is not multiplied at all. A case structure specifies what to do when a number falls into one of many ranges. In this example, a number between 2-10 falls into &lt;strong&gt;Case A&lt;/strong&gt; and is multiplied by five. If the number is between 11-20, it falls into &lt;strong&gt;Case B&lt;/strong&gt; and is multiplied by four. If a number is 21 or higher, it falls into &lt;strong&gt;Case C&lt;/strong&gt; and is multiplied by three. Case structures can get complex and involve branching into other parts of the code.&lt;/p&gt;
 &lt;p&gt;&lt;em&gt;Do-while&lt;/em&gt; and &lt;em&gt;do-until&lt;/em&gt; are basically loops. With &lt;em&gt;do-while&lt;/em&gt;, a function is performed as long as a condition still exists. A &lt;em&gt;do-until&lt;/em&gt; logic structure performs a function until a condition no longer exists.&lt;/p&gt;
 &lt;p&gt;While &lt;a target="_blank" href="https://www.goodreads.com/book/show/4775354-tools-for-structured-design" rel="noopener"&gt;the book itself&lt;/a&gt; is a bit dated, &lt;em&gt;Tools for Structured Design: An Introduction to Programming Logic&lt;/em&gt; by Marilyn Bohl and Maria Rynn, originally published in 1978, helps convey the ubiquitous precepts of all programming languages. A grasp of programming logic in a language-independent manner helps comprehend the entry and exit criteria to test discrete pieces of code. This domain knowledge marries a business process to the most appropriate programming structure. A yes/no decision point in a business process generally maps to an if-then-else structure, whereas a decision point that requires an answer to one of three or more questions might require a case structure.&lt;/p&gt;
 &lt;p&gt;Read through the code with business requirements in mind. Is it more understandable than before? A QA analyst might work with developers in a test-driven development (&lt;a href="https://www.techtarget.com/searchsoftwarequality/definition/test-driven-development"&gt;TDD&lt;/a&gt;) environment to achieve this goal and implement process improvements. In TDD, the QA and development team collaborate on unit testing of discrete pieces of code. Code is written and made to fail an initial test, &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/Essential-refactoring-techniques-to-know"&gt;then refactored&lt;/a&gt; to get it to pass.&lt;/p&gt;
 &lt;h3&gt;3. Brush up on QA history&lt;/h3&gt;
 &lt;p&gt;When setting goals, don't repeat mistakes from the past. Learn what types of processes came before -- failed or successful -- and how those testing processes set the groundwork for existing ones.&lt;/p&gt;
 &lt;p&gt;The way to measure understanding of the past is to see if it helps achieve better Agile performance. While the traditional software development lifecycle (&lt;a href="https://www.techtarget.com/searchsoftwarequality/definition/software-development-life-cycle-SDLC"&gt;SDLC&lt;/a&gt;) and Waterfall methodology eventually resulted in bloated products and documentation, lessons on the intent and approach might still be useful today. Borrow principles and concepts from the past and mold them into usable processes.&lt;/p&gt;
 &lt;p&gt;Check out &lt;a target="_blank" href="https://www.goodreads.com/book/show/1928410.Customer_Oriented_Software_Quality_Assurance" rel="noopener"&gt;the book&lt;/a&gt; &lt;em&gt;Customer Oriented Software Quality Assurance&lt;/em&gt; by Frank P. Ginac, originally published in 1998. This lightning-fast read shows how and why the Software Engineering Institute's Capability Maturity Model (&lt;a href="https://www.techtarget.com/searchsoftwarequality/definition/Capability-Maturity-Model"&gt;CMM&lt;/a&gt;) caught on with many organizations in the late 1990s. It might be eye-opening to realize that some CMM concepts are still relevant.&lt;/p&gt;
 &lt;p&gt;A SMART goal might be to read the book and draw parallels between the book's subject matter and current practices, then use those parallels to improve Agile performance in the organization according to specific metrics.&lt;/p&gt;
 &lt;div class="extra-info"&gt;
  &lt;div class="extra-info-inner"&gt;
   &lt;h3 class="splash-heading"&gt;OKR examples for QA analysts&lt;/h3&gt; 
   &lt;p&gt;While it's helpful to pinpoint SMART goals for a QA analyst's career advancement, don't lose sight of objectives and key results (&lt;a href="https://www.techtarget.com/searchhrsoftware/definition/OKRs-Objectives-and-Key-Results"&gt;OKRs&lt;/a&gt;). OKRs are a collaborative means to define personal or project goals, set meaningful objectives and track key results to realize their outcomes.&lt;/p&gt; 
   &lt;p&gt;First, the QA analyst determines a testing objective and then defines the logical key results that will enable them to meet it. As with SMART goals, &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/OKRs-vs-SMART-goals-in-software-development"&gt;track your OKRs&lt;/a&gt; to see the best results.&lt;/p&gt; 
   &lt;p&gt;Here are some OKR examples for &lt;a href="https://www.techtarget.com/searchsoftwarequality/feature/Skills-and-responsibilities-in-a-QA-engineer-role"&gt;QA engineers&lt;/a&gt;.&lt;/p&gt; 
   &lt;ul class="default-list"&gt; 
    &lt;li&gt;Objective: Increase test coverage for a new product release.&lt;/li&gt; 
    &lt;ul type="circle" class="default-list"&gt; 
     &lt;li&gt;Key result 1: Work with developers to automate 75% of test cases.&lt;/li&gt; 
     &lt;li&gt;Key result 2: Boost code coverage to 90%.&lt;/li&gt; 
     &lt;li&gt;Key result 3: Use a device farm to test on many end-user devices simultaneously.&lt;/li&gt; 
    &lt;/ul&gt; 
    &lt;li&gt;Objective: Boost testing outside of the QA stage.&lt;/li&gt; 
    &lt;ul type="circle" class="default-list"&gt; 
     &lt;li&gt;Key result 1: Implement test-driven development for early refactoring.&lt;/li&gt; 
     &lt;li&gt;Key result 2: Enhance automated regression testing.&lt;/li&gt; 
     &lt;li&gt;Key result 3: Test in production to catch bugs under real conditions but before users see them.&lt;/li&gt; 
    &lt;/ul&gt; 
   &lt;/ul&gt; 
   &lt;p&gt;&lt;strong&gt;Editor's note: &lt;/strong&gt;&lt;em&gt;This sidebar was written by site editor David Carty and approved by contributor Jim Brown.&lt;/em&gt;&lt;/p&gt;
  &lt;/div&gt;
 &lt;/div&gt;
 &lt;h3&gt;4. Become a master of conflict resolution&lt;/h3&gt;
 &lt;p&gt;This SMART goal for a QA analyst is another one that isn't easy to measure but is nonetheless important for career success.&lt;/p&gt;
 &lt;p&gt;A QA analyst's job is to find problems with the company's product -- ideally, before users do. Thus, the tester is often the bearer of bad news. Sometimes developers let out a sigh of relief when testers catch a bug before code moves into production. But there are also &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/Improving-DevOps-collaboration-Challenges-and-tips"&gt;tussles between testers and developers&lt;/a&gt;, the latter of whom are adamant that their code is not at fault when issues arise. Developers might argue that there's a bad or incomplete requirement, or that the testing wasn't done correctly.&lt;/p&gt;
 &lt;p&gt;Acquire the ability to mediate conflicts. It is a skill that will help quash issues between team members over the root cause of a defect, especially when the added project time required for remediation and retesting can lead to additional stress. Set an individual goal to mediate a certain number of conflicts. Or, take a course on conflict resolution by a predetermined date, then seek to apply the skills learned in that course to disputes in the workplace.&lt;/p&gt;
 &lt;p&gt;Conflict resolution is an art that requires confidence. Conflict raises anxiety, and it can breed animosity. Deflecting or avoiding conflict entirely is a goal worth attaining.&lt;/p&gt;
 &lt;h3&gt;5. Boost project management skills&lt;/h3&gt;
 &lt;p&gt;QA analysts run mini-projects within a project. Test planning, resource allocation, test execution time estimates, scheduling time for defect remediation and slotting time for retests -- these are all small, individual projects that contribute to the overall QA for the software project. All of these efforts require some project management skills.&lt;/p&gt;
 &lt;p&gt;A project manager will block off time for test cycles, or sprints, within an overall project plan, but that person isn't always able to get to the minutiae that a QA analyst does. Some CMM practitioners require QA analysts to fill in the testing tasks and timelines in an overall test plan, lifting some of the burden from the project manager.&lt;/p&gt;
 &lt;p&gt;To stay in tune and relevant today, look into the Projects In Controlled Environments (PRINCE) model, which has morphed into &lt;a target="_blank" href="https://www.prince2.com/usa/blog/prince2-agile-is-here-but-what-is-it" rel="noopener"&gt;PRINCE2 Agile&lt;/a&gt;. The PRINCE2 Agile strategy focuses on how project management and Agile product delivery combine as disciplines, making it relevant for QA analysts.&lt;/p&gt;
 &lt;p&gt;One way to measure and achieve this SMART goal is to &lt;a href="https://www.techtarget.com/searchcio/feature/Top-business-process-management-certifications"&gt;gain certification in a standard&lt;/a&gt; such as PRINCE2, Certified Scrum Master or Professional in Project Management within a designated time.&lt;/p&gt;
 &lt;p&gt;By meeting goals such as these, QA analysts can advance &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/Top-software-testing-certifications"&gt;their career path&lt;/a&gt; to a position where they can still apply their testing skills and keep their intuitive minds sharp.&lt;/p&gt;
 &lt;p&gt;&lt;i&gt;Jim Brown is a senior QA analyst at Boston University and a former technology journalist.&lt;/i&gt;&lt;/p&gt;
&lt;/section&gt;</body>
            <description>QA testers can gain peer respect and influence through SMART goals. Take ownership of the software you work on, look up to good product managers and achieve these five goals.</description>
            <image>https://cdn.ttgtmedia.com/visuals/searchITChannel/manage_sales_business/itchannel_article_002.jpg</image>
            <link>https://www.techtarget.com/searchsoftwarequality/feature/Goal-1-for-the-QA-tester-Take-ownership</link>
            <pubDate>Mon, 25 Aug 2025 16:47:00 GMT</pubDate>
            <title>5 SMART goals for a QA analyst</title>
        </item>
        <item>
            <body>&lt;p&gt;The key value proposition of cloud-based development is the ability to quickly provision infrastructure and deploy apps. No other AWS service enables faster provisioning and deployment of Python, Ruby and Java applications than AWS' Elastic Beanstalk service.&lt;/p&gt; 
&lt;p&gt;In this quick Elastic Beanstalk tutorial, you'll learn how to take a server-side Python application that uses the Django framework for HTML and JavaScript generation and deploy it to the AWS cloud in minutes.&lt;/p&gt; 
&lt;section class="section main-article-chapter" data-menu-title="What is AWS Elastic Beanstalk?"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;What is AWS Elastic Beanstalk?&lt;/h2&gt;
 &lt;p&gt;AWS Elastic Beanstalk is a platform-as-a-service tool that automates application management, deployment and scaling. Users can create applications and host them inside AWS Elastic Beanstalk, where the service provides the necessary resources to ensure the application launches and is managed according to the user's configurations.&lt;/p&gt;
 &lt;p&gt;With traditional application deployment, a user would have to navigate the following:&lt;/p&gt;
 &lt;ul class="default-list"&gt; 
  &lt;li&gt;Build a Docker container.&lt;/li&gt; 
  &lt;li&gt;Create an &lt;a href="https://www.techtarget.com/searchitoperations/video/Create-an-Amazon-EKS-cluster-and-deploy-Docker-containers"&gt;EKS cluster&lt;/a&gt;.&lt;/li&gt; 
  &lt;li&gt;Provision an &lt;a href="https://www.theserverside.com/video/Host-a-static-website-on-AWS-with-Amazon-S3-and-Route-53"&gt;S3 bucket for static hosting&lt;/a&gt;.&lt;/li&gt; 
  &lt;li&gt;&lt;a href="https://www.techtarget.com/searchcloudcomputing/video/AWS-Auto-Scaling-tutorial"&gt;Autoscale&lt;/a&gt; EC2 instances.&lt;/li&gt; 
 &lt;/ul&gt;
 &lt;p&gt;Now, to deploy a Python app to Beanstalk, the hardest part is building the program. Once it works and is tested, simply compress the application's files and upload the zip file to a Beanstalk environment.&lt;/p&gt;
&lt;/section&gt;     
&lt;section class="section main-article-chapter" data-menu-title="AWS Elastic Beanstalk benefits"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;AWS Elastic Beanstalk benefits&lt;/h2&gt;
 &lt;p&gt;The beauty of Amazon's Beanstalk service is its incredible simplicity. Consider the following capabilities of AWS Elastic Beanstalk and how it can benefit application developers:&lt;/p&gt;
 &lt;ul class="default-list"&gt; 
  &lt;li&gt;&lt;b&gt;Provision resources. &lt;/b&gt;Beanstalk provides users with the underlying infrastructure to support user applications without needing to invest in costly hardware or software.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Configuration. &lt;/b&gt;AWS provides users with many different customization options for both resources and environments.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Deployment. &lt;/b&gt;Automated deployment enables developers to focus on building the application itself.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Scaling. &lt;/b&gt;The Elastic Load Balancer and Auto Scaling tools can meet traffic needs on demand. AWS can also access different availability zones as needed to support reliability for users.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Monitoring. &lt;/b&gt;Beanstalk can support applications after deployment, providing logs and insights on performance and even built-in security tools.&lt;/li&gt; 
 &lt;/ul&gt;
&lt;/section&gt;   
&lt;section class="section main-article-chapter" data-menu-title="Python app deployment on AWS Elastic Beanstalk"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Python app deployment on AWS Elastic Beanstalk&lt;/h2&gt;
 &lt;p&gt;Once the application is uploaded, AWS provisions the requisite infrastructure, deploys the application and provides a publicly accessible URL to access the app. Want a custom domain name? Route 53 can easily map URLs to the instance as well.&lt;/p&gt;
 &lt;p&gt;Furthermore, for low-traffic applications, Beanstalk is relatively cheap. A simple website won't cost more than $10 a month to host, and users who sign up for an &lt;a href="https://www.techtarget.com/searchcloudcomputing/video/How-to-create-an-AWS-free-tier-account"&gt;AWS free tier account&lt;/a&gt; won't receive a bill for several months.&lt;/p&gt;
 &lt;p&gt;To quickly deploy a Python-based application built with Flask, FastAPI or Django, consider using AWS' Elastic Beanstalk.&lt;/p&gt;
 &lt;p&gt;&lt;i&gt;Cameron McKenzie has been a Java EE software engineer for 20 years. His current specialties include Agile development; DevOps; Spring; and container-based technologies such as Docker, Swarm and Kubernetes.&lt;/i&gt;&lt;/p&gt;
&lt;/section&gt;</body>
            <description>AWS Elastic Beanstalk simplifies the deployment of Python, Ruby and Node.js applications. This tutorial shows how to quickly launch applications without complex setup procedures.</description>
            <link>https://www.techtarget.com/searchcloudcomputing/video/Deploy-apps-faster-with-this-AWS-Elastic-Beanstalk-tutorial</link>
            <pubDate>Mon, 25 Aug 2025 15:07:00 GMT</pubDate>
            <title>Deploy apps faster with this AWS Elastic Beanstalk tutorial</title>
        </item>
        <item>
            <body>&lt;p&gt;AI technology is a game-changer in software development. Developers now use coding agents to create applications with just a natural prompt to describe the code's desired behavior. This movement, called &lt;i&gt;vibe coding,&lt;/i&gt; is gaining traction to the point that many believe AI software might replace entry-level software developers in the not-too-distant future.&lt;/p&gt; 
&lt;p&gt;That's not just handwringing. Facebook and AWS are on an AI &lt;a target="_blank" href="https://www.cnbc.com/2025/06/21/metas-zuckerberg-has-to-win-ai-after-billions-spent-on-dream-team.html" rel="noopener"&gt;hiring&lt;/a&gt; &lt;a target="_blank" href="https://www.techtarget.com/searchenterpriseai/news/366619057/Amazon-to-spend-100B-in-AWS-AI-infrastructure" rel="noopener"&gt;spree&lt;/a&gt;, and some of that money could well be applied to reduce developer head count.&lt;/p&gt; 
&lt;p&gt;The real question, which requires a thoughtful, informed approach, is this: How can developers adapt to work effectively and efficiently with &lt;a href="https://www.techtarget.com/searchsoftwarequality/news/366622962/JetBrains-GitHub-add-coding-agents-to-IDEs"&gt;AI-enabled coding&lt;/a&gt; as it proliferates within the enterprise?&lt;/p&gt; 
&lt;p&gt;This article explores how to use two different coding agents to create application code: &lt;a target="_blank" href="https://replit.com/~" rel="noopener"&gt;Replit&lt;/a&gt;, which runs as a cloud-based website, and &lt;a target="_blank" href="https://github.com/features/copilot" rel="noopener"&gt;GitHub Copilot&lt;/a&gt;, which runs on a local machine through the VS Code IDE. I recorded the entire process, from submitting identical prompts to each agent, to the code creation and testing process, and finally to the agent running the software it creates.&lt;/p&gt; 
&lt;p&gt;First, let's examine the prompt that describes the task each agent had to complete.&lt;/p&gt; 
&lt;h1&gt;Watch the vibe coding sessions&lt;/h1&gt; 
&lt;p&gt;The following videos are narrated screencasts in which Replit and GitHub Copilot technologies create an application in response to the natural language prompt described below. The Replit video runs around 14 minutes, and the GitHub Copilot video runs around 18 minutes. That's how quickly AI agents can create applications, in a fraction of the time it would take a human developer to do so.&lt;/p&gt; 
&lt;p&gt;The task I gave to each agent was as follows:&lt;/p&gt; 
&lt;blockquote&gt;
 Create a TypeScript web service that accepts the URL to an image file and then creates a new image with a time and date stamp displayed to the second as a watermark added to the bits at the lower part of the image. The font size of the timestamp should be as large as possible but allow the timestamp to fit within the width of the image. Then make it so the web service returns the new image as a stream. Also, write the unit test that will exercise the web service.
&lt;/blockquote&gt; 
&lt;p&gt;For the GitHub Copilot vibe coding session, I added one other instruction to the prompt: &lt;i&gt;Use the existing directory, ~/Projects/timestamper as the working directory&lt;/i&gt;. GitHub Copilot runs locally so I can let it use the file system on my machine.&lt;/p&gt; 
&lt;div class="youtube-iframe-container"&gt;
 &lt;iframe id="ytplayer-0" src="https://www.youtube.com/embed/ckx19ZtDEOU?autoplay=0&amp;amp;modestbranding=1&amp;amp;rel=0&amp;amp;widget_referrer=null&amp;amp;enablejsapi=1&amp;amp;origin=https://www.theserverside.com" type="text/html" height="360" width="640" frameborder="0"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class="youtube-iframe-container"&gt;
 &lt;iframe id="ytplayer-1" src="https://www.youtube.com/embed/rKEu6LUqrQo?autoplay=0&amp;amp;modestbranding=1&amp;amp;rel=0&amp;amp;widget_referrer=null&amp;amp;enablejsapi=1&amp;amp;origin=https://www.theserverside.com" type="text/html" height="360" width="640" frameborder="0"&gt;&lt;/iframe&gt;
&lt;/div&gt; 
&lt;h1&gt;3 lessons from vibe coding with Replit and GitHub Copilot&lt;/h1&gt; 
&lt;p&gt;Creating the applications was enlightening, but it was not easygoing.&lt;/p&gt; 
&lt;p&gt;Both Replit and GitHub Copilot created the applications very quickly. I didn't need to devise the application logic and write the code for it using the IDE, time-consuming tasks that tend to be the bulk of my programming labor. The speed at which the AI agent operated provided a benefit immediately.&lt;/p&gt; 
&lt;p&gt;However, I found I had to interact with the agents throughout the exercise, and I learned some valuable lessons about the best ways to work with an AI during the coding process.&lt;/p&gt; 
&lt;h3&gt;Be precise with your AI prompts&lt;/h3&gt; 
&lt;p&gt;The dictum "garbage in, garbage out" dates back to the early days of mainframe programming. It means that if you put bad data in, you're going to get bad results. This is still true today for vibe coding with an AI agent as it was writing Fortran code back in 1965.&lt;/p&gt; 
&lt;p&gt;An AI agent will only do what you tell it to do. If you put a faulty instruction in your prompt, it will implement that instruction. When I started this exercise, I used the following prompt, which contained a faulty instruction highlighted here in bold:&lt;/p&gt; 
&lt;blockquote&gt;
 Create a TypeScript web service that accepts the URL to an image file and then creates a new image with a time and date stamp displayed to the second as a watermark added to the bits of the image. 
 &lt;b&gt;Make the font size of the time and date stamp equal to 30% of the height of the submitted image.&lt;/b&gt; Then make it so the web service returns the new image as a stream. Also, write the unit test that will exercise the web service. Use the existing directory, ~/Projects/timestamper as the working directory.
&lt;/blockquote&gt; 
&lt;p&gt;The problem was that I was telling the AI to determine the font size of the submitted image. So, if the image was 500 px wide by 100 px high, the font would be too small for the image. This became apparent as the agent wrote the code. I thought that the agent was at fault, and I kept telling it to make corrections. The truth was that the agent was only doing what I told it to do. The fault was mine.&lt;/p&gt; 
&lt;p&gt;While natural language prompting can make programming much faster and easier, it can also produce a faulty application if the prompt describes bad logic or behavior that is inappropriate to the application's purpose. The agent will correct errors to get the code running, but do not assume it is smart enough to ensure that the design of the application's features is correct.&lt;/p&gt; 
&lt;p&gt;AI agents might someday be able to determine strange or illogical application features, but for now, what an agent does best is to make sure that the code it writes works. Ensure that your prompts describing the features to implement make sense.&lt;/p&gt; 
&lt;h3&gt;Treat the AI agent like a programmer who requires oversight&lt;/h3&gt; 
&lt;p&gt;In his 1950 paper "&lt;a target="_blank" href="https://en.wikipedia.org/wiki/Computing_Machinery_and_Intelligence" rel="noopener"&gt;Computing Machinery and Intelligence&lt;/a&gt;," computer scientist Alan Turing asserted the following: &lt;i&gt;If a machine can behave in a way indistinguishable from a human during conversation, it can be considered intelligent&lt;/i&gt;.&lt;/p&gt; 
&lt;p&gt;Thinking of an AI agent as an intelligent entity might be difficult for many to accept. Nevertheless, in my time vibe coding with Replit and GitHub Copilot, I came to think of the agents as an entry- to mid-level programmer working alongside me. My attitude was that the agent would get most things correct but make mistakes, and it was up to me to determine if the agent was getting it right.&lt;/p&gt; 
&lt;p&gt;Throughout the various iterations of my exercise, I stopped to ask the agent if it had performed certain tasks. In one example, during debugging, I inquired: "Did you restart the server?" Surprisingly, sometimes the agent forgot to restart the server when an error persisted.&lt;/p&gt; 
&lt;p&gt;The agent did a better job of completing the application when I was around to observe, point out problems and ask questions than it would have if left to its own devices (no pun intended). Human developers will be needed in the vibe coding paradigm, but their work and value won't be in slinging code.&lt;/p&gt; 
&lt;h1&gt;Think creatively about the bigger picture&lt;/h1&gt; 
&lt;p&gt;As these experiments using AI agents demonstrate, AI is very good at coding, including identifying and fixing errors, and it will continue to evolve. This makes it a direct threat to entry-level and maintenance programmers.&lt;/p&gt; 
&lt;p&gt;The key for a developer to remain professionally viable is to stay one step ahead of the AI. It's not enough to imagine the jobs of the future in terms of today's technical and cultural landscape. You might find that AI has already surpassed the capabilities you imagined, and you'll be left out in the cold.&lt;/p&gt; 
&lt;p&gt;Instead, envision the technical and cultural landscape five years from now. Consider what software development will look like and then think about how humans will fit into creating software in that environment.&lt;/p&gt; 
&lt;p&gt;&lt;i&gt;Bob Reselman is a software developer, system architect and writer. His expertise ranges from software development technologies to techniques and culture.&lt;/i&gt;&lt;/p&gt;</body>
            <description>Vibe coding, or using AI agents to create application code, is all the rage today. This video tutorial shows how it works using popular AI tools Replit and GitHub Copilot.</description>
            <image>https://cdn.ttgtmedia.com/rms/onlineimages/code_g1287248739.jpg</image>
            <link>https://www.theserverside.com/tutorial/Vibe-coding-tutorial-with-Replit-and-GitHub-Copilot</link>
            <pubDate>Fri, 22 Aug 2025 16:50:00 GMT</pubDate>
            <title>Vibe coding tutorial with Replit and GitHub Copilot</title>
        </item>
        <item>
            <body>&lt;p&gt;If you're building out your applications on AWS infrastructure, you shouldn't be hosting your domain names externally on a service like GoDaddy. Instead, transfer your domain names into AWS and host them on Amazon's Route 53 domain name service. It's a process that's incredibly easy to do.&lt;/p&gt; 
&lt;section class="section main-article-chapter" data-menu-title="GoDaddy to Route 53 transfer steps"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;GoDaddy to Route 53 transfer steps&lt;/h2&gt;
 &lt;p&gt;To transfer out of GoDaddy and into the AWS Route 53 service, just follow these steps:&lt;/p&gt;
 &lt;ol class="default-list"&gt; 
  &lt;li&gt;Log into GoDaddy, unlock your domain and initiate a domain transfer.&lt;/li&gt; 
  &lt;li&gt;Copy the authorization code and then log into AWS.&lt;/li&gt; 
  &lt;li&gt;Navigate to Route 53 and choose the option to Transfer a Domain. You'll need to provide your authorization code.&lt;/li&gt; 
  &lt;li&gt;Log into GoDaddy and confirm the transfer in the domain's Transfer Out page to speed up the transfer.&lt;/li&gt; 
  &lt;li&gt;Update all your DNS name servers in AWS and start creating alias records that point to your AWS services.&lt;/li&gt; 
 &lt;/ol&gt;
&lt;/section&gt;   
&lt;section class="section main-article-chapter" data-menu-title="Route 53 alias mapping"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Route 53 alias mapping&lt;/h2&gt;
 &lt;p&gt;Once your domain is transferred to your &lt;a href="https://www.techtarget.com/searchcloudcomputing/video/How-to-create-an-AWS-free-tier-account"&gt;AWS account&lt;/a&gt;, and you've used a tool such as &lt;a target="_blank" href="https://toolbox.googleapps.com/apps/dig/" rel="noopener"&gt;Dig&lt;/a&gt; to verify your DNS changes have globally propagated, you can begin to create alias records to AWS resources.&lt;/p&gt;
 &lt;p&gt;With alias records, you can easily point your transferred domain and its sub-domains to AWS resources such as the following:&lt;/p&gt;
 &lt;ul class="default-list"&gt; 
  &lt;li&gt;RESTful APIs deployed as Python-based Beanstalk apps.&lt;/li&gt; 
  &lt;li&gt;Jakarta EE based microservices hosted in &lt;a href="https://www.techtarget.com/searchitoperations/video/Create-an-Amazon-EKS-cluster-and-deploy-Docker-containers"&gt;EKS clusters&lt;/a&gt;.&lt;/li&gt; 
  &lt;li&gt;&lt;a href="https://www.theserverside.com/video/How-to-run-Jenkins-in-a-Docker-container"&gt;Dockerized Jenkins&lt;/a&gt; servers hosted in Amazon's Elastic Container Service.&lt;/li&gt; 
  &lt;li&gt;Tomcat servers running in &lt;a href="https://www.techtarget.com/searchcloudcomputing/video/AWS-Auto-Scaling-tutorial"&gt;autoscaled EC2 instances&lt;/a&gt;.&lt;/li&gt; 
  &lt;li&gt;Cloudfront-backed, &lt;a href="https://www.theserverside.com/video/Host-a-static-website-on-AWS-with-Amazon-S3-and-Route-53"&gt;static websites hosted in S3&lt;/a&gt;.&lt;/li&gt; 
 &lt;/ul&gt;
 &lt;p&gt;Furthermore, Route 53 provides a variety of tools for weighted routing, latency-based routing, failover routing and geoproximity routing.&lt;/p&gt;
 &lt;p&gt;If you're an AWS customer and want to make your websites faster or support blue/green deployments, transferring away from GoDaddy and into Amazon's Route 53 is a smart move.&lt;/p&gt;
 &lt;p&gt;&lt;i&gt;Cameron McKenzie has been a Java EE software engineer for 20 years. His current specialties include Agile development; DevOps; Spring; and container-based technologies such as Docker, Swarm and Kubernetes.&lt;/i&gt;&lt;/p&gt;
&lt;/section&gt;</body>
            <description>If you're using AWS for API gateways and S3 buckets, it makes sense to host your domain there as well. Here's how to transfer out of GoDaddy and into Amazon Route 53.</description>
            <link>https://www.theserverside.com/video/Transfer-out-of-GoDaddy-and-into-Amazon-Route-53</link>
            <pubDate>Thu, 21 Aug 2025 14:14:00 GMT</pubDate>
            <title>Transfer out of GoDaddy and into Amazon Route 53</title>
        </item>
        <item>
            <body>&lt;p&gt;Code editors are critical tools for basic programming and scripting projects.&lt;/p&gt; 
&lt;p&gt;While any basic text editor could work, dedicated coding tools add specific features to enhance development projects. These specific features let developers code more efficiently and employ emerging technologies to &lt;a href="https://www.techtarget.com/searchsoftwarequality/feature/6-key-ways-to-improve-developer-productivity"&gt;improve the developer's experience&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;How each editor approaches this is different. Some dedicated editors take a minimalist approach and more closely resemble text editors aesthetically. Others tend toward full-featured integrated development environments (IDEs) with rich plugin ecosystems and AI-assistance features. Some editors are specific to one OS; others work across multiple environments.&lt;/p&gt; 
&lt;p&gt;MacOS is a solid choice for modern programmers, and many code editors exist to support their needs. Learn about the top code editor choices for macOS users.&lt;/p&gt; 
&lt;section class="section main-article-chapter" data-menu-title="Top code editors for MacOS"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Top code editors for MacOS&lt;/h2&gt;
 &lt;p&gt;Coders should compare licensing, cost information and feature highlights to determine the best macOS code editor for their next project.&lt;/p&gt;
 &lt;p&gt;Using extensive research and experience, the author and Informa TechTarget editors identified the essential macOS code editors from various vendors. Our research included survey data, commonly cited blogs and technology news.&lt;/p&gt;
 &lt;div class="extra-info"&gt;
  &lt;div class="extra-info-inner"&gt;
   &lt;h3 class="splash-heading"&gt;IDEs vs. code editor&lt;/h3&gt; 
   &lt;p&gt;Note that code editors and IDEs are different, although the line between the two is often blurred. Code editors tend to be lightweight, feature syntax highlighting, autocompletion and basic troubleshooting functions. IDEs cover the entire development process, including version control, testing, debugging and project management, along with editing functionality. Apple &lt;a target="_blank" href="https://developer.apple.com/xcode/" rel="noopener"&gt;Xcode&lt;/a&gt; and JetBrains &lt;a target="_blank" href="https://www.jetbrains.com/pycharm/" rel="noopener"&gt;PyCharm&lt;/a&gt; are two examples of macOS IDEs.&lt;/p&gt;
  &lt;/div&gt;
 &lt;/div&gt;
 &lt;h3&gt;BBEdit&lt;/h3&gt;
 &lt;p&gt;BBEdit is a macOS-specific tool for developers, writers and web designers. In addition to the standard syntax highlighting and code folding features, it includes search-and-replace functionality, &lt;a href="https://www.theserverside.com/video/Full-Git-and-GitHub-tutorial-for-beginners"&gt;Git&lt;/a&gt; and Subversion integration for version control and collaboration, and multi-file project management. BBEdit also has customizable layout options, themes and native macOS Shortcuts.&lt;/p&gt;
 &lt;p&gt;BBEdit has free and paid options. The free option gives users 30 days of full functionality and limited functionality after the 30-day period has ended. The paid option is an individual license for $59.99, with discounted pricing for upgrades from earlier versions.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Key features: &lt;/b&gt;Syntax highlighting, code folding, search-and-replace, Git and Subversion integration, multi-file project management, customizable layout.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Platform:&lt;/b&gt; MacOS only.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Price:&lt;/b&gt; Free 30-day trial, limited free version available, $59.99 for full license.&lt;/p&gt;
 &lt;h3&gt;CotEditor&lt;/h3&gt;
 &lt;p&gt;Instead of a wide range of coding-specific features, CotEditor provides basic text editing capabilities. It supports 50+ languages, including &lt;a href="https://www.techtarget.com/searchapparchitecture/tip/What-is-the-difference-between-Python-and-Ruby"&gt;Python, Ruby&lt;/a&gt;, HTML and &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/Ultimate-Markdown-guide-Rules-to-know"&gt;Markdown&lt;/a&gt;. The UI includes split-screen views for previewing projects. One of CotEditor's features is terminal integration for those who want or need to alternate between the graphical and command-line interfaces. CotEditor is scriptable, enabling you to generate original macros in Python, AppleScript, Ruby and other languages for frequently used workflows.&lt;/p&gt;
 &lt;p&gt;CotEditor uses an &lt;a href="https://www.techtarget.com/searchenterpriseai/tip/Examining-the-future-of-AI-and-open-source-software"&gt;open source license&lt;/a&gt; and is a free application for macOS users. Review its &lt;a target="_blank" href="https://github.com/coteditor/" rel="noopener"&gt;GitHub page&lt;/a&gt; for additional features and modifications.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Key features: &lt;/b&gt;Support for 50+ languages, split-screen views, terminal integration, scriptable.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Platform:&lt;/b&gt; MacOS only.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Price:&lt;/b&gt; Free -- open source.&lt;/p&gt;
 &lt;figure class="main-article-image full-col" data-img-fullsize="https://www.theserverside.com/rms/onlineimages/picture-1-f.jpg"&gt;
  &lt;img data-src="https://www.theserverside.com/rms/onlineimages/picture-1-f_mobile.jpg" class="lazy" data-srcset="https://www.theserverside.com/rms/onlineimages/picture-1-f_mobile.jpg 960w,https://www.theserverside.com/rms/onlineimages/picture-1-f.jpg 1280w" alt="Image of the basic key bindings for CotEditor." data-credit="Damon Garn" height="410" width="559"&gt;
  &lt;figcaption&gt;
   &lt;i class="icon pictures" data-icon="z"&gt;&lt;/i&gt;CotEditor provides a simple yet powerful code editor for macOS users. Above are the basic key bindings for the program.
  &lt;/figcaption&gt;
  &lt;div class="main-article-image-enlarge"&gt;
   &lt;i class="icon" data-icon="w"&gt;&lt;/i&gt;
  &lt;/div&gt;
 &lt;/figure&gt;
 &lt;h3&gt;IntelliJ IDEA&lt;/h3&gt;
 &lt;p&gt;IntelliJ IDEA is a macOS editor and &lt;a href="https://www.techtarget.com/searchsoftwarequality/definition/integrated-development-environment"&gt;IDE&lt;/a&gt;; for Java and Kotlin projects, with a goal of supporting web development projects. However, it is extensible to additional languages and offers &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/Essential-refactoring-techniques-to-know"&gt;refactoring&lt;/a&gt;, version control and debugging capabilities. The macOS version of IDEA offers an interface consistent with other popular IDEs, and terminal support. Like other products, it natively supports Apple Silicon processors for speed.&lt;/p&gt;
 &lt;p&gt;Two editions of IDEA exist. IntelliJ IDEA Community Edition is free and open source, containing the core components necessary for Java and Kotlin programming. The IDEA Ultimate edition targets professional developers with broader support for standard programming languages and frameworks. It costs $169 per year for individual use, and $599 per user, per year for organizations.&lt;/p&gt;
 &lt;p&gt;IntelliJ IDEA is also available for Linux and Windows platforms.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Key features:&lt;/b&gt; Java/Kotlin focused, web development support, extensibility, refactoring, version control, debugging, Apple Silicon support.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Platform:&lt;/b&gt; MacOS, Linux, Windows.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Price:&lt;/b&gt; Free Community Edition; Ultimate Edition $169 per year for individuals or $599 per user, per year for organizations.&lt;/p&gt;
 &lt;h3&gt;Microsoft Visual Studio Code&lt;/h3&gt;
 &lt;p&gt;Microsoft's Visual Studio Code is a free and open source editor that's extensible and highly customizable. It offers cross-platform support for developers who frequently &lt;a href="https://www.techtarget.com/searchenterprisedesktop/opinion/My-2-months-switching-from-Mac-to-Windows"&gt;switch between macOS, Linux and Windows workstations&lt;/a&gt;. It includes &lt;a href="https://www.techtarget.com/searchsoftwarequality/news/366585953/Microsoft-Visual-Studio-Azure-updates-target-AI-developers"&gt;AI integration using Copilot&lt;/a&gt;, which offers various subscription options. VS Code also provides a configurable interface.&lt;/p&gt;
 &lt;p&gt;Use the Visual Studio Code Marketplace as a resource to customize and extend VS Code's functionality to suit your needs.&lt;/p&gt;
 &lt;figure class="main-article-image full-col" data-img-fullsize="https://www.theserverside.com/rms/onlineimages/picture2-f.jpg"&gt;
  &lt;img data-src="https://www.theserverside.com/rms/onlineimages/picture2-f_mobile.jpg" class="lazy" data-srcset="https://www.theserverside.com/rms/onlineimages/picture2-f_mobile.jpg 960w,https://www.theserverside.com/rms/onlineimages/picture2-f.jpg 1280w" alt="Image of the Microsoft Visual Studio Code Marketplace." data-credit="Damon Garn" height="261" width="559"&gt;
  &lt;figcaption&gt;
   &lt;i class="icon pictures" data-icon="z"&gt;&lt;/i&gt;Discover VS Code extensions at the Microsoft Visual Studio Code Marketplace.
  &lt;/figcaption&gt;
  &lt;div class="main-article-image-enlarge"&gt;
   &lt;i class="icon" data-icon="w"&gt;&lt;/i&gt;
  &lt;/div&gt;
 &lt;/figure&gt;
 &lt;p&gt;&lt;b&gt;Key features: &lt;/b&gt;Highly extensible, customizable, AI integration with Copilot, intuitive interface, marketplace for extensions.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Platform:&lt;/b&gt; MacOS, Linux, Windows.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Price:&lt;/b&gt; Free –o pen source -- optional Copilot subscriptions available.&lt;/p&gt;
 &lt;h3&gt;Nova&lt;/h3&gt;
 &lt;p&gt;&lt;a target="_blank" href="https://nova.app/" rel="noopener"&gt;Nova&lt;/a&gt; is a macOS-specific editor with a flexible, feature-rich interface. Included in Nova's features are autocomplete, minimap, syntax highlighting, Git integration, task automation and customizable sidebars. Nova supports Python, JavaScript, PHP and other languages, as well as extensions and APIs for additional functionality.&lt;/p&gt;
 &lt;p&gt;Pricing starts at $99. However, if you hold a license for the older Coda editor, you might be entitled to a discounted rate.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Key features: &lt;/b&gt;MacOS-specific design, autocomplete, minimap, syntax highlighting, Git integration, task automation, customizable sidebars.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Platform: &lt;/b&gt;MacOS only.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Price:&lt;/b&gt; $99 with discounts for Coda license holders.&lt;/p&gt;
 &lt;h3&gt;NeoVim&lt;/h3&gt;
 &lt;p&gt;Vim is one of the most ubiquitous applications on Unix-based platforms &lt;a href="https://www.techtarget.com/searchDataCenter/tutorial/How-to-use-Vim-in-Linux"&gt;such as macOS and Linux&lt;/a&gt;. This venerable text editor can be a powerful coding utility. However, the NeoVim fork might be a better choice for modern macOS programmers who rely on Vim's power and flexibility. NeoVim's performance and extensibility improvements make it so that users don't have to spend time optimizing the editor for specific jobs. The platform's community supports an effective plugin ecosystem to meet almost any programming requirement and many configuration packages are available.&lt;/p&gt;
 &lt;p&gt;Among NeoVim's native features are custom key bindings, tailored workflows, custom indentation settings and Lua-based configuration management, all while retaining the efficiency that made Vim so valuable. NeoVim is free and open source.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Key features: &lt;/b&gt;Features of Vim, custom key bindings, tailored workflows, custom indentation settings, Lua-based configuration.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Platform:&lt;/b&gt; MacOS, Linux, Windows.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Price:&lt;/b&gt; Free -- open source.&lt;/p&gt;
 &lt;h3&gt;Sublime Text&lt;/h3&gt;
 &lt;p&gt;Another cross-platform tool is Sublime Text. Sublime Text supports the standard programming languages, including Python, JavaScript, HTML, C++, Java, etc. It offers syntax highlighting, split view, a command palette and the ability to run code within the editor for quick tests. Like other editors, Sublime Text accepts various extensions to customize and modify its functionality for any developer's needs.&lt;/p&gt;
 &lt;p&gt;Sublime Text costs $99 per year, which includes multiple device usage. Business licenses are between $50-$65 per user, per year depending on the number of users. It's an excellent choice for those needing speed, reliability and extensibility.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Key features: &lt;/b&gt;Cross-platform, syntax highlighting, split view, command palette, in-editor code execution, extensible.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Platform:&lt;/b&gt; MacOS, Linux, Windows.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Price:&lt;/b&gt; $99 per year; $50-$65 per user, per year for business licenses.&lt;/p&gt;
&lt;/section&gt;                                                 
&lt;section class="section main-article-chapter" data-menu-title="Installing the Homebrew package manager"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Installing the Homebrew package manager&lt;/h2&gt;
 &lt;p&gt;When delving into the world of macOS code editors and development tools, consider &lt;a href="https://www.techtarget.com/searchvirtualdesktop/tip/How-to-install-Homebrew-on-macOS-for-software-distribution"&gt;installing the Homebrew package manager&lt;/a&gt;. Many applications, including common code editors, maintain Homebrew packages. The package manager enables the efficient installation and update of installed applications.&lt;/p&gt;
 &lt;p&gt;The Homebrew installation consists of a single command run from the macOS Terminal. The command is as follows:&lt;/p&gt;
 &lt;p&gt;&lt;span style="font-family: 'courier new', courier, monospace;"&gt;/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"&lt;/span&gt;&lt;/p&gt;
 &lt;p&gt;Use the &lt;span style="font-family: 'courier new', courier, monospace;"&gt;brew install {package-name}&lt;/span&gt; command to install software. The &lt;span style="font-family: 'courier new', courier, monospace;"&gt;brew upgrade&lt;/span&gt; and &lt;span style="font-family: 'courier new', courier, monospace;"&gt;brew uninstall&lt;/span&gt; commands enable updates and software removal. Gather packet information using the &lt;span style="font-family: 'courier new', courier, monospace;"&gt;brew info {package-name}&lt;/span&gt; command.&lt;/p&gt;
 &lt;figure class="main-article-image full-col" data-img-fullsize="https://www.theserverside.com/rms/onlineimages/picture3-f.jpg"&gt;
  &lt;img data-src="https://www.theserverside.com/rms/onlineimages/picture3-f_mobile.jpg" class="lazy" data-srcset="https://www.theserverside.com/rms/onlineimages/picture3-f_mobile.jpg 960w,https://www.theserverside.com/rms/onlineimages/picture3-f.jpg 1280w" alt="Image showing help and usage information for the Homebrew package manager." data-credit="Damon Garn" height="454" width="560"&gt;
  &lt;figcaption&gt;
   &lt;i class="icon pictures" data-icon="z"&gt;&lt;/i&gt;The Homebrew package manager is a great way of managing code editors on macOS.
  &lt;/figcaption&gt;
  &lt;div class="main-article-image-enlarge"&gt;
   &lt;i class="icon" data-icon="w"&gt;&lt;/i&gt;
  &lt;/div&gt;
 &lt;/figure&gt;
 &lt;p&gt;&lt;i&gt;Damon Garn owns Cogspinner Coaction and provides freelance IT writing and editing services. He has written multiple CompTIA study guides, including the Linux+, Cloud Essentials+ and Server+ guides, and contributes extensively to Informa TechTarget, The New Stack and CompTIA Blogs.&lt;/i&gt;&lt;/p&gt;
&lt;/section&gt;</body>
            <description>Learn about the top code editors for MacOS. Make your choice from the following list of code editors based on price, features, extensibility and specific language support.</description>
            <image>https://cdn.ttgtmedia.com/rms/onlineimages/code_g1195673150.jpg</image>
            <link>https://www.techtarget.com/searchsoftwarequality/tip/Essential-macOS-code-editors</link>
            <pubDate>Tue, 19 Aug 2025 15:16:00 GMT</pubDate>
            <title>7 essential macOS code editors</title>
        </item>
        <item>
            <body>&lt;p&gt;Functional requirements are the desired operations of a &lt;a href="https://www.techtarget.com/searchsoftwarequality/definition/program"&gt;program&lt;/a&gt; or system. They are the tasks a system must perform to meet the end goals.&lt;/p&gt; 
&lt;section class="section main-article-chapter" data-menu-title="Functional requirements engineering"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Functional requirements engineering&lt;/h2&gt;
 &lt;p&gt;The foundation of modern products, good functional requirements, helps to keep a project on schedule and budget.&lt;/p&gt;
 &lt;p&gt;Functional requirements are part of &lt;a href="https://www.techtarget.com/searchsoftwarequality/definition/requirements-analysis"&gt;requirements analysis&lt;/a&gt; (also known as requirements engineering), an interdisciplinary field of engineering that addresses complex systems design and maintenance. The systems in systems engineering can be software, electronic hardware or a combination called software-driven electronics.&lt;/p&gt;
 &lt;p&gt;Functional requirements describe the desired end function of a system and any steps needed to reach that end state. This assures that the design is adequate to reach the desired product and the end product &lt;a href="https://www.techtarget.com/searchvirtualdesktop/tip/How-to-properly-set-user-expectations-about-VDI-performance"&gt;meets user expectations&lt;/a&gt;.&lt;/p&gt;
 &lt;p&gt;The requirements in requirements engineering guide development of the engineered product. Typically, a functional requirement is a basic functionality or desired behavior documented clearly and quantitatively. Requirement engineering ideas might be applied to complex items.&lt;/p&gt;
 &lt;p&gt;For example, for a jar, a functional requirement would be that it holds a fluid and has a threaded top for a lid to seal the contents for better preservation. When a &lt;a href="https://www.techtarget.com/whatis/definition/fail-fast"&gt;product fails&lt;/a&gt; functional requirements, it usually means the product is of low quality and possibly useless.&lt;/p&gt;
&lt;/section&gt;      
&lt;section class="section main-article-chapter" data-menu-title="How to determine functional requirements"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;How to determine functional requirements&lt;/h2&gt;
 &lt;p&gt;As the detailed plans programmers and designers can follow to build the product, functional requirements are like the blueprints builders follow to construct a building. Often, the more details that can be added to the functional requirements, the better the end product.&lt;/p&gt;
 &lt;p&gt;When project planning starts, it's vital to have all the &lt;a href="https://www.techtarget.com/searchcio/definition/stakeholder"&gt;stakeholders&lt;/a&gt; involved in early functional requirement phases. This way, the business goals can be well understood and recorded in the functional requirements. The outline of the project can be established, and the result well understood. This reduces the need for later changes or additions that often push projects over budget and past deadlines.&lt;/p&gt;
 &lt;p&gt;The &lt;a href="https://www.techtarget.com/searchsoftwarequality/definition/MoSCoW-method"&gt;MoSCoW method&lt;/a&gt; is a way to prioritize the requirements where each feature is sorted into either &lt;i&gt;must&lt;/i&gt; have, &lt;i&gt;should&lt;/i&gt; have, &lt;i&gt;could&lt;/i&gt; have, or &lt;i&gt;will not&lt;/i&gt; have categories.&lt;/p&gt;
 &lt;p&gt;Another method uses the &lt;a href="https://www.techtarget.com/searcherp/definition/value-driver"&gt;value&lt;/a&gt; a feature adds versus the effort required to implement it. A value versus effort matrix will help identify the areas that will provide the most benefit with the least cost in time. This might also lead to a minimum viable product (MVP) where only the most important features are planned.&lt;/p&gt;
 &lt;p&gt;Functional requirements can start off at a high level and become progressively more detailed. A high-level requirement might be to have a functional shopping cart. This can be further broken down to smaller requirements such as the ability to add or remove items and process credit cards. Even smaller, the credit card processing can have a requirement to validate the number &lt;a href="https://www.techtarget.com/searchsecurity/definition/checksum"&gt;checksum&lt;/a&gt; before processing the card.&lt;/p&gt;
 &lt;p&gt;Each functional requirement can have associated tests to ensure it meets the requirements.&lt;/p&gt;
 &lt;p&gt;A &lt;a href="https://www.techtarget.com/searchsoftwarequality/definition/unit-testing"&gt;unit test&lt;/a&gt; might check a piece of code by giving it an input and confirming that the output meets expectations. For example, the credit card number validation function might be given a bad number and a good number. If it doesn't give the right output, it fails the test.&lt;/p&gt;
 &lt;div class="youtube-iframe-container"&gt;
  &lt;iframe id="ytplayer-0" src="https://www.youtube.com/embed/SOhM7UP-C0I?autoplay=0&amp;amp;modestbranding=1&amp;amp;rel=0&amp;amp;widget_referrer=null&amp;amp;enablejsapi=1&amp;amp;origin=https://www.theserverside.com" type="text/html" height="360" width="640" frameborder="0"&gt;&lt;/iframe&gt;
 &lt;/div&gt;
&lt;/section&gt;         
&lt;section class="section main-article-chapter" data-menu-title="Non-functional requirements"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Non-functional requirements&lt;/h2&gt;
 &lt;p&gt;Functional requirements in systems engineering are complemented by technical requirements, also known as non-functional requirements (NFRs). Technical requirements define what is required to deliver the desired function or behavior from a system to a user's standards. Technical requirements can be performance factors, accessibility, versatility, logging, control and &lt;a href="https://www.techtarget.com/searchdatabackup/definition/backup"&gt;backup&lt;/a&gt;.&lt;/p&gt;
 &lt;p&gt;Focusing solely on functional requirements at the expense of non-functional requirements can cause major problems. Functional requirements might be considered met even when the non-functional requirements are not. This can still mean the product is unusable, such as in consideration of performance requirements. For example, the functional requirement might be to produce a sales report, but if it takes 12 hours to finish, it might not be usable. If &lt;a href="https://www.techtarget.com/searchsecurity/opinion/Security-hygiene-and-posture-management-requires-new-tools"&gt;security NFRs&lt;/a&gt; are missed, there might be legal or financial ramifications.&lt;/p&gt;
&lt;/section&gt;   
&lt;section class="section main-article-chapter" data-menu-title="Functional requirements, business requirements and user requirements"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Functional requirements, business requirements and user requirements&lt;/h2&gt;
 &lt;p&gt;Functional requirements can be thought of as the "how" in a project. They define the plan of implementation and how each section works together. The business and &lt;a href="https://www.techtarget.com/searchenterprisedesktop/opinion/Redefining-DEX-Is-user-sentiment-a-requirement"&gt;user requirements&lt;/a&gt; set the "why" of the project.&lt;/p&gt;
 &lt;p&gt;The business requirements are the overarching reason the project is started and what it hopes to achieve. These might be to increase user retention or improve profitability. The functional requirements then slot into how these are accomplished with definitive testing during the project.&lt;/p&gt;
 &lt;figure class="main-article-image full-col" data-img-fullsize="https://www.theserverside.com/rms/onlineImages/software_quality-types_software_requirements-f.png"&gt;
  &lt;img data-src="https://www.theserverside.com/rms/onlineImages/software_quality-types_software_requirements-f_mobile.png" class="lazy" data-srcset="https://www.theserverside.com/rms/onlineImages/software_quality-types_software_requirements-f_mobile.png 960w,https://www.theserverside.com/rms/onlineImages/software_quality-types_software_requirements-f.png 1280w" alt="A chart comparing three types of project requirements: business, user and functional." height="288" width="559"&gt;
  &lt;figcaption&gt;
   &lt;i class="icon pictures" data-icon="z"&gt;&lt;/i&gt;Business and user requirements set the 'why' of a project. Functional requirements cover the 'how.'
  &lt;/figcaption&gt;
  &lt;div class="main-article-image-enlarge"&gt;
   &lt;i class="icon" data-icon="w"&gt;&lt;/i&gt;
  &lt;/div&gt;
 &lt;/figure&gt;
 &lt;p&gt;User requirements are the more nebulous needs for the user. These might be &lt;a href="https://www.techtarget.com/searchsoftwarequality/definition/UX-research"&gt;UI/UX considerations&lt;/a&gt; or user feature demands for the product to accomplish. For example, a dark mode is a user requirement that adds no specific business benefit but has associated functional requirements and costs.&lt;/p&gt;
 &lt;p&gt;&lt;i&gt;Further explore the &lt;/i&gt;&lt;a href="https://www.techtarget.com/searchsoftwarequality/answer/Functional-and-nonfunctional-requirements"&gt;&lt;i&gt;difference between functional versus non-functional requirements&lt;/i&gt;&lt;/a&gt;&lt;i&gt; in software engineering, with clear examples. &lt;/i&gt;&lt;/p&gt;
&lt;/section&gt;</body>
            <description>Functional requirements are the desired operations of a program or system.</description>
            <image>https://cdn.ttgtmedia.com/visuals/digdeeper/5.jpg</image>
            <link>https://www.techtarget.com/whatis/definition/functional-requirements</link>
            <pubDate>Tue, 12 Aug 2025 17:04:00 GMT</pubDate>
            <title>What are functional requirements?</title>
        </item>
        <item>
            <body>&lt;p&gt;One of the biggest problems with the development and deployment of server-side applications in Java is figuring out how and where to host them.&lt;/p&gt; 
&lt;p&gt;HTML and JavaScript applications written in React or Angular can be easily deployed into free or low-cost hosting platforms such as GitHub Pages or &lt;a href="https://www.theserverside.com/video/Host-a-static-website-on-AWS-with-Amazon-S3-and-Route-53"&gt;Amazon S3&lt;/a&gt;. Full deployment is just a matter of copying files to the server.&lt;/p&gt; 
&lt;p&gt;That's not the case with server-side &lt;a href="https://www.theserverside.com/video/Spring-vs-Spring-Boot-vs-the-Spring-Framework"&gt;Java and Spring Boot&lt;/a&gt; applications. Java apps need more than an internet-attached file server to work. They require a full Java runtime to function, and provisioning that is a moderately involved process.&lt;/p&gt; 
&lt;section class="section main-article-chapter" data-menu-title="Spring Boot deployment with Beanstalk"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Spring Boot deployment with Beanstalk&lt;/h2&gt;
 &lt;p&gt;However, there is a fairly simple and somewhat compelling option if you're working with AWS. &lt;a href="https://www.techtarget.com/searchcloudcomputing/video/Deploy-apps-faster-with-this-AWS-Elastic-Beanstalk-tutorial"&gt;Use Amazon's Elastic Beanstalk&lt;/a&gt; as your Java or Spring Boot hosting environment.&lt;/p&gt;
 &lt;p&gt;Amazon Beanstalk makes it incredibly easy to deploy RESTful APIs written in Jakarta EE, or HTML-based applications written in Spring Web. Those steps are as follows:&lt;/p&gt;
 &lt;ol class="default-list"&gt; 
  &lt;li&gt;Build and test your Java or Spring Boot application as you normally would.&lt;/li&gt; 
  &lt;li&gt;Configure your &lt;a href="https://www.theserverside.com/video/How-to-use-the-Spring-Boot-applicationproperties-file"&gt;application.properties file&lt;/a&gt; so your app runs on port 5000.&lt;/li&gt; 
  &lt;li&gt;Use &lt;a href="https://www.theserverside.com/video/Learn-Maven-tutorial-for-beginners"&gt;Maven or Gradle&lt;/a&gt; to package your application as a JAR or WAR file.&lt;/li&gt; 
  &lt;li&gt;Create a Beanstalk environment and deploy your application.&lt;/li&gt; 
 &lt;/ol&gt;
&lt;/section&gt;    
&lt;section class="section main-article-chapter" data-menu-title="Java, Spring and the AWS Cloud"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Java, Spring and the AWS Cloud&lt;/h2&gt;
 &lt;p&gt;In less than five minutes you can have a server-side, Java- or Spring Boot-based application deployed and hosted in the cloud.&lt;/p&gt;
 &lt;p&gt;Furthermore, &lt;a href="https://www.techtarget.com/searchcloudcomputing/video/AWS-Auto-Scaling-tutorial"&gt;autoscaling and load-balancing&lt;/a&gt; are all taken care of by the Beanstalk environment, so pointing a domain name at your instance is as simple as pointing a Route 53 domain name at the Beanstalk instance. There's no need to configure load balancers or elastic IPs.&lt;/p&gt;
 &lt;p&gt;Enterprise deployments with containers, using the &lt;a href="https://www.theserverside.com/video/How-to-deploy-Spring-Boot-apps-in-AWS"&gt;Elastic Container Service&lt;/a&gt; or spinning up a &lt;a href="https://www.techtarget.com/searchitoperations/video/Create-an-Amazon-EKS-cluster-and-deploy-Docker-containers"&gt;Kubernetes cluster&lt;/a&gt;, are all the rage these days. Sometimes, though, there's value in keeping it simple. If you want a simple deployment of Spring Boot and Java apps, AWS Beanstalk is one of the simplest ways to go.&lt;/p&gt;
 &lt;p&gt;&lt;i&gt;Cameron McKenzie has been a Java EE software engineer for 20 years. His current specialties include Agile development; DevOps; Spring; and container-based technologies such as Docker, Swarm and Kubernetes.&lt;/i&gt;&lt;/p&gt;
&lt;/section&gt;</body>
            <description>Think Java and Spring Boot applications are cumbersome to deploy? Let's let Amazon's Beanstalk put that myth to rest.</description>
            <link>https://www.theserverside.com/video/Java-Spring-Boot-and-AWS-Elastic-Beanstalk</link>
            <pubDate>Fri, 08 Aug 2025 13:10:00 GMT</pubDate>
            <title>Java, Spring Boot and AWS' Elastic Beanstalk</title>
        </item>
        <item>
            <body>&lt;p&gt;Scrum certification is an extremely challenging credential to achieve. There is a &lt;a href="https://www.theserverside.com/video/My-2024-Scrum-Guide-updates"&gt;great deal of nuance&lt;/a&gt; to the text of the Scrum Guide, which makes proper interpretation and application of the guide tricky. Furthermore, the threshold to pass the Professional Scrum Master (PSM1) exam is an intimidating 85%.&lt;br&gt;&lt;br&gt;With this tip, learn how to do the following:&lt;/p&gt; 
&lt;ul class="default-list"&gt; 
 &lt;li&gt;Select the &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/Top-Scrum-certifications-Which-path-to-choose"&gt;appropriate Scrum master certification&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;Ace the exam's toughest questions.&lt;/li&gt; 
 &lt;li&gt;Improve your certification score with a simple approach.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;section class="section main-article-chapter" data-menu-title="How to select a Scrum master certification"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;How to select a Scrum master certification&lt;/h2&gt;
 &lt;p&gt;The first step in the certification process is to choose which credential to obtain. Two widely respected Scrum master credentials are as follows:&lt;/p&gt;
 &lt;ul class="default-list"&gt; 
  &lt;li&gt;&lt;b&gt;Agile Alliance's Certified Scrum Master. &lt;/b&gt;This certification requires a two-day training class. The 60-minute exam is 50 multiple-choice questions, and the passing grade is 74%. The certification must be renewed every two years. The exam questions focus on the Scrum framework, Scrum roles, &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/The-Scrum-events-explained"&gt;events&lt;/a&gt; and artifacts. It is based on Scrum.org's Scrum Guide as well as the &lt;a href="https://www.techtarget.com/searchcio/definition/Agile-Manifesto"&gt;Agile Manifesto&lt;/a&gt; and Scrum Alliance guides.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Scrum.org's Professional Scrum Master. &lt;/b&gt;This certification offers training courses but does not require them. The 60-minute exam has 80 multiple-choice and true-false questions and is based primarily on the Scrum Guide. The exam questions focus on Scrum competencies, including understanding and applying the Scrum framework, managing people and teams and managing projects with agility.&lt;/li&gt; 
 &lt;/ul&gt;
 &lt;div class="youtube-iframe-container"&gt;
  &lt;iframe id="ytplayer-0" src="https://www.youtube.com/embed/tKFs2xQRRIE?autoplay=0&amp;amp;modestbranding=1&amp;amp;rel=0&amp;amp;widget_referrer=null&amp;amp;enablejsapi=1&amp;amp;origin=https://www.theserverside.com" type="text/html" height="360" width="640" frameborder="0"&gt;&lt;/iframe&gt;
 &lt;/div&gt;
 &lt;p&gt;Ultimately, both certifications are well-respected; the choice should be based on your career goals. The CSM certification is more useful if you are focused on the tactical implementation of Scrum whereas the PSM is more valuable if your focus is to apply Scrum more strategically.&lt;/p&gt;
 &lt;p&gt;Once you have selected a certification, it is critical to follow the process for certification outlined by the certifying body. Be sure to use their recommended study materials, classes and practice exams for preparation. This ensures that your preparation material is aligned with the exam's focus. External study resources can help test takers apply extra attention to the more difficult exam content.&lt;/p&gt;
&lt;/section&gt;      
&lt;section class="section main-article-chapter" data-menu-title="The toughest Scrum master exam questions"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;The toughest Scrum master exam questions&lt;/h2&gt;
 &lt;p&gt;In my work with individuals pursuing accreditation, I have found the following 10 Scrum master certification exam questions to be the most challenging.&lt;/p&gt;
 &lt;p&gt;Students struggle with these questions because they deal with topics not explicitly covered in the Scrum Guide, such as the following:&lt;/p&gt;
 &lt;ul class="default-list"&gt; 
  &lt;li&gt;Product integration.&lt;/li&gt; 
  &lt;li&gt;Team dynamics.&lt;/li&gt; 
  &lt;li&gt;Active adaptation.&lt;/li&gt; 
  &lt;li&gt;Stakeholder communication.&lt;/li&gt; 
 &lt;/ul&gt;
 &lt;p&gt;Despite the difficulty of these questions, a simple trick makes it incredibly easy to answer them.&lt;/p&gt;
 &lt;p&gt;But first, answer these 10 tough Scrum master certification exam questions. Then, I'll explain a trick to help pass the exam. For those on the margins, the trick could be the difference between passing the test and failing it. For others, it will be the difference between a passing score and close to a perfect score on the &lt;a target="_blank" href="https://www.scrum.org/professional-scrum-certifications" rel="noopener"&gt;Scrum exams&lt;/a&gt;.&lt;/p&gt;
 &lt;p&gt;The preparation journey starts with these 10 tough Scrum certification exam questions.&lt;/p&gt;
&lt;/section&gt;       
&lt;section class="section main-article-chapter" data-menu-title="10 Scrum certification exam questions and answers"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;10 Scrum certification exam questions and answers&lt;/h2&gt;
 &lt;p&gt; &lt;script src="https://cdn.ttgtmedia.com/rms/editorial/MyOtherNewQuiz.js"&gt;&lt;/script&gt; &lt;script src="https://cdn.ttgtmedia.com/quiz/quiz.js"&gt;&lt;/script&gt; &lt;/p&gt;
 &lt;h3&gt;How to improve your Scrum certification exam score&lt;/h3&gt;
 &lt;p&gt;I promised to reveal a trick to help boost your score on Scrum certification exams, so here it is.&lt;/p&gt;
 &lt;p&gt;Reframe the Scrum question so it's not about software development.&lt;/p&gt;
 &lt;p&gt;Scrum is a popular framework for organizations to apply Agile methodologies to software development. However, Scrum values find plenty of use in other industries such as manufacturing and construction.&lt;/p&gt;
 &lt;p&gt;So, take the Scrum questions out of a software development context. Imagine using it to build a house, or even a shipwreck survival scenario. You'll better understand and appreciate the Scrum framework and values and how to apply them.&lt;br&gt;&lt;br&gt;Read our &lt;a href="https://www.theserverside.com/quiz/More-Scrum-master-certification-exam-questions"&gt;second collection of Scrum master exam questions&lt;/a&gt; for some examples of Scrum quiz questions, reframed outside of a software development context.&lt;/p&gt;
 &lt;p&gt;&lt;b&gt;Editor's note: &lt;/b&gt;&lt;i&gt;This article was updated in 2025 to include information about choosing a Scrum master certification.&lt;/i&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;i&gt;&lt;br&gt;Darcy DeClute is a technical trainer and Agile coach who helps organizations apply Scrum-based principles to adopt a modern DevOps stack. She is a certified Professional Scrum Master, Professional Scrum Developer and Professional Scrum Product Owner as well as author of Scrum Master Certification Guide.&lt;/i&gt;&lt;/p&gt;
 &lt;p&gt;&lt;i&gt;Gerie Owen is a QA engineering manager at Roobrik. She is a conference presenter and author on technology and testing topics, and a certified Scrum master.&lt;/i&gt;&lt;/p&gt;
&lt;/section&gt;</body>
            <description>Are you ready for the Scrum master certification exam? Test yourself on these 10 tough Scrum master exam questions and answers.</description>
            <image>https://cdn.ttgtmedia.com/rms/onlineimages/certification_g483411626.jpg</image>
            <link>https://www.techtarget.com/searchsoftwarequality/quiz/Scrum-master-certification-exam-questions-and-answers</link>
            <pubDate>Tue, 05 Aug 2025 16:32:00 GMT</pubDate>
            <title>Scrum master certification exam questions and answers</title>
        </item>
        <item>
            <body>&lt;p&gt;The DRY (don't repeat yourself) principle, introduced by Andrew Hunt and David Thomas in &lt;i&gt;The Pragmatic Programmer&lt;/i&gt;, promotes the idea that every piece of knowledge should have a single, unambiguous, authoritative representation within a system.&lt;/p&gt; 
&lt;p&gt;By eliminating duplication in &lt;a href="https://www.techtarget.com/whatis/definition/code"&gt;code&lt;/a&gt; and process, DRY reduces &lt;a href="https://www.techtarget.com/whatis/definition/technical-debt"&gt;technical debt&lt;/a&gt;, enhances maintainability, and improves overall &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/Make-quality-a-priority-in-your-software-engineering-culture"&gt;software quality&lt;/a&gt;.&lt;/p&gt; 
&lt;section class="section main-article-chapter" data-menu-title="Redundancies in process and logic"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Redundancies in process and logic&lt;/h2&gt;
 &lt;p&gt;DRY addresses two common forms of repetition:&lt;/p&gt;
 &lt;ul class="default-list"&gt; 
  &lt;li&gt;&lt;b&gt;Redundant processes. &lt;/b&gt;This refers to repeated actions or &lt;a href="https://www.techtarget.com/searchcio/definition/workflow"&gt;workflows&lt;/a&gt; that can be streamlined or &lt;a href="https://www.techtarget.com/searchcontentmanagement/definition/workflow-automation"&gt;automated&lt;/a&gt;. By consolidating steps and introducing automation, teams reduce inefficiencies and errors.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;Redundant logic. &lt;/b&gt;This occurs when similar or identical code is written in multiple places. &lt;a href="https://www.techtarget.com/whatis/definition/abstraction"&gt;Abstraction&lt;/a&gt; -- through functions, classes or modules -- helps centralize functionality, allowing changes to propagate system-wide with minimal effort.&lt;/li&gt; 
 &lt;/ul&gt;
 &lt;p&gt;This focus on maintainability ensures that developers can make updates in one location and have them consistently applied throughout the system.&lt;/p&gt;
&lt;/section&gt;    
&lt;section class="section main-article-chapter" data-menu-title="Why DRY matters"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Why DRY matters&lt;/h2&gt;
 &lt;p&gt;Following the DRY principle brings several tangible benefits.&lt;/p&gt;
 &lt;p&gt;First, it improves maintainability and consistency, making it easier for developers to update &lt;a href="https://www.techtarget.com/whatis/definition/codebase-code-base"&gt;codebases &lt;/a&gt;without introducing &lt;a href="https://www.techtarget.com/searchsoftwarequality/definition/bug"&gt;bugs&lt;/a&gt;. It also leads to greater readability and collaboration across development teams. Finally, it reduces the risk of copy-and-paste errors, which can occur when duplicated code is not consistently updated.&lt;/p&gt;
 &lt;p&gt;However, &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/Developer-vs-DevOps-engineer-similarities-and-differences"&gt;developers&lt;/a&gt; must balance DRY with practicality. Over-abstraction, particularly when done prematurely, can lead to convoluted code that's difficult to understand and maintain. This is why many developers follow the &lt;i&gt;rule of three&lt;/i&gt; -- wait until code is repeated at least three times before abstracting it.&lt;/p&gt;
 &lt;div class="youtube-iframe-container"&gt;
  &lt;iframe id="ytplayer-0" src="https://www.youtube.com/embed/rQ9Ds8Ftfnc?autoplay=0&amp;amp;modestbranding=1&amp;amp;rel=0&amp;amp;widget_referrer=null&amp;amp;enablejsapi=1&amp;amp;origin=https://www.theserverside.com" type="text/html" height="360" width="640" frameborder="0"&gt;&lt;/iframe&gt;
 &lt;/div&gt;
&lt;/section&gt;     
&lt;section class="section main-article-chapter" data-menu-title="DRY versus WET, AHA and other principles"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;DRY versus WET, AHA and other principles&lt;/h2&gt;
 &lt;p&gt;The DRY principle is often contrasted with several other principles:&lt;/p&gt;
 &lt;figure class="main-article-image half-col" data-img-fullsize="https://www.techtarget.com/rms/onlineImages/software_quality-dry_vs_wet_code.png"&gt;
  &lt;img data-src="https://www.techtarget.com/rms/onlineImages/software_quality-dry_vs_wet_code_mobile.png" class="lazy" data-srcset="https://www.techtarget.com/rms/onlineImages/software_quality-dry_vs_wet_code_mobile.png 960w,https://www.techtarget.com/rms/onlineImages/software_quality-dry_vs_wet_code.png 1280w" alt="Info box comparing DRY vs. WET code."&gt;
  &lt;figcaption&gt;
   &lt;i class="icon pictures" data-icon="z"&gt;&lt;/i&gt;How DRY vs. WET principles compare.
  &lt;/figcaption&gt;
  &lt;div class="main-article-image-enlarge"&gt;
   &lt;i class="icon" data-icon="w"&gt;&lt;/i&gt;
  &lt;/div&gt;
 &lt;/figure&gt;
 &lt;ul class="default-list"&gt; 
  &lt;li&gt;&lt;b&gt;WET&lt;/b&gt; &lt;b&gt;(write everything twice or we enjoy typing).&lt;/b&gt; This is the opposite of DRY, and implies that code duplication is common, usually at the cost of &lt;a href="https://www.techtarget.com/searchsoftwarequality/tip/5-ways-to-write-maintainable-automation-code"&gt;maintainability&lt;/a&gt;.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;AHA&lt;/b&gt; &lt;b&gt;(avoid hasty abstractions)&lt;/b&gt;. AHA is a more flexible philosophy that discourages premature abstraction in favor of gradual, well-considered generalization.&lt;/li&gt; 
  &lt;li&gt;&lt;b&gt;SRP&lt;/b&gt; &lt;b&gt;(single responsibility principle).&lt;/b&gt; A part of SOLID design principles, &lt;a href="https://www.techtarget.com/whatis/definition/Single-Responsibility-Principle-SRP"&gt;SRP&lt;/a&gt; ensures each module or class has one purpose, complementing DRY by reinforcing modularity and focus.&lt;/li&gt; 
 &lt;/ul&gt;
 &lt;p&gt;While DRY aims to eliminate repetition, these related principles offer guidelines for how and when to abstract code in a maintainable way.&lt;/p&gt;
&lt;/section&gt;     
&lt;section class="section main-article-chapter" data-menu-title="How to apply DRY effectively"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;How to apply DRY effectively&lt;/h2&gt;
 &lt;p&gt;To put DRY into practice, developers should adhere to the following:&lt;/p&gt;
 &lt;ul class="default-list"&gt; 
  &lt;li&gt;Use functions, methods or modules to encapsulate repeated logic.&lt;/li&gt; 
  &lt;li&gt;Apply the rule of three to avoid premature abstraction.&lt;/li&gt; 
  &lt;li&gt;Refactor similar code into &lt;a href="https://www.techtarget.com/whatis/definition/template"&gt;templates&lt;/a&gt;, shared utilities or classes.&lt;/li&gt; 
  &lt;li&gt;Avoid repeating configuration, documentation or business rules across systems.&lt;/li&gt; 
  &lt;li&gt;Normalize databases to prevent data duplication.&lt;/li&gt; 
  &lt;li&gt;Use automation tools to reduce repeated manual steps in development workflows.&lt;/li&gt; 
 &lt;/ul&gt;
 &lt;p&gt;These techniques help developers create systems that are more &lt;a href="https://www.techtarget.com/searchdatacenter/definition/scalability"&gt;scalable&lt;/a&gt;, testable and adaptable to change.&lt;/p&gt;
 &lt;p&gt;&lt;i&gt;Discover how &lt;/i&gt;&lt;a href="https://www.techtarget.com/searchsoftwarequality/answer/What-coding-standards-in-software-engineering-should-we-follow"&gt;&lt;i&gt;coding standards boost quality and efficiency in software projects&lt;/i&gt;&lt;/a&gt;&lt;i&gt; by following conventions that support the five pillars of code quality.&lt;/i&gt;&lt;/p&gt;
&lt;/section&gt;</body>
            <description>The DRY (don't repeat yourself) principle, introduced by Andrew Hunt and David Thomas in 'The Pragmatic Programmer,' promotes the idea that every piece of knowledge should have a single, unambiguous, authoritative representation within a system.</description>
            <image>https://cdn.ttgtmedia.com/visuals/digdeeper/3.jpg</image>
            <link>https://www.techtarget.com/whatis/definition/DRY-principle</link>
            <pubDate>Mon, 04 Aug 2025 14:10:00 GMT</pubDate>
            <title>What is the DRY principle?</title>
        </item>
        <item>
            <body>&lt;p&gt;Imperative programming is a software development paradigm where every step is implicitly &lt;a href="https://www.techtarget.com/whatis/definition/code"&gt;coded&lt;/a&gt; to solve a problem. In imperative programming, every &lt;a href="https://www.techtarget.com/whatis/definition/operation"&gt;operation&lt;/a&gt; is coded and the code itself specifies how the problem is to be solved. Most traditional programing languages are imperative.&lt;/p&gt; 
&lt;p&gt;Imperative programming requires an understanding of the functions necessary to solve a problem, rather than a reliance on models that are able to solve it. The focus of imperative programming is &lt;i&gt;how&lt;/i&gt; the problem should be solved, which requires a detailed step-by-step guide. Because the written code performs the functions instead of models, the programmer must code each step. Procedural and object-oriented programming (&lt;a href="https://www.techtarget.com/searchapparchitecture/definition/object-oriented-programming-OOP"&gt;OOP&lt;/a&gt;) languages fall under imperative programming, such as &lt;a href="https://www.techtarget.com/searchwindowsserver/definition/C"&gt;C&lt;/a&gt;, &lt;a href="https://www.techtarget.com/searchdatamanagement/definition/C"&gt;C++&lt;/a&gt;, &lt;a href="https://www.techtarget.com/whatis/definition/C-Sharp"&gt;C#&lt;/a&gt; and &lt;a href="https://www.theserverside.com/definition/Java"&gt;Java&lt;/a&gt;.&lt;/p&gt; 
&lt;figure class="main-article-image half-col" data-img-fullsize="https://www.techtarget.com/rms/onlineimages/whatis-object_oriented_programming.png"&gt;
 &lt;img data-src="https://www.techtarget.com/rms/onlineimages/whatis-object_oriented_programming_mobile.png" class="lazy" data-srcset="https://www.techtarget.com/rms/onlineimages/whatis-object_oriented_programming_mobile.png 960w,https://www.techtarget.com/rms/onlineimages/whatis-object_oriented_programming.png 1280w" alt="Object in object-oriented programming graphic."&gt;
 &lt;figcaption&gt;
  &lt;i class="icon pictures" data-icon="z"&gt;&lt;/i&gt;Object-oriented languages fall under the umbrella of imperative programming.
 &lt;/figcaption&gt;
 &lt;div class="main-article-image-enlarge"&gt;
  &lt;i class="icon" data-icon="w"&gt;&lt;/i&gt;
 &lt;/div&gt;
&lt;/figure&gt; 
&lt;section class="section main-article-chapter" data-menu-title="Imperative vs. declarative programming"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Imperative vs. declarative programming&lt;/h2&gt;
 &lt;p&gt;Imperative programming contrasts with &lt;a href="https://www.techtarget.com/searchitoperations/definition/declarative-programming"&gt;declarative programming&lt;/a&gt;. Declarative programming focuses on &lt;i&gt;what&lt;/i&gt; needs to be solved instead of &lt;i&gt;how&lt;/i&gt;. Declarative programming provides a constant to check to ensure the problem is solved correctly, but does not provide instructions on how to solve the problem. The exact manner in which the problem is solved is defined by the programming language's implementation through models. Declarative programming is also called &lt;a href="https://www.techtarget.com/searchsoftwarequality/definition/model-driven-development"&gt;model-based programming&lt;/a&gt;. Functional, domain-specific (DSL) and logical programming languages fit under declarative programming, such as Structured Query Language (&lt;a href="https://www.techtarget.com/searchdatamanagement/definition/SQL"&gt;SQL&lt;/a&gt;), Haskell, &lt;a href="https://www.theserverside.com/definition/HTML-Hypertext-Markup-Language"&gt;HTML&lt;/a&gt; and &lt;a href="https://www.techtarget.com/searchitoperations/definition/Terraform"&gt;Terraform&lt;/a&gt;/&lt;a target="_blank" href="https://opentofu.org/" rel="noopener"&gt;OpenTofu&lt;/a&gt;.&lt;/p&gt;
 &lt;p&gt;A simplified example to distinguish between an imperative and declarative approach is to think of giving driving directions. An imperative approach would provide step-by-step instructions on how to arrive at a given destination. A declarative approach would provide the address of the destination, without concern about how it's found.&lt;/p&gt;
 &lt;p&gt;The models from which declarative programming gets its functions are usually created through imperative programming. As better methods for functions are found through imperative programming, they can be packaged into models to be called upon by declarative programming.&lt;/p&gt;
&lt;/section&gt;    
&lt;section class="section main-article-chapter" data-menu-title="Types of imperative programming models"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Types of imperative programming models&lt;/h2&gt;
 &lt;p&gt;Imperative programming simply means using a series of steps to get to the desired end. Many more programming paradigms have been created to extend their usefulness and efficiency.&lt;/p&gt;
 &lt;p&gt;&lt;a href="https://www.techtarget.com/searchsoftwarequality/definition/structured-programming-modular-programming"&gt;Structured programming&lt;/a&gt; adds simple logical structures to imperative programming, such as &lt;i&gt;do-while&lt;/i&gt;, &lt;i&gt;for&lt;/i&gt; and loops. These simple structures removed the need for repeated confusing &lt;i&gt;goto&lt;/i&gt; statements, which were used by early languages.&lt;/p&gt;
 &lt;p&gt;Modular programming creates code that is repeatable and designed to be reused. It creates modules that other programs or sections of code can call with defined inputs and outputs.&lt;/p&gt;
 &lt;p&gt;Procedural programming uses subroutines or functions to divide up the program and make it easier to program and to maintain. The use of functions can extract away some of the complicated code structures and help with readability. These functions can also be kept in other modules and imported into new code. It's an integral part of &lt;a href="https://www.techtarget.com/whatis/definition/DRY-principle"&gt;DRY&lt;/a&gt; (don't repeat yourself) programming.&lt;/p&gt;
 &lt;p&gt;Object-oriented programming extends functions and &lt;a href="https://www.techtarget.com/searchdatamanagement/definition/data-structure"&gt;data structures&lt;/a&gt; into objects. These objects represent programmed classes and are highly reusable and can be extended.&lt;/p&gt;
&lt;/section&gt;      
&lt;section class="section main-article-chapter" data-menu-title="Imperative programming languages"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Imperative programming languages&lt;/h2&gt;
 &lt;p&gt;Most traditional programming languages are considered imperative languages, including the following:&lt;/p&gt;
 &lt;ul class="default-list"&gt; 
  &lt;li&gt;Assembly language.&lt;/li&gt; 
  &lt;li&gt;&lt;a href="https://www.techtarget.com/whatis/definition/FORTRAN-FORmula-TRANslation"&gt;Fortran&lt;/a&gt;.&lt;/li&gt; 
  &lt;li&gt;&lt;a href="https://www.techtarget.com/searchitoperations/definition/COBOL-Common-Business-Oriented-Language"&gt;COBOL&lt;/a&gt;.&lt;/li&gt; 
  &lt;li&gt;&lt;a href="https://www.techtarget.com/whatis/definition/BASIC-Beginners-All-purpose-Symbolic-Instruction-Code"&gt;BASIC&lt;/a&gt;.&lt;/li&gt; 
  &lt;li&gt;C.&lt;/li&gt; 
  &lt;li&gt;Java.&lt;/li&gt; 
  &lt;li&gt;&lt;a href="https://www.techtarget.com/searchbusinessanalytics/definition/R-programming-language"&gt;R&lt;/a&gt;.&lt;/li&gt; 
  &lt;li&gt;Pascal.&lt;/li&gt; 
 &lt;/ul&gt;
 &lt;p&gt;Since declarative programming has many advantages, some imperative languages can also be extended with declarative functions, use a mix of declarative and imperative, or can be used in a purely declarative style.&lt;/p&gt;
 &lt;p&gt;C++ and C# have included standard libraries with declarative functions. LINQ is a declarative sub-language in C# for databases.&lt;/p&gt;
 &lt;p&gt;&lt;a href="https://www.theserverside.com/definition/JavaScript"&gt;JavaScript&lt;/a&gt; has been enhanced with declarative structures. Modern frameworks like &lt;a href="https://www.techtarget.com/searchapparchitecture/definition/React-Native"&gt;React&lt;/a&gt; use declarative principles to define the result instead of the process of building the page.&lt;/p&gt;
 &lt;p&gt;&lt;a href="https://www.techtarget.com/whatis/definition/Python"&gt;Python&lt;/a&gt; can be used either imperatively or declaratively. It was designed with an imperative approach, but contains declarative and functional programming methods. It can also be extended with functional libraries and frameworks.&lt;/p&gt;
&lt;/section&gt;       
&lt;section class="section main-article-chapter" data-menu-title="Advantages of imperative programming"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Advantages of imperative programming&lt;/h2&gt;
 &lt;p&gt;Imperative programming is well understood and simple to comprehend. It is the way most programmers start learning how to program. It uses clearly defined, logical steps, which makes it easier to debug and trace a program that has a bug or problem.&lt;/p&gt;
 &lt;p&gt;Computers are inherently imperative by nature; the &lt;a href="https://www.techtarget.com/whatis/definition/processor"&gt;CPU&lt;/a&gt; works by going through a series of steps. This makes imperative closer to how a computer functions, so imperative code can be faster and more memory efficient to run. It can also be more easily optimized.&lt;/p&gt;
 &lt;div class="youtube-iframe-container"&gt;
  &lt;iframe id="ytplayer-0" src="https://www.youtube.com/embed/exUCyp8PbD4?autoplay=0&amp;amp;modestbranding=1&amp;amp;rel=0&amp;amp;widget_referrer=null&amp;amp;enablejsapi=1&amp;amp;origin=https://www.theserverside.com" type="text/html" height="360" width="640" frameborder="0"&gt;&lt;/iframe&gt;
 &lt;/div&gt;
&lt;/section&gt;    
&lt;section class="section main-article-chapter" data-menu-title="Disadvantages of imperative programming"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;Disadvantages of imperative programming&lt;/h2&gt;
 &lt;p&gt;Imperative programming uses mutable states and data. This means that data can be changed during program execution and might not be what the programmer intended. The long list of steps and control calls can be more difficult to read and maintain than equivalent declarative code.&lt;/p&gt;
 &lt;p&gt;&lt;i&gt;Imperative programming is well-established and accessible, but the declarative model is gaining popularity due to the rising demand for complex, flexible features. Explore how &lt;/i&gt;&lt;a href="https://www.techtarget.com/searchapparchitecture/tip/A-brief-breakdown-of-declarative-vs-imperative-programming"&gt;&lt;i&gt;declarative vs. imperative programming compare&lt;/i&gt;&lt;/a&gt;&lt;i&gt;.&lt;/i&gt;&lt;/p&gt;
&lt;/section&gt;</body>
            <description>Imperative programming is a software development paradigm where every step is implicitly coded to solve a problem.</description>
            <image>https://cdn.ttgtmedia.com/visuals/digdeeper/5.jpg</image>
            <link>https://www.techtarget.com/whatis/definition/imperative-programming</link>
            <pubDate>Thu, 31 Jul 2025 00:00:00 GMT</pubDate>
            <title>What is imperative programming?</title>
        </item>
        <item>
            <body>&lt;p&gt;Autoscaling is one of the most powerful and underappreciated features in the entire AWS ecosystem.&lt;/p&gt; 
&lt;p&gt;AWS Auto Scaling enables an EC2 environment to grow and shrink based on the demand an application places on memory and CPU.&lt;/p&gt; 
&lt;p&gt;Need to ensure high availability while controlling costs? Have your AWS admins start to configure autoscaling groups (ASG) right away. Follow this simple tutorial to get started.&lt;/p&gt; 
&lt;section class="section main-article-chapter" data-menu-title="How to implement autoscaling in AWS"&gt;
 &lt;h2 class="section-title"&gt;&lt;i class="icon" data-icon="1"&gt;&lt;/i&gt;How to implement autoscaling in AWS&lt;/h2&gt;
 &lt;p&gt;In this AWS autoscaling crash course, beginners can follow these steps to learn about EC2 Auto Scaling from scratch:&lt;/p&gt;
 &lt;ol class="default-list"&gt; 
  &lt;li&gt;Create &lt;a target="_blank" href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-templates.html" rel="noopener"&gt;launch templates&lt;/a&gt;.&lt;/li&gt; 
  &lt;li&gt;Configure ASGs.&lt;/li&gt; 
  &lt;li&gt;Set scaling policies based on metrics related to &lt;a href="https://www.theserverside.com/answer/How-to-fix-high-Java-CPU-usage-problems"&gt;high CPU&lt;/a&gt; and memory usage.&lt;/li&gt; 
  &lt;li&gt;Stress-test the EC2 instances.&lt;/li&gt; 
  &lt;li&gt;Monitor the ASGs and watch AWS scale deployed EC2 instances.&lt;/li&gt; 
 &lt;/ol&gt;
 &lt;p&gt;Whether you need to manage an EKS cluster, deploy &lt;a href="https://www.theserverside.com/video/How-to-deploy-Spring-Boot-apps-in-AWS"&gt;Docker containers to ECS&lt;/a&gt;&amp;nbsp;or manage the lifecycle of a mature &lt;a href="https://www.theserverside.com/video/Spring-vs-Spring-Boot-vs-the-Spring-Framework"&gt;Spring Boot application&lt;/a&gt;, understanding how autoscaling in AWS works is an essential skill every cloud practitioner must possess.&lt;/p&gt;
 &lt;figure class="main-article-image full-col" data-img-fullsize="https://www.techtarget.com/rms/onlineimages/cloud_computing-autoscaling-f.png"&gt;
  &lt;img data-src="https://www.techtarget.com/rms/onlineimages/cloud_computing-autoscaling-f_mobile.png" class="lazy" data-srcset="https://www.techtarget.com/rms/onlineimages/cloud_computing-autoscaling-f_mobile.png 960w,https://www.techtarget.com/rms/onlineimages/cloud_computing-autoscaling-f.png 1280w" alt="Autoscaling in AWS." height="332" width="560"&gt;
  &lt;figcaption&gt;
   &lt;i class="icon pictures" data-icon="z"&gt;&lt;/i&gt;AWS autoscaling makes it possible to spin up and tear down EC2 instances based on demand.
  &lt;/figcaption&gt;
  &lt;div class="main-article-image-enlarge"&gt;
   &lt;i class="icon" data-icon="w"&gt;&lt;/i&gt;
  &lt;/div&gt;
 &lt;/figure&gt;
 &lt;p&gt;&lt;i&gt;Cameron McKenzie has been a Java EE software engineer for 20 years. His current specialties include Agile development; DevOps; Spring; and container-based technologies such as Docker, Swarm and Kubernetes.&lt;/i&gt;&lt;/p&gt;
&lt;/section&gt;</body>
            <description>Interested in optimizing performance and cost for applications? Learn how to create launch templates and empower EC2 instances to scale with this AWS Auto Scaling tutorial.</description>
            <link>https://www.techtarget.com/searchcloudcomputing/video/AWS-Auto-Scaling-tutorial</link>
            <pubDate>Mon, 21 Jul 2025 09:51:00 GMT</pubDate>
            <title>AWS Auto Scaling tutorial</title>
        </item>
        <title>TheServerSide.com</title>
        <ttl>60</ttl>
        <webMaster>webmaster@techtarget.com</webMaster>
    </channel>
</rss>
