Registered: Nov, 2002
Re: Java and .Net Both a Disaster
Posted: Dec 4, 2002 7:56 PM
In my experience, many projects fail because of inadequate or non-existent feedback loops. Some examples:
- Developers coding components in isolation, with the "big integration" at the end to pull everything together.
- End-users only see the system regularly in demos. In a one year effort they get to directly play with it only at the six month mark and the one year mark.
- Junior developers are given work tasks with no oversight from a senior person, their end product is not checked.
- "QA means your code compiles".
- The whole team is developing on a new OS/language/platform they've never used before, without testing the waters first on smaller, less risky projects.
- Requirements are locked down on January 1. Code delivery is on December 31st.
- No "view from 10,000 feet" of what the system's for, and what it's supposed to do, only endless minutiae.
- No "view from 10,000 feet" of the architecture, just code-as-you-go (some may call his approach XP :-)
- Reliance on beta (or alpha!) technology from a third party as a core piece of your architecture.
- No planned release cycle - keep coding 'till everything's done!
- Lack of basic tools. Source code control. Isolated QA environment. Reference databases. Automated tests.
Etc. etc. The real problem with nearly all of the above is work being done in a vacuum without feedback from other people.
Successful projects work when everything is visible, when there are regular iterations, when all the important stuff is trackable, when the user regularly hits the real system, when requirements are regularly re-evaluated vs. the reality of the growing system. When you work out production release procedures in the 2nd or third iteration, not in the end.
In short - multiple people interacting regularly (regularly is important) injects a healthy dose of reality into the process. When feedback is lacking, everything starts to drift off of true. The difference is like the difference between hiking to approximate way-points via landmakrs every 2 klicks, getting a read how far off you are and correcting - and trying to sail by feel from New York to London over the Atlantic.
As an aside: projects with little feedback are fabulous breeding grounds for lazy developers, shifty project manangers, and end-users with unknown agendas.