Learned the hard way
4 Tips to be Efficient & Effective for your Next Project
Guide to eliminate all the last minute ‘Oohs!’ & getting some extra time off instead of working on your weekends before pushing to production.
I have been in the industry for a reasonable amount of time now and I have been fortunate enough to have learned a lot more from the experiences of various Project Managers and Tech Leads and used the learnings to avoid making the same mistakes, which sometimes I still end up making.
Here I am sharing my learnings in a brief piece so that you walk away with great value in a couple of minutes.
1. Use Critical Thinking and prepare Documentation
This is the most important thing that you can do for your next project to be very efficient and effective.
When you take advantage of Critical Thinking, you do a proper analysis of requirements, brainstorm all possible solutions with their edge cases, setup validation requirements, plan out all the DFD and Class Diagrams and prepare documentation that your whole team has to treat like the Holy Bible.
After the documentation is ready, you can communicate it to the Dev Team, PMs, QAs, and the stakeholders about it, bring everyone on the same page and make them understand why certain key decisions were made.
If there is any enhancement/changes required, first update the documentation and set up a realignment meeting with the required people/everyone and only then bring those changes into effect.
If you want to learn more about Critical Thinking, here is a Medium Story worth your time.
2. Invest Time in Writing tests and Refactoring.
Devs feel lazy when doing these two things — Writing Tests and Refactoring.
Clean Code is the heart of your project’s efficiency. When your project gets bigger and more complex, you should definitely spend time refactoring and cleaning up your work, from time to time, before you actually move onto working on the next set of features.
Clean Code is cool but what about Tests? We don’t give tests their due respect. Tests are your friend to keep your code clean. Tests do take some time to write at first, but treat them as an investment of time that you make now, to become more efficient in future.
A full test suite helps you quickly validate all aspects of your projects, all requirements, and edge cases within seconds, instead of you manually testing things out, while spending hours together! You could get that time off if you had prepared a test suite.
Interested to read more about this? Here is another helpful story.
3. Automate Stuff
Automation is your friend, you make the computer do things for you instead of you doing things manually. You are a programmer, remember?
Use a Version Control System with discipline
Use tools like GitFlow to help you manage naming various branches and keep things in your VCS clean and tidy. There shouldn’t be 436 stale branches at the end of your project.
Your whole team should be on the same page, when it comes to naming branches, structuring commit messages and managing proper VCS flow. If you can mention all this in the documentation itself that’d be one thing less for you to worry about.
Use CI-CD and automate the way you test and deploy your build
CI-CD requires you to write tests for your project (whose importance we have seen in point #2). Hence, another reason to write a test. CI-CD saves you a lot of time by automatically validating the generated build from your pushed code, saving you all that hassle.
Again, setting up these things can be time-consuming, but these are some investments you can make to enjoy the huge return in the form of free time and confidence in your team’s work.
Interested to read more about CI-CD? Here is a helpful story.
4. Being Professional
Whatever the other person is saying doesn’t necessarily have to be correct. Sometimes you could be this ‘other person’ to someone as well.
We are working professionals, right? ‘Professionals’. But do we make professional decisions? Do we advocate about our decisions made professionally? Or we just end up following whatever the other party(whom we’re trying to satisfy) says.
Well as developers, we make certain commitments that we are not able to fulfil, at times. The funny thing is that our project plan closely resembles the commitments that we gave our managers.
The managers often communicate the same plans to the client and the client sets certain expectations based on those unrealistic estimates that we as developers made initially, which we find a challenge to fulfil.
Failing to stick to these targets makes us lose trust in our capabilities, while, our peers and managers also may end up losing confidence in us. Teams without trust? That’s the worst kind of workplace you can have for yourself.
Hence, be professional, think critically, gather data to back up your decisions made like a professional 😎
Bonus Tip: Here is something that applies to your personal life as well..
We hear other people's opinions all the time, it’s definitely a good thing if you make the time to listen and understand them but if you just take their opinion as is and make it yours, then it could end up hurting you even in your personal life.
You are at a place in your life right now because of who you are and how you took some decisions. I am sure you are living at least a decent life, making valuable contributions in your workplace, community and to your family and friends.
Hence value yourself and the decision you make, hear other’s inputs, importantly, use your discretion to form your own opinions.
What are some habits of Productive Developers?
If you want to make the most out of your 8-hour workday to get more out of your work and life, achieve goals faster than others and just be more awesome, check out this article, link given below.
Thank you for reading, I hope it was worth your time ❤ See you soon :)