How to Dev
19 Jul 2023
Notes to my team
As we grow as a team and develop ____, here are a few things to keep in mind (have included everyone from Thursdays 11am meet):
Product Mindset - We are not working on clients projects here but on a product or multiple products. We and our customers are our clients. _____ Mobile is a product. _____ Web is a product. ____ Corporate and Partners are products. These products are used by lacs of people around India daily. At this given moment, someone is using something that you have worked on! Think of yourself as the caretaker of this product. Products need to be nurtured and taken care of just as an artist who takes care of his/her artwork. You need to always be mindful when adding and removing things from your product.
Put yourself in the user's shoes. Have empathy when working on any feature. How will the customer feel or think about this? But, also be mindful of your deadlines and realistic timelines.
A software's job is to help the business increase revenue and/or reduce cost. Anything that doesn't help do this is not important and might just be a "nice to have". This will help you prioritise.
There are other developers who work on the same code as you so be mindful about them. If you can reuse a component, then don't create something new. Anything new that you add creates technical debt and lives on for many years. Finishing and deploying a feature is only part of the software development process. How you write your code is another. As we grow, we will now have code reviews and pull/merge requests. Everyone's code will be reviewed by someone senior.
UI should be consistent through your product. The same button cannot have blue on one screen and grey on the other. Imagine you get a car with 1 door blue and the rest white? If you are not sure of your UI then please ask Harshal for the web and me for the mobile.
You will never deploy features that are not yet completed or performance-checked. Just because it's working does not mean it's finished!
If you are working on a current codebase, make sure you reuse code/components (and the way things are set up currently in the codebase) instead of creating and duplicating new components that do the same thing. Take some time to learn the current code. If you are confused, reach out to a developer. Send an email explaining your questions and what is confusing. Imagine what happens if every developer starts creating code their way? In a few years we will be left with spaghetti code which will be hard to understand and fix! Technical debt compounds and gets expensive to manage.
Document everything! Eventually, we should reach a stage where every API, feature and process is documented in wikis. Write first, code later.
Use Slack for quick discussions and fixes. Use email for anything you would like your teammates to think about and get back in a day or so. Not everything is urgent and should be on Slack.
As we start using tools like Slack, Issues, Wikis etc. communication is paramount. Be clear, concise and to the point while explaining an issue, pull request or a feature. Take the time to write but make sure it's clear - ambiguous sentences wastes everyone's time - especially when people are working from different locations.
Slack has a nice huddle feature where you can quickly go to a 1-1 or 1-many call to figure out something. Instead of waiting for days for a reply to something, be proactive, reach out to your fellow teammate and figure out how to get something done.
Start using ChatGPT/ Bard. There are many resources online on how best to prompt GPTs. Go through them, take some courses and see how your productivity skyrockets. But, you would need to understand how to read the code ChatGPT gives you back. Don't trust it blindly.
If you have learnt something new (even if it's something really small) or found a new tool etc., show it off on the #random or #fun channel. Share your knowledge.
Do keep an eye out on the #reading channel. There is always some good stuff to learn there.
That's it! Reply if you don't understand something or just have a question. Good luck!