Project management tips for self-taught developers
Tags: productivity, programming, beginners, tutorial
Published: 2022-08-17 19:31:23

If you're a [self-taught dev](https://www.educative.io/blog/tips-self-taught-developers?eid=5082902844932096) or new to software development, it can be challenging to identify what tools and strategies will best help you keep your project organized. Since you have a limited amount of time and want to make the most of it, you will need **efficient** and **effective** methods of organizing your work.

In this article, we’ll introduce you to three useful tips for project management and point you to some popular project management tools developers use in the real world.  We'll also go over the **SDLC** (**Software Development Life Cycle**), and use the **Waterfall** model as an example to [help you improve](https://www.educative.io/blog/learn-to-code-part-time-tips?eid=5082902844932096) your productivity.

> **Note**: This article only includes free versions of project management tools. While some of these tools have paid versions with more features, the free versions are more than enough for most people starting out in software development. 

Let's get started! 

**We'll cover**:
* [3 project management tips for new developers](#tips)
   1. [Use a personal Kanban board: Trello, Asana, and Jira](#kanban)
   2. [Track your time: Clockify, Pomodoro, Rubber Ducking](#time)
   3. [Learn GitHub!](#github)
* [What is the software development lifecycle?](#sdlc)
* [Wrapping up and next steps](#next)

<a name="tips"></a>

## 3 project management tips for new developers

As a new or [aspiring developer](https://www.educative.io/blog/how-to-become-a-software-engineer?eid=5082902844932096), using project management tools can help you keep track of your progress, and even build a portfolio of projects to show potential employers. If you're tired of starting projects but never finishing them, it might be time to try a project management tool or two.

![3 tips](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yy3ej2kvn3s8honc9p7h.png)

These measures may seem like overkill at first. Still, suppose you're at the learning phase where you're ready to start building apps and websites for your portfolio. In that case, these project management basics can save precious time and energy that would have otherwise been spent on miscellaneous administrative tasks. 

Learning to use these tools and methods will also give you a head start when it comes time to work with project management tools in professional settings. Generally speaking, if you learn how to use one project management tool, you'll learn how to use them all. Trello, Asana, and Jira are all tools used in enterprise settings. 

<a name="kanban"></a>

### 1. **Use a personal Kanban board**: Trello, Asana, and Jira 

Kanban boards help developers track the progress of their projects by breaking them down into cards with smaller tasks.

These cards are then placed in columns on the board, representing the different development stages. This helps developers track their progress by giving them a visual representation of how far along they are in the project. 

Kanban boards are a popular way for agile and DevOps teams to organize their daily work<sup>[[1]](https://www.atlassian.com/agile/kanban/boards)</sup>, and can be a great way for new developers to commit to getting their projects across the finish line! 

There are many different Kanban boards available, and three popular ones are **Trello**, **Asana**, and **Jira**. 

Trello is a great option for new developers. It's simple to use and has a free tier that allows you to create an unlimited number of boards with up to 10 team members. Once you get the hang of it, you can try out more feature-rich options like Asana or Jira. 

Jira is more commonly used in enterprise settings, so if you want to work at a large company, there's a good chance you'll use it at some point in your career.

* [**Trello**](https://trello.com/?&aceid=&adposition=&adgroup=105703214328&campaign=9843285532&creative=437184392320&device=c&keyword=trello&matchtype=e&network=g&placement=&ds_kids=p53016490704&ds_e=GOOGLE&ds_eid=700000001557344&ds_e1=GOOGLE&gclid=Cj0KCQjw852XBhC6ARIsAJsFPN2uHBN7Q9mrTaGt4bh5onWPdh6gfc4kgcygSxGlHnsBpbFBhXHhG00aAoRAEALw_wcB&gclsrc=aw.ds) is a Kanban board that is very simple to use and is excellent for small projects. 
* [**Asana**](https://asana.com/campaign/fac/do?&utm_campaign=Brand--NAMER--EN--Core--Desktop--Exact&utm_source=google&utm_medium=pd_cpc_br&gclid=Cj0KCQjw852XBhC6ARIsAJsFPN2Iep1LPwo_P3EzDRWxIFWvmhBMMKtV5PK5anGPoSLYObhmHmpw4cIaAhi4EALw_wcB&gclsrc=aw.ds) is a bit more complex, but it has more features than Trello. 
* [**Jira**](https://www.atlassian.com/software/jira) is the most complex of the three, but it is also the most commonly used in enterprise settings by professional developers. 

![Self-taught](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q55apphvvkaso2jz593i.png)

#### **Mini-tutorial**: How to use a Kanban board

If you've never used a Kanban board before, here's an ultra-quick tutorial on how they work:

1. **Create a new board** in your Kanban tool of choice.
2. **Give your new project a name**! 
3. **Create columns** for each stage of development.
   * For example, "**To Do**," "**In Progress**," and "**Done**." 
   * You can add or remove columns as needed, so play around with creating a workflow that fits you! 
4. **Create cards for each task** in your project and add them to the appropriate columns. 
   * For example, if you're working on a website, you might have cards for "**Design home page**," "**Write About Us page**," or "**Create a contact form**."
5. **Move completed tasks** over to the "**Done**" column. 
This will help you track your progress and see what still needs to be done.

You can also add due dates, comments, and attachments to your cards to make them more informative. And, if you're working on a team project, you can assign cards to specific team members!

<a name="time"></a>

### 2. **Track your time**: Clockify, Pomodoro, Rubber Ducking

The next step is to start conscientiously managing your time. There are many different ways to do this, but the three popular methods are using a time tracker (like **Clockify**), **Rubber Ducking**, and the **Pomodoro Technique**. 

![Clockify](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/chfmn3mo2571p6vqi0l3.png) 

[**Clockify**](https://clockify.me/) is a free time-tracking tool that allows you to track how much time you spend on each task. It's great for getting an accurate picture of how long each task actually takes, and it can be a valuable resource for planning future projects. 

![Rubber Ducking](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i7ocwugiihnj9nwqznwp.png)

[**Rubber Ducking**](https://en.wikipedia.org/wiki/Rubber_duck_debugging) is a technique that involves using a rubber duck (or any other small object) as a stand-in for your project manager. When you're working on a task, you explain what you're doing to the duck. This helps you to clarify your thoughts and can prevent you from getting stuck. If you find yourself spending more than a few minutes stuck on a problem, it's a good idea to take a break and Rubber Duck it.

![Tomato](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mkryx5fxbx82lnzpc0pg.png)

The [**Pomodoro Technique**](https://en.wikipedia.org/wiki/Pomodoro_Technique) is a time management technique that involves working on a task for 25 minutes and then taking a 5-minute break. This helps to keep you focused and prevents you from getting burnt out. After four Pomodoros, you take a longer break (15-20 minutes).

<a name="github"></a>

### 3. **Learn to use GitHub**! 

[**GitHub**](https://www.educative.io/blog/git-github-tutorial-beginners) is a cloud-based Git repository hosting service that allows developers to share their code and collaborate on projects.

> **Note**: Git and GitHub differ in that Git is installed and maintained on your local machine, while GitHub is entirely cloud-based and can be accessed through the internet. 

Anyone can sign up, and it's also a great place to learn about [new technologies](https://www.educative.io/blog/five-things-i-wish-id-known-about-git?eid=5082902844932096) and find open source projects to contribute to. GitHub can initially seem intimidating, especially if you're completely new to software development. However, it truly is worth the time and effort to learn how to use it. You can gain experience working on real-world projects with other developers and keep track of your progress over time.

[**GitHub**](https://github.com/) is particularly useful for **asynchronous communication** and **version control**.

**Asynchronous communication** is a way of communication that doesn't require all parties to be online at the same time. This is useful for developers because it allows them to collaborate on projects even if they're in different time zones. 

![Version control](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bjcw0oud25sebirr8915.png)

**Version control** is a way of keeping track of the changes that are made to a project's codebase. It's useful for preventing "merge conflicts," which can happen when two developers are working on the same codebase and make different changes. 

GitHub also has a feature called "**GitHub Issues**" which can be used for project management. Issues are like cards on a Kanban board, and they can be assigned to specific people or groups. This is a great way to keep track of tasks and ensure that everyone is on the same page! 

> **Note**: If you're on a team that already uses a tool like Jira or Trello, GitHub can still be a valuable resource for creating and organizing documentation for your projects. 

<a name="sdlc"></a>

## What is the software development life cycle (SDLC)?

![SDLC](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/152smvn7kqinretqn39d.png)

The software development life cycle (SDLC) is the process software developers use to create, test, and deploy new software applications. 

There are many different SDLC models, but the **Waterfall model** is popular for beginners. This model involves six steps: requirements gathering, design, implementation, testing, deployment, and maintenance.

<a name="how-to-use-sdlc"></a>

### How to implement the SDLC into your workflow

![workflow](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sllpmuu7kice6ns1wk6s.png)

* **Requirements gathering** is the first step in the SDLC. This is when developers work with stakeholders to determine what the new software application should do.
* **Design** is the second step in the SDLC. This is when developers create a plan for how the new software application will be built.

![Ideas](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c4niys2db6ouc59zcd3o.png)

* **Implementation** is the third step in the SDLC. This is when developers start writing code for the new software application.
* **Testing** is the fourth step in the SDLC. This is when developers test the new software application to ensure it works as expected.
* **Deployment** is the fifth step in the SDLC. This is when the new software application is made available to users.
* **Maintenance** is the sixth and final step in the SDLC. This is when developers fix bugs and make improvements to the new software application.

When you're managing a project, your goal is to complete all of the steps in the SDLC as efficiently as possible. To do this, you need to have **solid time management skills** and know how to **prioritize tasks**. 

If you're the kind of person who thrives in structured environments, then combining an SDLC method with a combination of project management tools could be the key to accelerating your learning, productivity, and project success.

Of course, this is not a one-size-fits-all solution. Everyone has different learning styles, and what works for one person might not work for another!

> **Note**: The waterfall method is just one of many SDLC models. Other examples include the Agile method, Spiral model, and DevOps model.

<a name="next"></a>

## Wrapping up and next steps

Project management is a critical part of any software development project. It’s how developers manage the expectations of their clients and deliver a final product that satisfies everyone. Learning how to use project management tools can help you stay on top of your workflow and deliver a final product that meet your client's needs.

Whether you're a [new developer looking to switch careers](https://www.educative.io/blog/5-proven-learning-strategies?eid=5082902844932096), or just someone who wants to know more about how projects are managed in tech, familiarizing yourself with the non-technical side of software development will not only help you better understand the process behind creating an app or website but will also prepare for any future roles you may want to pursue within your company. When you know how software development works from start to finish, you can be a more [effective developer who contributes a ton of value](https://www.educative.io/blog/characteristics-outstanding-developer?eid=5082902844932096) to your team.

To get started learning how to code, check out Educative's [Learn to Code from Scratch](https://www.educative.io/explore?search=true&search_string=scratch&difficulty_level=beginner&free=true&pageNo=1?eid=5082902844932096) courses.

*Happy learning!*

### Continue learning about software development on Educative
* [What's the best programming language to learn first?](https://www.educative.io/blog/best-first-programming-language?eid=5082902844932096)
* [Learn to code for social good: My philosophy as an artist & dev](https://www.educative.io/blog/my-coding-philosophy-artist?eid=5082902844932096)
* [How much math do you need to know to be a developer?](https://www.educative.io/blog/how-much-math-do-developers-need?eid=5082902844932096)

### Start a discussion
What other helpful tips are there for self-taught devs? Was this article helpful? Let us know in the comments below!