everything I know

From the top of my mind…

How do I manage my projects

8 Comments

Hi there, It’s been a while…

Today I’m gonna talk about how to manage a software development project properly, at least how I see it should. Bear with me here, when I say ‘managing’, this isn’t a Project Management Tutorial as in a responsibility of a project manager, but more of a practical guide how not to screw up your software project. It took me several years and several projects to get used to these things, but I assure you, they are worth it! Let’s begin, shall we?

Google is your friend

I’m sure you already know this! As software developers, we cannot keep everything in our mind like robots, right? We just know some basic things which make us programmers. That’s it. What ever error or bug or new technology come towards us, we seek the help of our ultimate friend, Google. But are you doing it right? Are you asking the right questions? Well for the most developers out there, the answer is no! Follow are some things I discovered with Googling stuff. Try using them the next time.

  • Keep your search terms as small as you can.

Image result for girls searching google joke

Beleive me, this is not just girls anymore! But seriously, try to keep your search terms as small as possible. Above is a perfect example for this. Don’t include terms such as “How to” in you Google search, because that’ll force Google to ignore the results that do not contain such terms. This will filter out your results and what if the exact solution you were looking for were also ignored?

  • Look for proofs.

When you find some article, StackOverflow question or a video tutorial, before you dive into it, look for some proofs that this solution indeed will work.

For an example, check the number of views, likes and dislikes as well as the comments for a youtube video. Or if it was a StackOverflow question, check the number of upvotes. It’s always better to follow marked solutions.

And it goes without saying, do your bit for the society as well. If you find something useful, always mark it. If it was a video, like it. If it was an answer to a StackOverflow question, upvote it!

  • Use Google searching tricks.

There are many tricks you can use when searching something on Google. Take a minute to explore them and you might find them useful. I’ll add some links at the end of this article if you insist. 😉

  • Code reuse?

Unless you’re developing something for an assignment, it’s ok to use code written by other people in your project, as long as they allow it. Most of the time, features that are not directly related to our project, such as logins, requesting APIs, etc. are written by other people as well. Before you begin to write your own code for a common situation, why not Google it to see if it was already done? At least you’ll find some different, better approaches to the solution.

Choose your IDE

For the success of a software project, better IDE is very important. You have to choose your IDE very carefully depending on your project requirements. Most people try to do everything in their favorite IDE, but what you gotta understand is that if everything could be done in the same IDE, there wouldn’t be so much IDEs floating around. Now I personally prefer JetBrains IDE’s because they provide everything you need. On the other hand, they offer everything free for students. But it’s really up to you though. My point is that you need to think about what you want to do and choose your IDE accordingly. Every IDE has its pros and cons. Research them before you start.

Key board shortcuts?

Whatever IDE you choose to work on, provide some keyboard shortcuts. USE THEM! I know a lot of guys that do not care about this and if someone ever calculated their productivity, let me assure you, it’s bad! Take a minute to learn and practice the shortcuts your IDE provides. It’ll save you days of time in the long run. Follow are some of my favorites.

  • END – go to the end of a line
  • HOME – go to the beginning of a line
  • END, SHIFT + HOME – select a line
  • CTRL + C – copy
  • CTRL + V – paste
  • CTRL + X – cut
  • CTRL + A – select all
  • CTRL + (LEFT or RIGHT) – jump from word to word
  • SHIFT + CTRL + (LEFT or RIGHT) – select from word to word

Project file structure

Here comes some crucial points. You may think this isn’t much of thing, maintaining a correct project file structure. But let me tell you, this will screw you from top to bottom. The worst thing is, you may not realize this until some bug hits you in the face. And at that time, you’re too late. You have hundreds of source files spread over another fifty or some folders and you’re done!

Image result for software project file structure

Chances are that your software project has a unique file structure out there, which is recommended by most developers working in the field. You just need to find it. Bear in mind that the solutions provided by those same developers to the problems you’ll face are also following that very same file structure. If yours didn’t follow it, those solutions may not be applicable!

