Resouces
It would be impossible to write down everything I did to plan out this project but below I have written out why project planning is important and what I do to make sure my project is defined before I start building. For this course you don’t need to have your own project board or UX designs, I will be sharing mine as we complete the project but if you would like to follow along you can find the initial project file and the Figma file below.
To upload the project file you will need a Lancer subscription which is still being built but functional. So if you reach out to me I will set you up with an account. Once you have an account you just need to go to the projects area and click to upload the project and import the file.
Introduction
There are many ways to plan a development project and the steps that are involved are going to vary depending on what it is, if it’s a new project, if it is an existing project that is being enhanced, who all is working on it, and many other factors. For our project, we are building something brand new, from scratch, so I will be focusing on that and outlining the steps that I follow to ensure that I am able to successfully deliver a finished product on time.
When I start a new project before I ever begin developing I always make sure that I have a Minimum Viable Product (MVP), UX designs created, and all my tasks are broken down at a high level and recorded in a project management tool. If I am working on a project with other people I will also make sure that I have some base-level architecture drawn out as well, but enough thought is generally put into the project when outlining the MVP and UX designs that I don’t always need this step when building something alone. The reason you want to make sure that you complete these steps is that they are going to ensure that you have a solid foundation of what the initial product is going to be.
I have worked on countless projects where not enough though was put into the initial planning phase and as a result features were continually added, shcemas needed to be changed, and the product was ultimately delayed and in some cases never finished. By making sure that you have a definitive set of features that are needed for the product to be considered “finished” is critical to any successful development project.
How to Plan a Project
The first thing I do when I am planning a project is start my UX designs in a Figma board. I have found that the visual representation of the project is the best way to capture all of your requirements. There is something about seeing everything visually that makes it easier to establish that MVP state rather than just writing it down. Once I have my initial designs created, I will then start creating epics and tasks on my project board. I will look at a design and start breaking it down into features, thinking “what all needs to be done to actually get this created”, and by doing this I can start to understand how my project will fit together. Let’s use the marketing page of our site as an example.
Our Marketing site will be the homepage of our site where users can see our marketing material with links to sign in and register. It is easy to break down the page into its different sections: Navigation bar, header, features, pricing, footer, etc. However, as we are breaking it down into its tasks we run into the question do we want this to be an SEO-friends page and does that that translate to what we want for our main application. The answer is we do want this page to be SEO-friendly so we want it to be server side rendered, however we don’t want to server-side render our main application and want to render it in the browser. We also don’t care if the main application is SEO-friendly because it will all sit behind authentication. Because of that, we know that we need to create two separate angular applications, one for our marketing site and one for our main application. That means that in addition to the task of creating the homepage UI, we will also need tasks to create an SSR angular application, and to create links that link out to our login page since it won’t sit on the same domain as our marketing site.
This process will need to be done for every page our our design until tasks exist for every page and feature that exists in your design. While building this you will undoubtedly run into moments where you realize that a part of your design is probably too complicated, and you may need to adjust your designs and consider that a feature for after the initial launch. It is a decent amount of work, but once you are done, you should be able to look at your project board and designs and feel confident that you have a well-defined project with a clear stopping point. Something that you know is achievable and a solid understanding of the tools you will need and how you will achieve it.