<?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: Burak</title>
    <description>The latest articles on Forem by Burak (@codingwithburak).</description>
    <link>https://forem.com/codingwithburak</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%2F932232%2F259391d7-fbcb-4f5b-9a64-78350893c1e0.jpg</url>
      <title>Forem: Burak</title>
      <link>https://forem.com/codingwithburak</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/codingwithburak"/>
    <language>en</language>
    <item>
      <title>Keeping scope focused - how unclear goals kill projects</title>
      <dc:creator>Burak</dc:creator>
      <pubDate>Wed, 14 Jan 2026 16:12:15 +0000</pubDate>
      <link>https://forem.com/codingwithburak/keeping-scope-focused-how-unclear-goals-kill-projects-4gcj</link>
      <guid>https://forem.com/codingwithburak/keeping-scope-focused-how-unclear-goals-kill-projects-4gcj</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;"Would our users like it if we added &lt;em&gt;X&lt;/em&gt;?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A seemingly harmless and straightforward question. We want to provide value, so why not implement a new feature?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This is the poison pill a project takes until it reaches a point of paralysis, and eventually gets abandoned.&lt;/strong&gt; But isn't it natural to introduce new features? How come could it kill a project?&lt;/p&gt;

&lt;h1&gt;
  
  
  The MVP that's lost in the ocean
&lt;/h1&gt;

&lt;p&gt;Let's say you are building a todo app. The goal is clear: &lt;em&gt;give the user a list, let them check boxes, and hide the completed tasks away.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The team meets up, everyone starts working on their tasks. The week passes.&lt;/p&gt;

&lt;p&gt;You gather around a table again. A brilliant idea is proposed: &lt;em&gt;"let's make the list collaborative."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Everyone forgets what they fought for the whole week - &lt;strong&gt;and the focus is now collaboration.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The plan is reshaped. &lt;em&gt;MVP will be collaborative. You log off.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  When the requirements change...
&lt;/h1&gt;

&lt;p&gt;...at an early stage like this, you have to &lt;strong&gt;rethink&lt;/strong&gt; what you are trying to accomplish.&lt;/p&gt;

&lt;p&gt;Each requirement stacks up complexity. Let's think of the requirements that the app would have had &lt;em&gt;without&lt;/em&gt; collab:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;single database table&lt;/strong&gt; for todos&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Maybe&lt;/em&gt; another table for users if you wanted to do sync&lt;/li&gt;
&lt;li&gt;A user interface that consists of &lt;em&gt;maybe 1-2 views.&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's see what collaboration adds to our stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A server is now &lt;strong&gt;unavoidable&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Not only do you need auth now, &lt;strong&gt;you also need access control&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Who has what permission in which list?&lt;/li&gt;
&lt;li&gt;Invite/share flow?&lt;/li&gt;
&lt;li&gt;The original designs now need to change &lt;strong&gt;because we need a share UI now&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;How do we reflect changes in real time again?&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Week 3
&lt;/h1&gt;

&lt;p&gt;Collaboration clearly isn't implemented yet, the tickets are sitting on the tracker, but "enthusiasm" is still there.&lt;/p&gt;

&lt;p&gt;Everyone in the team wants to create the perfect task tracking app.&lt;br&gt;
Wait, weren't we just doing to-dos? Or so you thought - because next week's focus will be all about implementing a kanban board, status fields, custom properties, Gantt charts, &lt;strong&gt;and by the end of the meeting - you went from to-do to reinventing Jira.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You peek at the backlog.&lt;br&gt;
39 tasks - all gray.&lt;br&gt;
You look at the finished tickets - 1 ticket closed in a full week. And it reads "add login ui".&lt;/p&gt;

&lt;p&gt;As progression isn't there, &lt;strong&gt;the team burns out, and the project gets abandoned.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  But we were gonna add AI?
&lt;/h1&gt;

&lt;p&gt;No you won't.&lt;/p&gt;

&lt;p&gt;Your requirements should not change at the first week of development. That's like planting onions in a field of roses because "onions got expensive."&lt;/p&gt;

