• We use test driven development, continuous integration, acceptance test driven requirements and SCRUM to develop our software.

    Does all that help to make a project successful? Yes.

    Does all that mean we will succeed and the project will not fail? No.

    Why no? Because we are continually given a date and a scope and told that we have to hit that date with the scope intact because the company doesn't want to invest more money to get that particular product to market and they've promised the customer base that they will have the product at that time. Is this realistic? No. Management's response to the catch 22 is to tell us to find the solution that fits the time given, which is, of course, not realistic.

    This process results in everything being pushed along so fast that an adequate job of describing and analyzing the product requirements, let alone architecture and design, is impossible except for the smallest of projects.

    To make things worse, we have teams spread across three or four time zones.

    Software development used to be fun before companies decided that they really don't like paying for it, despite the fact that they make good money from their investment (when they do it right).