It takes a lot of planning, time, and effort to build successful software. Sometimes we jump into coding too fast without really taking a step back and thinking about it. We are so eager to get our hands dirty with code that we forget to ask important questions. It can work in some cases when the project size is small and it does not have a lot of maintenance or updates, but in most cases, it will result in spaghetti code, which will be hard to maintain & soon be marked as "legacy code".
Now, by planning I don't mean writing out a 400-page business plan with PowerPoint slides and fancy diagrams, or taking courses to become the project manager. Spending even 2 hours planning & researching will yield much better results. I usually spend about 25% of the project time planning it. Here are some of the steps I took to plan this project.
I just wrote out all the ideas I had for this project, the goal of the app, drew some sketches on paper, a lot of it didn't make sense, but I had to get all of it out so that I could zoom out and think about it while staring at my notes. I then used https://bubbl.us/ to draw the initial diagram of the flow.
You can ask these questions to yourself, to your boss or your customer. Some of these questions can be answered easily, some may require further research. Here are some of the questions I asked myself while planning this project:
To answer some of the above questions I had to do some research, so I think it's an important step.
I had to decide on what tool I would use to organize my ideas & continue with the planning. I have not used Trello before, and since this is a learning experience for me as well, I decided to give it a try.
Having initial database design is helpful & important. It will help me visualize the objects, the relationships, & help me write better code.
I am not too worried about the front-end UI yet since the main point is to get the back-end engine working. I can implement the UI later & think about how it will look. In my case I don't want the UI to dictate how I will structure the back-end.
Get notified as soon as new content is published