056 - Planning A New Website Project
13 Feb, 2018
For any new web project, taking the time to PLAN before you CODE is key! Here are some key questions I asked myself before I started coding the new Start Over Coder website. It came down to 7 key questions:
Question 1: Who is the site for (visitors)?
This is about taking into consideration all of the likes and dislikes, wants and needs of the people you expect will be visiting your site.
- Are there certain aesthetics that they like or are used to?
- Do they expect a certain level of interactivity?
- Do you need to think about optimizing your site and code for accessibility (hint: yes!)?
- What do you need to do for browser support? Can you reliably expect your visitors to have modern browsers, or should you focus a bit on making the site compatible for older browsers (if your visitors are less tech savvy, probably!)?
- What kinds of devices and internet connection speeds are your visitors likely to have? How does this affect the content and media assets you include on your site?
Question 2: Who is the site for (client)?
If you’re building the site for someone else (friend, family member, or even paying client) and they will be adding content in the long term, how technologically savvy is that person? Can you build and hand over something that’s quite involved, or would they really be better suited with something that’s more intuitive like WordPress?
And who will be maintaining the site? Can you minimize the number of package dependencies or plugins in your project to make long-term maintenance simpler? If you’re handing the site over, how will you ensure updates and security patches are carried out?
Question 3: What’s the 1 thing you want your visitors to get from visiting the site?
No matter your content, it’s helpful to think about messaging when you’re building a website, and a good way to narrow this down is to think about the one takeaway you’d like visitors to have after visiting your site. Some examples:
- For the Start Over Coder website, I wanted people to be able to sample the podcast, so I put an player at the top of every page.
- If it’s a portfolio site and you’re a new developer, it could be a headline called HIRE ME! followed by all of the reasons why someone should consider you for jobs.
- If it’s a non-profit or business trying to raise money, make sure the DONATE button is front an center, and that it looks like a button people will want to click!
- If it’s a blog, help visitors navigate: maybe it’s a Start Here page that gives an introduction to the blog, or maybe it’s a Featured Posts section which helps people get acquainted with your best content. In this case you may not need to implement this when you’re first creating the blog, but it’s good to consider in the planning phase for the future, when you’ll have more content to wade through.
Question 4: What is my timeline for this project?
Having a deadline really helps keep things moving when you’re working on the project. If an actual deadline doesn’t exist, create one, and then tell it to someone who will check in with you to keep you accountable. There are few feelings worse than a “fun” side project dragging on forever, and a deadline can help it avoid this fate.
It’s also important to make sure that the project is actually possible within the timeline you set out. If you need to break the project into phases to keep your deadlines realistic, do.
Question 5: How can I manage the project effectively?
Keeping a task list to keep track of things that need to be done/built/designed/optimized can keep the project organized and on schedule. This could be as simple as writing things down on a piece of paper, or you could use tools like spreadsheets or issue trackers in an online repository.
My favorite system at the moment is using Trello, an online kanban board where I list my tasks as ice box, to do, doing, or done. Priority tasks are stored as ‘to do’ items, while less timely to dos are kept in the icebox for future consideration. My highest priority tasks move into ‘doing’ and this list is limited to the 1-3 tasks I can accomplish within 1-2 work sessions.
The biggest benefit of keeping a task list (in any format), is that it gives you a place to park new ideas whenever they come to mind. Especially if—like me—you get distracted easily and every new idea is an excuse to stop what you’re doing at the moment to explore! Working off of a Trello board allowed me to prioritize every idea or improvement that came to mind while still keeping on-task from moment to moment.
Question 6: Do I have all of the tools I need to complete the project?
If there are skills that need to be improved before starting, it’s good to know ahead of time where you might run into issues. Similarly, if you’re picking up a project from someone else, or for someone else, it’s helpful to check whether you have all of the access necessary to any existing setups (server access, authorization keys, access permission, etc.). All of these things can ruin the momentum of a good project if they come up unexpectedly.
Likewise, if you don’t have something you think you need, it’s good to consider how you can proceed without that thing (if you can at all). Can you find a workaround or a replacement technology? If not, it’s good to be prepped for any repercussions as early as possible!
Question 7: How will the site be deployed and maintained?
Can deployment be streamlined, and if so do you need to set anything up from the beginning to facilitate this? A good example might be linking a remote repository to your content host so that deployments are initiated automatically any time you push new code to the repo. Or if it’s not such a simple setup, can you create a bash shortcut to at least streamline your deployment steps into one command? All of these things can save time in the long run and are worth considering before starting the project.
Also how will you test your live site before deployment? Do you have access to a second server that can be used for testing? Do you have anyone who can test it objectively and provide feedback?
All of these questions are worth considering before you dive into coding a project. And really, this is a jumping off point...there may be other things to consider that are unique to your project. But overall, taking the time to plan as much in advance as possible can help keep things moving, on schedule, and in a stable position when unexpected (and inevitable) obstacles present themselves along the way.
BONUS - Links To Dive Deeper:
Adding a few articles here as a find them, well after recording this episode. Lots of good info out there if you’re interested in learning more about this topic!
- From freeCodeCamp Medium: Follow these key steps to start a successful software development project