How To Start Any Project

Introduction

Here, we’ll learn how we can start any project. Most of the time, we just learn things; however, we never focus on how to start them. I’ve seen many students in my life, including me, who have wasted a lot of time because they didn’t know how to start a project. And most people learn this skill in their professional life.

The Differences Between Software Industries

We have two kinds of software industries.

  • Product Based
  • Project Based

In a product-based industry, most of the time, it doesn’t matter how we’re writing code. They want just task completion. In a product-based scenario, software houses don’t care about the refactoring of code. They just focus on how to make money. And it is really true, if you want to make money, then you can choose a product based approach. But keep in mind, they are not interested in how to learn and implement the new technology. They know that the work has been done with the classical technologies which they’re using so they are not interested in learning new things. They don’t even care about the design patterns and architectural patterns for software development.

But in a project-based scenario, you learn new things although you’ll make less money. You’ll use the new tools and technologies here. You’ll see the new and latest approaches. But you’ll do all nighters as well. Because in the Project Based companies, employees are fully available day and night.

If you ask the interviewer what is their company's approach, Product-based or Project-based, it makes a good impression as well on the interviewer.

Project Plan Steps

Now, let's come back to the point. We were discussing how we should start our project. Actually, the requirement gathering is so important. If the requirement is clear to the developer and the client, then your project has been 50% completed. Most of the time, you’ve seen the software companies just start with a document. They should visually clear the requirements. Anyway, let’s discuss the cycle that I have found pretty helpful and saves a lot of time and effort.

Mind Mapping

Mind Mapping is a technique where we use the main pointers which describe our project completely. Most of the time, the client just thinks that he needs this feature, this feature, and this feature and it's the same in the developer's case and we also forget these important components.

Mind Mapping

 

So what do we do? We visualize things for better understanding. Just gossiping about the requirement isn't enough; we need to clearly understand and document things visually.

There are many formats of data which increase the understandability of the document. So instead of reading the textual file from start to end, make a mind map and verify it from the client. In this way, the client will also get an idea of what he is ordering and what he'll get.

There are many mind mapping tools, but I recommend two of them.

Mind Meister and XMind.

The concept of making a mind map is the same on any tool you just need to know what they are and how you can use them.

You can get an idea to build the mind map from here and here.

After completing a mind map, you can easily discuss with the client how many modules there are in the system, how they work, what is the basic need, how much time you need to make this project. Most of the things will be clear to you.

In different scenarios and for the different requirements obviously, mind mapping and mind map making technique will be different. But the main idea is:

  • Start with the Main Idea
  • And then add the branches named with modules
  • And then add sub-branches with their functionality.

I’ve made a mind map you can get an idea from here.

Mockup

Now, it is the time to define the flow of your project. You’re clear on what you’re going to build. But you don’t know what the layout of your project is.

Mockup

 

The recommendation is, let’s suppose you’re building a matrimonial application then you should search minimum of 5 different matrimonial applications and of different regions. List the strong and weak points of these applications at one place. And then you’ll get an idea of what you should do and what you should avoid, which makes your system more attractive and increases user attraction. Here our mockup tool is Balasmiq.

You need to do no code. You just drag and drop the things and it will be clear to you what layout you should have on this screen. You can design any mockup of mobile, desktop and web as well.

Decide The Theme

Now you have an idea about  the important things you should have in the mockup. You can easily decide the theme for your web project. And if the theme isn’t according to your mockup then it might be near to your Balsamiq mockup and then you need to manually customize the theme according to your own requirements. You can see thousands of themes from themeforest relevant to your requirement.

Business Requirement Document (BRD)

It is important because if you make the BRD of your project then you can make your database very easily but it is not so essential. If you directly move on from the 3rd step to the 5th step then it will be ok as well. But BRD is also important.

  • Take the screenshot of your screen
  • Place it in Word File
  • And Add the description of what you need here in this screen (name of fields)

It helps the team to understand how we can develop this screen and how to develop the database what are fields actually we need there.

Table mapping is also the part of BRD in which we mention all the table names and their columns instead of giving the credentials to any developer who is working on the project and make something bad in the database. The purpose of BRD is if we give this document to anyone anytime then he can develop the application independently without asking any question. All the details are mentioned there. For example, this is the screen,

