This is What Every Developer Should Know about Project Management
It’s never easy to deliver quality software that fulfils all the requirements and hits the budget and estimates. Here is what every developer should know about project management to successfully accomplish coding and non-coding tasks.
Never start writing code before you know exactly what the code should accomplish
Functional requirements define the client expectations. In other words, these are the actions of the application that are important to the client. They include things like:
- What actions specific pages and components should perform from the user perspective, including the layout of important components, user workflow between different sections of the application, etc.
- Business logic and rules for how data should be processed, saved, validated, etc.
- Security rules governing access to functions.
Functional requirements do not include plans for technical implementation. Digging into the technical details before all functional requirements are validated is a waste of time as it’s impossible to make accurate technical plans before you know what you need to implement.
Any functional spec is the primary job of the Project/Product Manager
Ideally, any web and app developer should not be the primary author of any functional spec. Project/product managers are the people who deal directly with the client, translate their requests into functional requirements and present them in an organised way.
As a developer, you are the person who connects the dots between functional requirements and technical implementation. So though you don’t have to write the functional spec but you have to review it very carefully (in case there are incompletely defined functions, missing items or security holes).
Unfortunately, if there is no PM who interfaces with the client and organises requirements, the developer will have to perform these functions and prepare the functional spec. Anyway, this thing can not be skipped, otherwise this will lead to costly consequences.
If you can’t define all functional requirements before starting, determine what section you should work on first
It is rare that you have a complete functional spec for a large project ready before you start. At least, you need to know:
- What problem are you solving? What is the goal of the project?
- What is the general outline of the solution that is needed?
Answering these questions will help you determine what section you need to work on first. And before starting, make sure this section has complete functional requirements.
Your job as the developer is to translate the functional requirements into a working technical plan for implementing all of these requirements.
When you know what to deliver, here is a quick checklist before you start writing code.
- Go through the functional requirements.
- Think about what you need to do to accomplish a certain piece of functionality.
- Write down all individual technical steps that you will need to complete to deliver the functionality.
- Use your plan as a guide and start working. If any questions arise, stop and ask them before proceeding (and if needed, rewrite the spec to adjust the functional requirements).