Sunday, July 15, 2012

What is a good software ???


By googling this question probably you will get this answer : it must be maintainable, flexible, extensible, scalable, testable, modular, reusable, loosely coupled,…

Personally i define a good software as a software that can be adapted to a change easily.
The change could be of any kind, like change of environment and platform (portability), change of the number of users, number of requests (scalable) and specially change in functionality or requirement (flexible, maintainable)…
As developers we have been always struggling to keep up to these changes specially when we are limited in time and budget which puts us under stress and make our lives miserable. Of course we can’t blame clients for changing their mind we always knew that this will happen and management guys can’t explain how a change cost more than rewriting everything from scratch.
In years many experts have established practices, development processes, and software development methodologies trying to solve this problem (TDD, Agile, SOLID, design patterns(GOF), YAGNI, KISS, DRY(don’t repeat yourself…), used wisely these practices can make our lives much better.

I will post about these different practices and show the relation between them and how they are used to get a good software.

 Stay tuned.









0 comments :

Post a Comment