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.
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