Hi, I am Mayuresh PG. I blog here about all things related to programming. I’ve 10 years of experience in programming.
I believe in solving the problems in most pragmatic manner. Solutions should be realistic and doable. Free of any ideological and design burdens.
Fit your solutions to the problems and not the other way around. Don’t pre-convince yourself that xxx technique (add your current buzzword here [Agile, DDD, Pair Programming, Onion Architecture]) will solve your problem. Yes it might. But, in the long run you might have tied yourself in knots. With non-fixable bugs and rigid design where you can’t add new feature requests. As they say, ‘It ain’t over till its over or until they play the national anthem!’
Realistically our clients are not sure what they want. They have a vague idea but not the complete picture. Complete picture emerges as we go along solving the problem. And it’s not clients fault too. Imagine you are renovating your home do you EXACTLY know what you want? No right?
Thus, the design of the code should evolve as we go along. Refactoring should be most important part of the programming life cycle. Keep hacking small working solutions for the problem and refactor the code to make the code better and scalable.
I believe that often times simplest solution is the most elegant one. More complexity you add to solutions, more the number of nodes for failures. Hence, more bugs and what not.
I plat to write about the programming problems I faced, and how I ended up solving them.