Business Requirement Document

 

  • House Items comes from ‘House’ Table
  • Items should be in order, latest house items come first.
  • Redirect to House Item Detail Page on clicking the item.
Database

It would be a so difficult for any new person to design or develop the database. Because of Normalization, Stored Procedures etc. we know about the theory but we don’t know how to use them, and where we use these approaches. So these concepts and these things make us think we can’t develop the database. I’ve already faced these moments in my life.

So don’t bother. The rule of thumb is always to add the fields which you’re watching in the mockup or in the theme (let me clear up one thing, it might be you don’t have any experience with the market. Most of the time a developer purchases the theme or cracks it to make his work fast and then he integrates the theme into the project and just focuses on making it functional and the database side). So I am saying to always add the fields that you're seeing in the mockup. Let’ suppose:

Business Requirement Document

This is the screen. Now, don’t assume anything; just see and make the decision about what you’re seeing here.

Here we have.

  • House Name
  • Picture
  • Place
  • Number of Garages
  • Number of Bathrooms
  • Number of Bedrooms
  • Size of House
  • Price of House

These are the fields in your House Entity. Now, I click on the House and this screen appears. This detail is so big but I’m showing you the related stuff.

Business Requirement Document

 

Now, you can see that here, we have some more fields as well. So, add the fields in House Entity.

  • Description
  • About
  • Country
  • Zip Code
  • Neighborhood

And from the template, we get an idea about how will we make our address split into multiple fields. It was not just a place field but country, address etc. as well.

And if the thing on the screen is static, then we just place them in our project screens hard coded. But if it is dynamic then surely it comes from the database and then we make the database tables for our dynamic content. In simple words, if I conclude my discussion, just ask the questions for yourself.

  • Is this page content static or dynamic?
  • If dynamic, then is the table already there in our database or not?
  • If yes, then add the required fields to the table.
  • If not, create the table

Look how easy it was to create the database. In a practical life scenario, sometimes the task assigned to you to makes the ERD Diagram and they tell you just the name of the project like make the ERD of Department Storage System, it’s a very bad approach honestly. Don’t assume anything when you’re developing or designing the database.

If you don't have any idea how to make ERD and what ERD is, here is a fantastic link.

Development

Now it is the time to open your IDE and start developing your screens. And before development, you can make the project plan in Microsoft Project to define the time effort for each task or each module. And you’ll get an idea how much time needed for each task. Always try to add the buffer time on each task as well. Suppose you need 4 hours per task but maybe you’ll face the bugs, you might be stuck during development. So if you’ve added the buffer time in your Project Plan then it will be ok for you, otherwise, the project will become a headache for you.

Don’t forget the time of analysis, design, and testing to add in your project plan.

One piece of advice for you, you might have entered into  your professional life or you might be just going to start your professional career. Always keep in mind, don’t spend all your time on projects just for the sake of money. Always try to learn new things every single day. Spend 2 hours minimum on yourself. Don’t be so greedy, otherwise, you’ll be spoiled. And if you take care of yourself, good opportunities will be on your feet. Most of the time developers just care about the dev side, they should know how to test the program, how to use unit testing, how to implement different design patterns etc.

And if you’ve made your project plan in the wrong way which contains no buffer, then you’ll see the mountain of pressure upon you. And you’ll never learn how to write the clean code.

Another important thing is if you can make your code clean and make its logic better than before, then you should do so right now. Because if you are thinking that I’ll make it clean in the future then there's a 70-80% chance you’ll not get this opportunity. The time which you have right now never come again. You can make the decisions.

Final Words

So my final discussion is if you’re starting your career then you should try to adjust yourself to the project-based company, it is my opinion. You should start from mind mapping, define your project modules and subtasks there to make it clear to the client and satisfy him that things are going on the right path. Then make the mockup to define the flow of your project and get an idea of how things will work, how the navigations take place from one screen to another. And you’ll get an idea. Then choose the proper theme according to your mockup or which is near to your mockup. And then make the BRD to make the things clear on the database side like tables and its fields relevant to the screens. And then make the database according to your BRD and then start development.

You might be thinking that these steps are time-consuming but keep in mind these steps remove many redundancies and controversies of the things in your project and make things clear to you and your client.

X

Build smarter apps with Machine Learning, Bots, Cognitive Services - Start free.

Start Learning Now