97 Things Every Software Architect Should Know – 21/97
Failed projects can happen for a multitude of reasons. One of the most common sources of failure is altering the project schedule in midstream without proper planning. This kind of failure is avoidable, but it can require major effort on the part of multiple people. Adjusting the time line or increasing resources on a project are not normally of concern. Problems start when you are asked to do more in the same time line or when the schedule is shortened without reducing the workload.
The idea that schedules can be shortened in order to reduce cost or speed up delivery is a very common misconception. You‘ll commonly see attempts to require overtime or sacrifice ?less important scheduled tasks? (like unit-testing) as a way to reduce delivery dates or increase functionality while keeping the delivery dates as is. Avoid this scenario at all costs. Remind those requesting the changes of the following facts:
- A rushed design schedule leads to poor design, bad documentation and probable Quality Assurance or User Acceptance problems.
- A rushed coding or delivery schedule has a direct relationship to the number of bugs delivered to the users.
- A rushed test schedule leads to poorly tested code and has a direct relationship to the number of testing issues encountered.
- All of the above lead to Production issues which are much more expensive to fix.
The end result is an increase in cost as opposed to a reduction in cost. This is normally why the failures happen.
As an Architect you will one day find yourself in the position of having to act quickly to increase the likelihood of success. Speak up early. First try to maintain quality by negotiating the originally planned timeline. If a shortened schedule is necessary then try to move non-critical functionality to future release(s). Obviously this will take good preparation, negotiating skills and a knack for influencing people. Prepare by sharpening your skills in those areas today. You will be glad you did.