Jeffrey Palermo states in his post ‘Baking requirements - Developing with raw ingredients is waste’ that requirements has to be thought through before they are presented to the developers.
I think that is a statement that holds true for all levels of requirements. Software development is intangible and it is perceived that changes are easy to do. This leads to bad requirements from everyone. Customers doesn’t think through their needs and expectations before starting software projects. Business designers doesn’t think through either requirements or business rules enough before presenting them.
Very often it is possible to start working on a requirement even though the related business rules aren’t clear. But most times I find the business peoples lack of understanding of the constraints we developers are under to be very frustrating. A rule that is easily implemented or discarded in a manual process might need architectural changes in an automated process. It is frustrating for both parties. The current buzz is that developers should reduce the gap to business, but I think the responsibility to close that gap falls equally much on the business people.
We could argue that learning to program is hard, but failing to learn programming would also be a lesson learned.
Jeffrey Palermo July 12, 2007 at 1:08 pm
Johan, Who is at fault? Management. Management is responsible for everything in the company. If a developer or analyst is really the problem, it’s management’s fault for hiring them or not firing them (or correcting them). I also like just-in-time requirements for user stories. Analysts need time to define system behaviors, but the development team gets blocked when analysts are not ahead of developers when requirements for current user stories aren’t finished. Often analysts think the requirements are baked, but there are big holes easily exposes with any logical line of questioning.
Johan Idstam July 12, 2007 at 1:21 pm
I agree and that’s why I think business analysists needs to learn to think those extra two or three steps we developers tend to do right away.