How do we develop projects without messing up?
Through out my career, I got chances to work on different types of projects, architectures and with different types of teams.
NOBODY ever told me that they have messed up their project because they didn’t know better architecture or library.
From my experience and conversation with others, it seems like we usually mess up projects because of mismanagement or disorganization.
Every architecture and library have pros and cons. When we write dirty codes, we write dirty codes. We don’t write dirty codes because of any architecture or library.
Little by little our dirty codes grow and one day we realize that our project is out of control. We can’t point out a specific thing as it’s everywhere, so we blame our architecture.
Many companies or teams concentrate only on architectures and libraries during recruitments. We are developers and we always develop skills or learn new libraries quickly. Personality, experience and management or organizational skills come with time and these are things mainly responsible for messing up projects.
We are always learning new technologies as developers, but we should be open to learn and improve on those other non technical things as well.
Usually when we talk about what went wrong, we usually end up talking about technical things which we already know or safe to talk. We never talk about minor things which lead to those mistakes. So here I’m going to concentrate on those minor but important things.
How do we mess up projects?
1. Lack of guidelines – No coding convention and resource naming guideline.
2. Not following architecture – Mixing up entities (views and business rules) and not following directory structure.
3. Lack of tests – No actual plan on what to test or which corner cases to cover.
4. No code review – No code review or giving feedback negligibly. Also taking feedback personally.
5. Unclear responsibilities – Not knowing who is responsible for what. This brings lack of coordination as well.
6. Eyes not on target – Falling in love with project and forgetting about target e.g. consumers.
7. Lack of recognition – Lack of recognition brings lack of motivation. Employees usually don’t leave because of salaries.
8. Ego – Bringing ego in professional life which makes work environment toxic. Slowly everyone tries to avoid people with ego which is not good for project as well as for team.
How do we develop projects without messing up?
1. Guidelines – We can’t read minds. So make sure there are coding convention and resource naming guideline.
2. Following architecture – No matter which architecture we choose, we need to follow strictly. No exception is acceptable.
3. Tests – We should have plan for tests, otherwise we will end up with no tests or basic tests which may not cover corner cases.
4. Code review – Code review should be a habit. We should do code review with feedback. We should not take feedback personally.
5. Clear responsibilities – Everyone should be clear about their responsibilities and this is crucial for team building and coordination.
6. Eyes on target – Don’t fall in love with project and develop project only for oneself. We have target e.g. consumers.
7. Recognition – We need to recognize good works or someone else is going to recognize their works.
8. Politeness – Be polite and professional which make work environment great. Remember, everyone is working on same goal.
Now we know those little things we did unknowingly which indirectly affected our projects. We need to try to avoid those things. We can always try to become a better developer, a better colleague and a better human being.