<?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>Forem: Fakiha Rahman Soha</title>
    <description>The latest articles on Forem by Fakiha Rahman Soha (@fakihasoha).</description>
    <link>https://forem.com/fakihasoha</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3638651%2F022c9737-930c-459f-983a-4f2ffe0228c5.png</url>
      <title>Forem: Fakiha Rahman Soha</title>
      <link>https://forem.com/fakihasoha</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/fakihasoha"/>
    <language>en</language>
    <item>
      <title>What are Software Versions?</title>
      <dc:creator>Fakiha Rahman Soha</dc:creator>
      <pubDate>Mon, 16 Feb 2026 10:03:41 +0000</pubDate>
      <link>https://forem.com/fakihasoha/what-are-software-versions-1kpf</link>
      <guid>https://forem.com/fakihasoha/what-are-software-versions-1kpf</guid>
      <description>&lt;p&gt;I used to think software versions are consecutive numbers which change after every update.  &lt;/p&gt;

&lt;p&gt;Why does something go from v1.1 to v1.2?&lt;br&gt;
Why suddenly jump to v2.0? &lt;br&gt;
Did the developer just feel dramatic that day?&lt;br&gt;
Then one day, while building a small app, it finally clicked.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The First Release&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Imagine you and I build a simple app called TaskNest.&lt;br&gt;
It can create tasks and mark them complete. Nothing fancy.&lt;br&gt;
We launch it proudly as:&lt;br&gt;
&lt;strong&gt;v1.0.0&lt;/strong&gt;&lt;br&gt;
That first “1” feels powerful. It says:&lt;br&gt;
“This is real. This is stable. This is ready.”&lt;br&gt;
The zeros? They just mean nothing extra has happened yet.&lt;br&gt;
This format actually follows a simple idea called &lt;a href="https://semver.org/" rel="noopener noreferrer"&gt;Semantic Versioning. &lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;A Bug Appears&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The next day, someone reports:&lt;br&gt;
“If I create an empty task, the app crashes.”&lt;br&gt;
Ouch.&lt;br&gt;
We fix it immediately.&lt;br&gt;
No new features. No design changes. Just a repair.&lt;br&gt;
The version becomes:&lt;br&gt;
&lt;strong&gt;v1.0.1&lt;/strong&gt;&lt;br&gt;
Notice what changed? Only the last digit.&lt;br&gt;
That last number is like saying:&lt;br&gt;
“Relax. Nothing new. Just a small fix.”&lt;br&gt;
If we fix another tiny issue?&lt;br&gt;
 &lt;strong&gt;v1.0.2&lt;/strong&gt;&lt;br&gt;
Small repairs = small number change.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;A Feature Grows&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A week later, users ask:&lt;br&gt;
“Can we add deadlines to tasks?”&lt;br&gt;
That’s not a fix. That’s growth.&lt;br&gt;
We add deadlines. Everything still works as before. No one’s workflow breaks.&lt;br&gt;
Now it becomes:&lt;br&gt;
&lt;strong&gt;v1.1.0&lt;/strong&gt;&lt;br&gt;
The middle number increased.&lt;br&gt;
That middle number whispers:&lt;br&gt;
“Something new is here.”&lt;br&gt;
Later, we add categories.&lt;br&gt;
&lt;strong&gt;v1.2.0&lt;/strong&gt;&lt;br&gt;
More features. Still safe. Still compatible.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;The Big Decision&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Months pass. The app grows.&lt;br&gt;
Then we decide to redesign how tasks are stored internally.&lt;br&gt;
 Old saved data won’t work.&lt;br&gt;
 The API changes.&lt;br&gt;
 Developers using our integration must update their code.&lt;br&gt;
This time, it’s serious.&lt;br&gt;
We release:&lt;br&gt;
&lt;strong&gt;v2.0.0&lt;/strong&gt;&lt;br&gt;
That jump from 1 to 2 isn’t about ego.&lt;br&gt;
 It’s about impact.&lt;br&gt;
It’s our way of telling the world:&lt;br&gt;
“Careful. This might break things.”&lt;/p&gt;

&lt;p&gt;And That’s It&lt;br&gt;
That’s versioning.&lt;br&gt;
Three numbers.&lt;br&gt;
Three signals.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Last number → small fix&lt;/li&gt;
&lt;li&gt;Middle number → new feature&lt;/li&gt;
&lt;li&gt;First number → breaking change&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s not random.&lt;br&gt;
It’s communication.&lt;/p&gt;

