<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Burrak Leo</title>
    <description>The latest articles on DEV Community by Burrak Leo (@burrak_leo_b0a6d3ad85bbe8).</description>
    <link>https://dev.to/burrak_leo_b0a6d3ad85bbe8</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4202574%2Fe53780a1-a71b-4432-ab47-51aaff1c36a3.png</url>
      <title>DEV Community: Burrak Leo</title>
      <link>https://dev.to/burrak_leo_b0a6d3ad85bbe8</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/burrak_leo_b0a6d3ad85bbe8"/>
    <language>en</language>
    <item>
      <title>When The Schedule Slips, Cut Scope Before You Cut Test Time</title>
      <dc:creator>Burrak Leo</dc:creator>
      <pubDate>Mon, 02 Nov 2026 10:54:56 +0000</pubDate>
      <link>https://dev.to/burrak_leo_b0a6d3ad85bbe8/when-the-schedule-slips-cut-scope-before-you-cuttest-time-ic3</link>
      <guid>https://dev.to/burrak_leo_b0a6d3ad85bbe8/when-the-schedule-slips-cut-scope-before-you-cuttest-time-ic3</guid>
      <description>&lt;p&gt;When a software schedule slips, cut scope before you cut test time. Testing is the last stage before release, so it absorbs the delay that earlier stages create. In this author's judgment, a team that cuts it ships the same defects it would have found, only later and in front of users.&lt;/p&gt;

&lt;p&gt;This article explains why testing gets squeezed, how to start it earlier and what to do when the date will not move. &lt;/p&gt;

&lt;p&gt;Why does testing get squeezed?&lt;/p&gt;

&lt;p&gt;Testing gets squeezed because earlier stages run late and the release date stays fixed. In the seven-stage view of the software development lifecycle (SDLC), testing comes fifth, after planning, requirements analysis, design and development. Any delay upstream arrives at testing with no extra time attached.&lt;/p&gt;

&lt;p&gt;In this author's judgment, the squeeze is a planning problem more than a testing problem. The date was set before anyone knew how long the earlier stages would take. Testing is simply where the arithmetic fails.&lt;/p&gt;

&lt;p&gt;What does the testing stage produce?&lt;/p&gt;

&lt;p&gt;The testing stage checks the software against the requirements and fixes defects. Its typical output is test results and a release decision. That output list is a summary of common practice, not a standard.&lt;/p&gt;

&lt;p&gt;The release decision is the part that matters. It is the point where someone says yes or no to shipping. If test time is cut, the decision still gets made, but with less evidence behind it. In this author's judgment, a team that skips the evidence has not removed the decision. It has made the decision blind.&lt;/p&gt;

&lt;p&gt;How do you start testing before the testing stage?&lt;/p&gt;

&lt;p&gt;Start test planning in requirements analysis, because a requirement that cannot be checked is not finished. That is this author's judgment, and it moves much of the work out of the crunch at the end.&lt;/p&gt;

&lt;p&gt;Here is an illustrative pair that does not describe a real project. The requirement "the&lt;br&gt;
report should load quickly" cannot be checked, because two people will disagree on&lt;br&gt;
"quickly". The requirement "the report loads within a limit the team and stakeholders&lt;br&gt;
agree on, under a load they also agree on" can be checked, once the numbers are filled in. The second version tells the tester what to build a test around before any code exists. The same habit helps in the other direction. If a requirement is hard to turn into a check, the requirement is probably vague, and it is cheaper to fix it in analysis than in testing.&lt;/p&gt;

&lt;p&gt;Why test during development?&lt;/p&gt;

&lt;p&gt;Test during development so that defects surface while the code is still fresh and the stage is still open. The seven-stage view lists testing as its own stage, but nothing stops a team from checking work as it is built. That is the fix this author recommends for a squeezed Off-page support round 10: Software development lifecycle testing stage.&lt;/p&gt;

