Tough and double tough? The problems with Complex code
While Hobbes is correct in saying that software should be designed for the end user and not for the benefit of development team let us not forget that complex code can impact these very users we are trying to help. If code becomes too complex to properly test then the quality of the software cannot be confirmed. The end result is that end-users will, in all possibility, be unhappy because the software has bugs in it.
By writing quality code from day one it makes everyone's job easier and the project less costly. Why is software testing often inadequately done? Because of the costs associated with it. We run out of time, money, resources.
But here lies the rub. We can throw more testers at the code to improve quality throughout the development lifecycle but this becomes costly very quickly. If automated source code analysis is used from early in the code-writing stage, the testers can get involved at the right time, focusing on the right things not simply picking up on bad code.