Coding standards

This is an interesting topic that is discussed on many occasions, yet people seem to overlook when it comes to actual implementations. The first thing you have to understand is that the importance of maintaining proper code. If you’re still an undergraduate, this won’t affect you much, but when you go to the industry and show you messy source files in a code review, that’ll be the end of you! There are well-understood benefits of coding standards.

  • Increased efficiency
  • Reduced costs
  • Reduced complexity
  • Reduced hidden costs
  • Code reuse

And the list goes on. But in my humble opinion, if you didn’t maintain a proper code base, debugging’s gonna cost you a life time. Follow are some points I see people do and if you do them too, get rid of ’em right now!

  • Meaningless variable names – Don’t name your variables like “a”, “b”, “x”. Always use meaningful names for them. Its ok to have a bit long variable names. That’s why our IDEs provide an auto-complete feature. Even for testing or temporary codes, try to use meaningful variable names. Otherwise, you won’t know what it meant after a few more lines of code.
  • Indentation – This is important for the readability of your code. I know you can read your code just fine now. But what if you came after few weeks? Will you be able to read it then as well? No! Maintain a good readability in your code by using indentation properly.
  • Comments – Nowadays developers are lazy! They don’t want to spend time commenting their code. But believe me, it doesn’t matter how genius your code is if no one can understand it including yourself! Comment your code!
  • Don’t wait until the end – I know some coders work with me that think they’ll format their code after it’s done. But actually, this is not possible. If it was possible to reformat the code after you write it, we wouldn’t have to use coding standards in the first place. My advice is, do it as you go. Why not add a small comment each time you make a new function? Why not use meaningful variable names when you create them instead of changing it later? Do it as you go.

Image result for importance of coding standards

Version Control

You must have heard of version controlling by now. If not, stop reading this right now and check it out! It doesn’t matter how small your project is or that only you work on it. You should use a version control system. I prefer Github as my version control system, but you can choose yours. And the next thing you need to get your head around is that to actually get the benefit of version control, you have to commit often. People think like “This function only has 10 lines. I shouldn’t make a commit for this. Let’s wait till I have some more” This is completely the opposite of version control. You must make commits for each and every distinguishable feature in your project.

Nobodies gonna blame you if your project had five hundred commits. But be mindful as well. Don’t make commits for each line. But do it more often than you do now! If you ever messed up writing some part of your project, just revert back to the previous commit and start over. If you committed more often, the amount you lose will be much smaller.

Collaboration

Working with a team is not the same as working on your own. You need to pay attention to what others think as well. Especially if you’re working on the same feature or module with someone else, you need to communicate with your partner about the decisions you’re gonna make. Chances are, the solutions made by many is better than just doing it by yourself. And also you need to maintain proper coding standards more often. Otherwise you team mates won’t be able to understand your code. Don’t hesitate to seek advice from others. They might know something that you don’t. Also, understand that everyone will not know about everything. Each team member will have a different skill set. It is all of yours duty to divide the project properly among yourself and work together. Try using a project management tool if it helps.

 

These are only the things I believe most important to follow and also neglected by most developers out there. You might know something more to it. Be my guest to comment them below. I’ll add some useful links about these facts down below. Hope this was helpful. Thanks!

Image result for bye bye

Useful links

How to Use Google Search More Effectively

Free for students: Professional developer tools from JetBrains

Coding Guidelines in Software Engineering

Github – Most popular version control platform

Trello – A simple yet powerful project management tool

 

Author: vihangaliyanage

Fast Learner, code geek, dedicated software developer, always look forward to learn something new.

8 thoughts on “How do I manage my projects

  1. With regard to clean code, you might want to look at a book called Clean Code by Robert C Martin on how to write clean code. I found it useful.

    Liked by 1 person

  2. Great article bro… Yeah many give less attention to most of the things discussed. 😄

    Liked by 1 person

  3. Good One Bro 😀

    Like

  4. Really Good article.. 👍

    Like

Leave a comment