What I’ve learned from my first software project

Landing page

A few months ago, My team and I worked on a reservation system website as a project for my college.

The project’s main goal was to enable the users to make, reschedule or cancel reservations. We added validation process to make sure that everything will go right. Then the website administrative will be able to see all the reservations made by the users. That was the main goal of the website, but there were other functionalities we have added such as:

  • Order food online
  • Generate reports
  • Create tables and seat number and choose their position
  • Create the food menu
  • Create users account and choose what pages they can access

I can’t just start on anything without planning, I feel that everything will collapse at any time. So before I start going into any project I read some blogs and how things operate.

I started planning for how we will work, make a timeline, and decide what we will implement first. But a few weeks later, everything has changed.

So here what I’ve learned so far:


1- Make a plan

Everything changes, so when you make a plan, write what is your main goals. Make a timeline for the whole project and when things must be finished. Head to the details for the short term so you don’t have to change the whole plan when something new happens.

I use Evernote and a notebook for writing the objectives and things needed to be done.

Use a notebook to write down your plan

2- Design the perfect workflow that will save you up a lot of time

Make a workflow and automation system that will make your team more productive and save you a lot of time

I use for this IFTTT, Wunderlist and Slack Integrations. As an example when a new task is added in Wunderlist a notification will be triggered on Slack.

3- Communication

One of the most important keys for teams output is how the team communicate. Keeping the team on the same page is the most important element for any project to success. So I make a kickoff meeting to get things clear for what we are going to do, how we will work and every person rule.

Slack is the best team communication app you will ever use in your life. It’s simple, beautiful, powerful and has a lot and I mean a lot of features. It is also free for small teams.

Slack for team communications

4- Feedback

Feedback is essential. When you share everything with your team and get feedback from them, it makes them feels that you value their opinion and thoughts. It will make team members think of a new ways to evolve the project.

5-Use GitHub for development

I regret that I haven’t used GitHub before. We were using Google Drive to sync documents, code files, and the whole project. Using GitHub or BitBucket is very helpful it uses Git version control. so you can:

  • Save versions of your work, so you always have a backup
  • Collaborate with others and Git will saves every single change
  • Easy to share your code with other people and get feedback of bug report
  • With every commit you will always know what have changed
GitHub Desktop

Working on a software projects is a lot of fun. You always have challenges and problems to solve. A lot of things will go down, just don’t give up and try fix it.

You can find our project on GitHub, and showcase on Behance