&lt;p&gt;When you see &lt;strong&gt;v2.1.3&lt;/strong&gt;, you’re not just seeing numbers.&lt;br&gt;
You’re seeing history.&lt;br&gt;
And now, every time I ship something, I don’t ask:&lt;br&gt;
“What number should I pick?”&lt;br&gt;
I ask:&lt;br&gt;
&lt;strong&gt;“How much did I change the story?”&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>softwaredevelopment</category>
      <category>software</category>
      <category>github</category>
    </item>
    <item>
      <title>What are Software Versions</title>
      <dc:creator>Fakiha Rahman Soha</dc:creator>
      <pubDate>Mon, 16 Feb 2026 10:03:41 +0000</pubDate>
      <link>https://forem.com/fakihasoha/what-are-software-versions-1a40</link>
      <guid>https://forem.com/fakihasoha/what-are-software-versions-1a40</guid>
      <description>&lt;p&gt;I used to think software versions are consecutive numbers which change after every update.  &lt;/p&gt;

&lt;p&gt;Why does something go from v1.1 to v1.2?&lt;br&gt;
Why suddenly jump to v2.0?&lt;br&gt;
Did the developer just feel dramatic that day?&lt;br&gt;
Then one day, while building a small app, it finally clicked.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The First Release&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Imagine you and I build a simple app called TaskNest.&lt;br&gt;
It can create tasks and mark them complete. Nothing fancy.&lt;br&gt;
We launch it proudly as:&lt;br&gt;
&lt;strong&gt;v1.0.0&lt;/strong&gt;&lt;br&gt;
That first “1” feels powerful. It says:&lt;br&gt;
“This is real. This is stable. This is ready.”&lt;br&gt;
The zeros? They just mean nothing extra has happened yet.&lt;br&gt;
This format actually follows a simple idea called &lt;a href="https://semver.org/" rel="noopener noreferrer"&gt;Semantic Versioning. &lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;A Bug Appears&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The next day, someone reports:&lt;br&gt;
“If I create an empty task, the app crashes.”&lt;br&gt;
Ouch.&lt;br&gt;
We fix it immediately.&lt;br&gt;
No new features. No design changes. Just a repair.&lt;br&gt;
The version becomes:&lt;br&gt;
&lt;strong&gt;v1.0.1&lt;/strong&gt;&lt;br&gt;
Notice what changed? Only the last digit.&lt;br&gt;
That last number is like saying:&lt;br&gt;
“Relax. Nothing new. Just a small fix.”&lt;br&gt;
If we fix another tiny issue?&lt;br&gt;
 &lt;strong&gt;v1.0.2&lt;/strong&gt;&lt;br&gt;
Small repairs = small number change.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;A Feature Grows&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A week later, users ask:&lt;br&gt;
“Can we add deadlines to tasks?”&lt;br&gt;
That’s not a fix. That’s growth.&lt;br&gt;
We add deadlines. Everything still works as before. No one’s workflow breaks.&lt;br&gt;
Now it becomes:&lt;br&gt;
&lt;strong&gt;v1.1.0&lt;/strong&gt;&lt;br&gt;
The middle number increased.&lt;br&gt;
That middle number whispers:&lt;br&gt;
“Something new is here.”&lt;br&gt;
Later, we add categories.&lt;br&gt;
&lt;strong&gt;v1.2.0&lt;/strong&gt;&lt;br&gt;
More features. Still safe. Still compatible.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;The Big Decision&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Months pass. The app grows.&lt;br&gt;
Then we decide to redesign how tasks are stored internally.&lt;br&gt;
 Old saved data won’t work.&lt;br&gt;
 The API changes.&lt;br&gt;
 Developers using our integration must update their code.&lt;br&gt;
This time, it’s serious.&lt;br&gt;
We release:&lt;br&gt;
&lt;strong&gt;v2.0.0&lt;/strong&gt;&lt;br&gt;
That jump from 1 to 2 isn’t about ego.&lt;br&gt;
 It’s about impact.&lt;br&gt;
It’s our way of telling the world:&lt;br&gt;
“Careful. This might break things.”&lt;/p&gt;

&lt;p&gt;And That’s It&lt;br&gt;
That’s versioning.&lt;br&gt;
Three numbers.&lt;br&gt;
Three signals.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Last number → small fix&lt;/li&gt;
&lt;li&gt;Middle number → new feature&lt;/li&gt;
&lt;li&gt;First number → breaking change&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s not random.&lt;br&gt;
It’s communication.&lt;/p&gt;

&lt;p&gt;When you see &lt;strong&gt;v2.1.3&lt;/strong&gt;, you’re not just seeing numbers.&lt;br&gt;
You’re seeing history.&lt;br&gt;
And now, every time I ship something, I don’t ask:&lt;br&gt;
“What number should I pick?”&lt;br&gt;
I ask:&lt;br&gt;
“How much did I change the story?”&lt;/p&gt;

</description>
      <category>softwaredevelopment</category>
      <category>software</category>
      <category>github</category>
    </item>
  </channel>
</rss>
