Thursday, June 18, 2015

Sticking with the design...

A software project is like a giant recipe where the slightest modification can alter then end user experience.  Seriously, I'm not joking, it's a big deal.

Any software development will require thousands and thousands of line of codes to create a tool that will automate some kind of process.  It can be as simple as keeping your notes into a database, to implementing a full accounting solution.  There is no easy way out on this, like it or not.

In a team, everybody has to comply by the design put in place by the software engineer.  It's not about a power trip or some kind of magic dream.  A good software design is the foundation of any software solution.  

Some of you may have had the experience of having to comply with proper naming of variables and functions.  A design is more than using the same coding style.  It's a philosophy that all team members need to understand and praise.  This design will ensure many thing when properly defined:

- diminishing the risk of creating bugs by mistake
- ensuring the clarity of the API so that any developper can easily use the framework 
- establishing the limitations of what can be done without having to tweak the code
- avoiding to duplicate code and routines throughout the solution
- making sure that there is only one way to do a process
- keeping the exceptions to a minimum level to ensure homogeneous coding 

I could go on and on with the reasons a design is a good thing.  There are many ways to implement a routine such as saving some data into a database.  Some are better than others but in the end, the best way is the one that all team members are using without exception.

What is a good design?  It's the one that makes coding easier by removing the hassle of figuring out what to do.  There is nothing worse than confusion in a team.  

As Othello said: A bad design is the worst poison...  No?  I you having doubts about your design?