&lt;p&gt;An Agile team already works this way. Agile runs all seven stages inside each short cycle, and each cycle produces releasable software. Testing is part of every cycle, so it cannot be pushed to the end of the project. The V-Model takes a different route to a similar result. It pairs a matching test stage with every design step, which suits certification-&lt;br&gt;
heavy or safety-critical work.&lt;/p&gt;

&lt;p&gt;What should you cu instead of test time?&lt;/p&gt;

&lt;p&gt;Cut scope. When the date is fixed and the work is late, the honest options are to ship fewer features or to ship less tested software. In this author's judgment, the first option is almost always safer, because a missing feature is visible to everyone and an untested feature is a risk nobody can see.&lt;/p&gt;

&lt;p&gt;Cutting scope is easier when the product can launch in useful parts. The Incremental model builds and ships finished modules one at a time, and it fits products that can launch that way. A team using it can drop the last module and still release something complete.&lt;/p&gt;

&lt;p&gt;Two questions help decide what to cut:&lt;/p&gt;

&lt;p&gt;Which feature can wait for a later release without making this release useless?&lt;br&gt;
Which feature has the weakest test coverage today?&lt;/p&gt;

&lt;p&gt;If the answer to the second question is a feature the product depends on, that is a reason to hold the release, not a reason to ship it.&lt;/p&gt;

&lt;p&gt;How do you make the cut stick?&lt;/p&gt;

&lt;p&gt;Make the "cut scope before test time" rule visible before the pressure starts. Write down,&lt;br&gt;
at the start of the project, that scope is cut before test time. Name the person who owns&lt;br&gt;
the release decision. In this author's judgment, a rule agreed in calm weather is much&lt;br&gt;
easier to hold than one invented during a crisis.&lt;/p&gt;

&lt;p&gt;Handoffs help too. Handoffs fail when stage outputs are vague, because the next team guesses. Defining each stage's output and sign-off in writing gives testing something solid to start from. Under deadline pressure, documentation is the first thing cut, so making the&lt;br&gt;
update of the stage output part of the definition of done protects it. Off-page support round 10: Software development lifecycle&lt;/p&gt;

&lt;p&gt;What does a release need besides test results?&lt;/p&gt;

&lt;p&gt;A release needs a plan for going back. The deployment stage typically produces a live release and a rollback plan. If testing was thin, the rollback plan matters more, because the team will find problems in production. A plan that nobody has read is not a plan, so the team should check it before release day.&lt;/p&gt;

&lt;p&gt;After release, the maintenance stage fixes defects and keeps the software supported and up to date. In this author's judgment, defects that testing missed become maintenance work, so the time was not saved. It moved to a stage where fixing a defect disturbs real users.&lt;/p&gt;

&lt;p&gt;Where can you see the other common SDLC challenges?&lt;/p&gt;

&lt;p&gt;Testing is one of several predictable pressure points. The TekRevol guide to the SDLC covers six common challenges, including late security, failed handoffs and documentation that falls behind. You can read it &lt;a href="https://www.tekrevol.com/blogs/software-development-lifecycle/" rel="noopener noreferrer"&gt;in a table that pairs six common SDLC challenges with a fix.&lt;/a&gt; The table is TekRevol's judgment, except where it names a source, and the guide says so. Use it as a checklist for your own project. Not every row will apply.&lt;/p&gt;

&lt;p&gt;The takeaway&lt;br&gt;
Squeezed testing is a symptom of a date set too early. Start test planning in requirements analysis, test during development and agree in advance that scope goes before test time. Then the release decision rests on evidence.&lt;/p&gt;

