On Tuesday December 20th, 2022, I held a talk about How to get a job as a developer with soft skills when tech skills are weak.
It was for the last episode this year on The Monthly Dev event hosted by daily.dev.
Skill combination 1: Project Management combined with Time Management Skills, Problem-Solving Skills and Critical Thinking
If you use GitHub to its fullest, you can dive pretty deep into project management.
Even if you won't be using project management skills yourself as a developer, you will most likely be exposed to it. So it's beneficial to learn about it before you even start your first job.
Project Management
Create a project for all your repositories in the GitHub project area. You can add different views like Kanban or a list view.
The Kanban view is probably the best known, as it resembles a simple task list: you have open tasks, tasks you are currently working on, and finished tasks.
Add problem-solving skills and critical thinking
Create issues (also called tickets, user stories,...) in chronological order.
Think about what needs to be built first to achieve a certain functionality in your project? Which functionality is dependent on another? How do you categorize it? Is it necessary for the app to work? So you could label is as a feature. Is it a "nice to have?" Then maybe categorize it as an enhancement.
As projects get bigger, it's natural for issues to arise or for you to change your mind about a particular decision you made at the time. So bugs or defects issues can come up, and can be categorized accordingly.
Time Management
To measure your progress you can apply agile methods like Scrum. You should take time to think about the process of achieving a finished project by setting concrete goals (called sprint planning).
Questions you should ask yourself: How many of the topics you created (called a backlog in Scrum) do you want to have completed after, let's say, two weeks? This time frame would be called a sprint.
And after the two weeks, you should sit down and do a sprint review, which is nothing more than a recap of the last two weeks where you evaluate what you accomplished and if you didn't get it all done, find the reasons that kept you from completing the sprint to improve planning for the next two weeks.
| Scrum Term/Event | Definition | | ------------- |:-------------:| -----:| | Scrum | Agile Methodology Framework | | Sprint planning | Set goals/next steps | | Backlog | All issues created so far for the project (will be updated during the development process until the project is finished) | | Sprint | How long you work on the next few issues | | Sprint Review | What have you achieved during the sprint, what can you do better the next sprint? |
You can use Github's Milestones feature for this planning.
Estimate time for each issue
To make time estimation even more precise, you should provide time estimates for each issue. There are different ways to do this, and each company handles this differently.
Some options would be to divide it into easy, medium, hard, which can mean different things, e.g. easy means a day, hard means a week; or a certain number of hours, or a time frame like half a day, 2 days, or using points, e.g. 5 points means 3 days and so on.
It's entirely up to you, but be able to explain your thoughts on it.
I was really, really bad at estimating time for my Issues back then. If I said half a day, it often took 2-3 days 🥲.
If this is also the case for you, don't worry. You will get better with time, thinking about possible obstacles ahead of time, and become aware of your own pace; it will come naturally.
Use you newfound knowledge to your advantage
Later, you can use this newfound knowledge when asked about your weaknesses. You can say that you lacked time management, but that you found a way, a solution, to get better at it over time and it is no longer a weakness.
This also shows awareness and accountability, two other important soft skills.
Good time management helps you meet deadlines which is important especially to recruiters and clients who care about punctuality and meeting deadlines.
Skills covered and terms used
Just setting up a project in GitHub already covers so many skills that you can talk about them a lot during the interview.
Keywords: Project management, Agile Methodologies like Kanban and Scrum (Backlog, Sprint, Sprint Planning, Sprint Review), Time Management, GitHub, Critical Thinking, Problem Solving; that’s quite a lot.
The good thing is that you don't need a team to set up your project this way. I did the entire project setup for all my 3 projects that I added to my portfolio at the time.
It was important for me to learn these concepts and get a good understanding of what was going on. It helped me improve my time management, a weakness I can now talk about confidently in an interview because I learned how to deal with it over the weeks, and get better at it.
Stay tuned for the next part.