Explaining importance of good coding practices

Submitted by rakesh on Thu, 12/27/2018 - 15:54

I have spent an almost equal span of time at PharmEasy as much as I did at OYO rooms. @PharmEasy, we have a lot of creative people around who knows what matters at what stage of time and learning from them has been a blessing. After I joined PharmEasy, Many things have changed so far including my attitude towards problem-solving, understanding business better.

I am very glad to announce that I am recently promoted to the position of Senior Software developer and I'd be more responsible for code architecture and system stability. To justify my position, I have been reading a lot about better coding principles and design. It has made my life really easy and I feel way more confident about my code and my practices.

After all those blogs and books, I am able to connect the dots and can see what fits best for our requirements here at Pharmeasy. We work with PHP codebase and use Yii2 framework. Though the system is stable and works fine it's based on monolithic architecture.  That is because most of the methods and functions, instead of doing what they're supposed to do are doing a lot of other things. We've started the practices to keep methods limited to doing what they're supposed to do. Every iteration is more confusing with current architecture and I've learned why separation of concern is one of the very important things to be learned if you aim to be a good developer. 

Having said that, it's not always easy to tell people to start following these new practices. Things get wrong. Sometimes they don't understand the process but sometimes it's worse. They don't want to understand the process. It gets really dirty sometimes and makes you question yourself if you can't explain it better or if you don't understand it well enough yourself. How do you make somebody understand why 6 parameters to a method are wrong? Is it a common approach across the industry to just get the business requirements fulfilled in the name of sprint comes the first approach without working on better code design? 

What are your suggestions on such problems?