</description>
      <category>management</category>
      <category>softwaredevelopment</category>
      <category>softwareengineering</category>
      <category>testing</category>
    </item>
    <item>
      <title>How to write an architecture decision record your team will actually read</title>
      <dc:creator>Burrak Leo</dc:creator>
      <pubDate>Tue, 27 Oct 2026 09:38:17 +0000</pubDate>
      <link>https://dev.to/burrak_leo_b0a6d3ad85bbe8/how-to-write-an-architecture-decision-record-your-team-will-actually-read-1bab</link>
      <guid>https://dev.to/burrak_leo_b0a6d3ad85bbe8/how-to-write-an-architecture-decision-record-your-team-will-actually-read-1bab</guid>
      <description>&lt;p&gt;An architecture decision record (ADR) is a short log entry for one significant design decision, and it works only if it is brief, specific and easy to find. Teams that skip ADRs tend to repeat old debates. Teams that write them badly end up with a folder nobody opens.&lt;/p&gt;

&lt;p&gt;This article covers which decisions deserve a record, what to put in one, and how to keep the records useful as the system changes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is an architecture decision record?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An ADR is a log of a workload's key decisions that shows how and why the system took its shape. That is how Microsoft's Azure Well-Architected guidance, updated April 13, 2026, describes it. The record captures the reasoning behind a choice, not only the choice.&lt;/p&gt;

&lt;p&gt;The reasoning is the part that disappears. Microsoft's guidance says undocumented decisions tend to be forgotten, which leads to repeated debates. A new engineer sees a design that looks odd, proposes the obvious fix, and the team spends time rediscovering why it was built that way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Which decisions deserve a record?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Write an ADR only for architecturally significant decisions, meaning choices that are costly to reverse. Martin Fowler's guide says an architect's key task is to reduce irreversibility, and it adds that what counts as architectural depends on what the developers consider important.&lt;/p&gt;

&lt;p&gt;In this author's judgment, these usually qualify:&lt;/p&gt;

&lt;p&gt;Choosing an architectural style, such as a modular monolith or microservices.&lt;br&gt;
Choosing a data store or a way to share data between components.&lt;/p&gt;

&lt;p&gt;Choosing synchronous calls or asynchronous messaging between parts of the system. Setting a boundary that a team will have to respect for years.&lt;/p&gt;

&lt;p&gt;Naming a variable does not qualify. If reversing the decision takes an afternoon, skip the record. If reversing it takes a quarter, write one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What goes in an ADR?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A useful ADR holds the problem and its context, the options considered, the decision with its trade-offs, and a status such as Proposed or Accepted. Keep each part to a few sentences.&lt;/p&gt;

&lt;p&gt;How do fitness functions fit with ADRs?&lt;/p&gt;

&lt;p&gt;A fitness function checks that the system still follows the decision the record describes. Wikipedia says architects should use fitness functions, which are tests of a quality goal such as response time, to keep the architecture in check as the system changes.&lt;/p&gt;

&lt;p&gt;This pairing matters because of architecture erosion. Perry and Wolf described the problem in 1992, according to Wikipedia: the implemented system drifts from the intended architecture. A record states the intent. A fitness function tests it. Without the test, the record becomes a statement about a design that no longer exists.&lt;/p&gt;

&lt;p&gt;For example, if a record says the checkout service must not call the email provider directly, a test can fail the build when someone adds that call. This example is illustrative.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where do ADRs sit among other architecture documents?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ADRs record decisions, and other documents show structure. No single diagram serves every reader, which is this author's judgment. Wikipedia notes that Philippe Kruchten's 4+1 view model, published in 1995, separates concerns across views, and that the C4 model helps teams model "just enough." The international standard for architecture description is ISO/IEC/IEEE 42010.&lt;/p&gt;

&lt;p&gt;Use views to show what the system looks like and ADRs to explain why. TekRevol's software architecture guide includes a &lt;a href="https://www.tekrevol.com/blogs/software-architecture-guide/" rel="noopener noreferrer"&gt;worked decision record for keeping order management in one deployable application&lt;/a&gt; next to a comparison of six architectural styles, which shows how a record can sit beside a style choice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The takeaway&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Write ADRs for decisions that are costly to reverse. Keep each one short, name the options and the consequences, append instead of rewriting, and test the intent with fitness functions. A good record answers the question a future engineer will ask: why did we build it this way?&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