&lt;p&gt;Here's the prescription for your next project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Before writing any code, set your requirements, clearly. Don't make it excessively detailed, but &lt;strong&gt;make sure your core value proposition will not change the next day.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Set your roadmap for the MVP. &lt;strong&gt;Don't add new features until you launch.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don't rush the MVP either.&lt;/strong&gt; The tests you skipped will haunt you in Q3.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything else should go to a whiteboard where you can pick ideas from after the launch.&lt;/p&gt;

&lt;p&gt;Your project deserves to shine, and your time doesn't deserve to go to waste. So don't let it happen.&lt;/p&gt;

</description>
      <category>startup</category>
      <category>programming</category>
      <category>beginners</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Get started with Git</title>
      <dc:creator>Burak</dc:creator>
      <pubDate>Sun, 25 Sep 2022 16:38:07 +0000</pubDate>
      <link>https://forem.com/codingwithburak/get-started-with-git-1781</link>
      <guid>https://forem.com/codingwithburak/get-started-with-git-1781</guid>
      <description>&lt;p&gt;Hi everyone! Have you ever found yourself in a situation where you broke your perfectly working code and didn't have a backup? If so, you might want to get started with Git. In this post, you will learn to initialize a Git repository, write some code, commit your code and push it to GitHub.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Git?
&lt;/h2&gt;

&lt;p&gt;Git is a version control system, developed by Linus Torvalds in 2005. It's used to manage different versions of source code. As an example, you have a program and it has a bug. Someone can fork your code, thus creating a new version of your source code, then implement a fix for the bug, and ask you to merge their changes to your version of the program. During that period, you implement a new feature in another part of your program. How do you combine these two versions? This is what Git does for you. When you accept the other developer's request to merge their code, their changes get applied to the modified files, but your local changes are still in tact. Using Git, every version of your files in a repository are tracked. And the version that acts like a checkpoint, is called a "commit". You can look at the commit history of your repository and get the older version back if something goes wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing Git
&lt;/h2&gt;

&lt;p&gt;To use Git, you need to install it first. &lt;/p&gt;

&lt;p&gt;On Windows, you can download from Git's website, or use &lt;code&gt;winget&lt;/code&gt; to install Git.&lt;/p&gt;

&lt;p&gt;On Linux, you can install Git from the repositories of your distribution. The package is usually called &lt;code&gt;git&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;On macOS, you can use Homebrew or install XCode.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating a repository
&lt;/h2&gt;

&lt;p&gt;Now that you have git installed, it's time to create a repository. You should start by creating a folder for your project. Once you create the folder, open a terminal and set your current directory to the folder.&lt;br&gt;
To initialize a repo, run the &lt;code&gt;git init&lt;/code&gt; command. It will initialize the repository with a main/master branch.&lt;/p&gt;
&lt;h2&gt;
  
  
  Adding a GitHub remote
&lt;/h2&gt;

&lt;p&gt;You created the repository, but you have nowhere to push it yet. For that reason, you should add a remote.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git remote add origin https://github.com/your-name/my-awesome-repo.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace your-name with your GitHub user name, and change the repository name to your own liking.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating a README and staging the change
&lt;/h2&gt;

&lt;p&gt;You can start by creating a README.md. Create it in the folder and go back to the terminal.&lt;br&gt;
README.md is currently untracked, and we want it to be tracked. To do this you can run &lt;code&gt;git add .&lt;/code&gt;, which will tell Git to track all untracked files. &lt;/p&gt;

&lt;h2&gt;
  
  
  Creating a commit
&lt;/h2&gt;

&lt;p&gt;Now you can commit your changes to the repository. To do that, run &lt;code&gt;git commit&lt;/code&gt;. This will launch an editor (typically vi), in which you can write your commit message. If you want to cancel the commit and go back, you can leave the message empty and the commit will be aborted.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pushing to GitHub
&lt;/h2&gt;

&lt;p&gt;To push your repo to GitHub, you can do &lt;code&gt;git push origin master&lt;/code&gt;, which will push your repository to the origin remote. You will need to authenticate in order to push the repository. You can use the GitHub extension in VSCode to take care of the authentication, or push using the GitHub Desktop app. If you need to push directly from the terminal, you will need to generate an access token on GitHub. You can see the instructions to do that &lt;a href="https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>git</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
