I am a software developer with over 14 years experience.
I have work experience with computer vision using OpenCV, too.
My programming philosphy is keeping code clean, and designing the code to be reusable and extendable. Often times this takes many iterations, and sometimes even scrapping whole chunks of code in favour of smaller and more efficient code. This was not always my philosphy, especially when I first started programming, but I have since found that simplicity always beats complexity in code. Building smaller modules of code that can communciate with each other will always be cleaner and easier to understand that one larger module that encompasses all the functionality.
This is percisely why I enjoy the Unix philosphy that each command should perform only one job, and it should do that one job very well. In extension, commands should be able to be combined to perform complex tasks while the individual commands themselves remain simple.