The Importance of Having a Development Process
Table of Contents
From my experience, this is something I have encountered a few times.
Companies that have development teams and create digital products don’t seem to take the time to ensure they have a proper development process in place.
This may be due to several reasons, some might be:
- Lack of planning.
- Lack of leadership.
- Lack of communication between teams.
- Misunderstanding of development and what is involved.
It also seems that most companies believe that having Agile project management is the answer.
I’m sure that Agile was created with that in mind, but unfortunately in my experience, every company seems to have their own approach to Agile which results in a twisted, warped version of what it is supposed to be.
Another problem I have with Agile is that it involves everyone and usually results in development teams being neglected, not getting what they need which makes it difficult for them to do what is expected.
I think Agile has value, but I don’t think development teams should only rely on Agile when it comes to developing.
When there is not a proper development process in place it can result in several problems, such as:
- Frustration within development teams.
- Extended deadlines due to confusion and lack of clarity.
- Low-quality products.
I don’t think there is a one development process for everyone, it is a process that needs to go through trial and error to make it fit with your needs.
You will immediately know whether your development process is effective or not, some of the things that should improve are:
Development teams are in sync
In companies creating digital products there is usually these groups or sometimes individuals depending on the size of the company:
- Designers/UX designs
- Frontend developers
- Backend developers
If your process is doing what it should, all of these groups should be in sync with each other.
Everyone needs to know what needs to be done and when what is required of each group and who is responsible for what.
All groups should also have an understanding of what is trying to be achieved, the bigger picture, beyond what they need to do.
More productive time
If all the teams are in sync, there will be more time available for each group to come up with the best solutions for problems.
When teams are not in sync, more and more problems seem to occur which results in teams spending more time fixing these problems which result in pressure and stress.
This results in teams rushing to get things done as the deadline gets closer which then means the quality of your product will suffer.
Ensures a high-quality product
This one might seem obvious or not, but because teams are not rush and under immense pressure and stress, the overall quality of your product will be dramatically better.
When it comes to digital products, the quality of a product is not only what you can see and use, it is also behind that.
Even if your product looks nice and does what it needs to, the source code might be a nightmare.
This will make any developer cringe because it means if the product needs to be updated or extended, it will be challenging which results in the pressure/stress cycle starting again.
Digital/developer projects are stressful
I’m not saying that a development process will remove all stress and pressure from a digital product project but it can reduce the amount of stress/pressure.
It can also result that you retain your team members much better because nobody wants to be under stress and pressure 24/7.
Digital is constantly evolving
One thing to keep in mind is that digital is constantly changing, which means your current development process might need to change tomorrow.
I guess it is one of the exciting factors of digital but also challenging because nothing stays the same.
A development process needs to be able to adapt to changes, it cannot be a once-off process.
With that being said, a development process needs to be flexible but also consistent, it cannot change every day.
It will be easy to realize when it is time to review your development process, as soon as you start noticing the problems as mentioned at the beginning of this post.
Another thing to keep in mind, when I say change, I don’t mean a brand-new process as that would cause more problems than it solves.
It is better to make incremental changes, it allows the overall flow to stay the same and won’t completely disrupt teams and product development.
Development process example
I recently drafted a proposal for a development process which I feel would improve the development of a digital product:
- Product requirements approved.
- Designs are ready and approved.
- Frontend and backend teams define the data structure together for each screen/section.
- The frontend team starts developing each screen using random data as defined in the previous step.
- Each screen/section should allow around ½ to 1 day of testing depending on complexity before development on the next screen/section is started.
- The backend team follows the same process as above.
- Once the backend is ready, the frontend can start implementing it into the screens using dynamic data.
- Once a screen/section is ready, it should be run through a QA session.
- Any problems/issues/questions should be logged and either addressed after all screens/sections have been developed and are ready or before the next screen/section is started.
I hope you have enjoyed this post and found it useful. If you have any comments or suggestions please let me know below.