Planning a non-trivial web application that performs some sort of functionality is something you may have done in the past or are in the midst of doing. However, there are many moving pieces to building a real-world modern web application.
As you get started with your next project, you can save yourself some time and stress by making a proper plan before you even lay a finger on your keyboard. This series of posts document a high-level process to use when planning a modern web application, from project organization, collaboration considerations and tooling choices during development, all the way through deployment and performance strategies. It offers a high-level outline of the main decisions you may have to make, based on solid application-building practices.
There are absolutely many options to choose from for each stage, but I'm going to introduce the most popular ones. This post is going to be highly opinionated so feel free to share your thoughts and correct me if I'm wrong. 🙂
Here's a high-level list of the most important things you need to take into consideration:
- Project Management
- Development Process Methodology
- Accessibility & Internationalization
- Tooling & Development
- Frontend & UX
- Backend API
- Content Management
- Testing & Error Tracking
- Cross-Platform Targeting
- State Management
- Deployment & Performance
To have a smooth process when building your application, it’s essential to think ahead and choose options that best support your team and the goals of the project.
Do not start writing code before you know what the code needs to accomplish! First, you need to decide how you’re going to get things set up. No matter how exciting it is to start working on a new project, there are still many hurdles the developers and the entire working team have to overcome. As business grows and projects mount, things can easily get out of hand. Many different challenges may arise. Instead of reaching the desired goals, developers might get overwhelmed by the challenges and eventually face the prospect of failure. Developers who are aiming at ambitious projects need to focus on high-quality work and operate under schedule. To make sure that everything runs smoothly, they usually opt for a robust and client-friendly management system tool that will segment the tasks and help the team bridge potential gaps. Here are a few reasons why project management software is useful for business of any size:
When managing a large project, each member is designated with individual tasks in the team. To make sure everyone is on the same page, a project management solution helps in simplifying team collaboration. When a member has inquiries or concerns, he/she can immediately get the right response through communicating with the team internally—with the right people in the right project—without looking for other sources. This reduces time lost in searching for answers. It also optimizes sharing of documents, timelines, and status updates to notify everyone of important information such as how much work is done and how much is left to be finished.
Scheduling and Planning
Without a system in place, it can be difficult for your team to stay within schedule because of the lack of a set guideline on what should be accomplished by who and when. Time is lost when employees report to work without knowing the tasks they should be doing. This often affects one’s productivity. Utilizing the software outlines tasks and makes them visible. Setting deadlines and priorities, along with scheduling, avoids misunderstandings and overlapping of tasks and schedules.
Each project comes with a cost which is included in a budget along with contingencies and profit. A project manager’s goal is to keep the actual cost below, or at least at, the estimated cost in order to maximize the profit earned by the company for the project. To manage expenses efficiently, simply creating an Excel spreadsheet won’t do the job.
Businesses that are not yet utilizing a PM software are likely to do more work while gaining less profit because of the time wasted on juggling little tasks. If these tasks are taken care of, you and your team will have more time to focus on core operations to complete your project.
Examples of Project Management Software
There are a lot of PM software programs available that focuses on key features such as tracking and organizing the project management process. Knowing the features you need for your own business is essential in choosing a product to implement in your daily business operations. JIRA, ActiveCollab, Wrike, ClickUp to name a few.
If you want to keep your team organised, deliver the best results within desired timelines and budget, and triumph on your next development cycle, having an efficient project management tool is a big help to achieve that goal. It really doesn't matter which tools you choose, it’s essential that your team adopt and use the tools you select. Also, don’t be afraid to monitor the use of these tools and improve your workflow if opportunities for improvement arise. New tools are released all the time and you may wish to adopt emerging tools that provide features that are missing in your current process. It’s natural to adopt different tools as your team matures and your application grows.
I am a full stack web developer and co-founder of Bits n Bytes Dev Team, a small group of highly talented and professional freelance developers, where we provide custom web application development services based on cutting-edge technologies, tailored to client's unique business needs.
I'm available for hire and you can check out my portfolio website at https://www.bitsnbytes.ir/portfolio or contact me at email@example.com.
Top comments (8)
This flies in the face of agile and self organization.
Look, PM is important. Heck, I was a PM for most of my career, either as an addition to my tech role or as an exclusive role.
I can tell you from experience that this is not needed in a properly agile org. Most of them, of course, aren't.
You would be surprised what self organization can bring along. You drop all that toil and concentrate on value.
I've been PM during the "Waterfall" or "RUP" (IBM Rational Unified Process) era (though as I'm Deming specialist I was already practicing agile without the name since Scrum is from Sutherland himself said it used Deming's wheel), with agile era my role switched to Product Owner/Agile coach, but in practice they often expect me to be like the super PM in big corps. Except on small project of a few developers where you can practice canonical agile, in big corps and big projects it's near impossible notably due to politics: you'll have PM without the names, Directors etc... who will ask to be involved more than they should ;)
Interesting, how would you define "a properly agile organization"?
That is a huge question. I recommend reading This article by Ron Jeffries.
It looks like your article is grounded in a contractor mindset. Correct me if I'm wrong here. Not only is the work required is being estimated before it begins (not agile) but you are also burdened with delivering on-time and on-budget according to someone else's estimates.
The call for a collaboration tool because each person is focused on his task is also telling of a lack of cross-functional team structure with co-location leading to a natural collaboration.
I'm not saying this to take anything from what you said. For any business that provides contractual work it is a good glimpse into how things usually work.
People who read it outside of the industry though, might take it at face value.
The article I provided shows that it does not HAVE to be that way.
We have enough problems with management dead set in their ways. Let's not ruin the new generation of developers. ;)
Thanks for sharing your insights. You are right, I've always worked as a freelancer or a contractor with a very small team of developers. Agile development process seems to benefit everyone including client, project manager and developers.
Not finance though. It's hard for them to see unscoped and time limited work as viable.
Even though they do it with every new hire. 😉
You know what! I really need to get into this. I wish I could be part of a developer team with agile software development process right now to get more experience in this regard. Are you aware of any open source community with the same methodology?
Let me get back to you about this. It's a bit complicated for an immediate reply.