Discussion


Discussion

As it turns out, although coding is the activity that produces software systems, it is not the only main issue of software development processes. Other activities conducted during the development process also have a significant influence on software project success. Two of these activities are the gathering and management of requirements. As mentioned previously, these issues are so important that some argue that no matter how a software system is developed, if the processes of defining the requirements and their management are done properly, the rest of the development process continues smoothly. How much effort is invested in the management of requirements is an organizational decision that is partially based on the organizational culture.

  1. Connect the topics discussed in this chapter to the Code of Ethics of Software Engineering (see Chapter 5, Code of Ethics of Software Engineering ).

  2. In some organizations, knowledge is conceived as power. How might this fact influence the process of requirements management?



Summary Questions

  1. Assume that you have to start gathering information related to a new software system for an organization that currently does not use any computational system. How would you start collecting the data? Why?

  2. Analyze three software tools that you use in your everyday work activities. What are their main characteristics? What customers requirements do they reflect? Can you suggest improvements for these tools?



For Further Review

  1. Visit a company (a software house or any other company). Observe how people communicate and behave in that company. Identify a situation in the company workflow that can be improved by a computational tool. Create a requirements list for this tool. Interview different people in the organization about this list of requirements. Reflect: Do their impressions fit yours? Do they suggest improvements? How would you improve the requirements list based on these interviews?

  2. Companies that produce products in the same domain tend to be constantly working with the same or similar requirements. Many now are choosing product lines, as these are more productive and more important in the long term [Clements01]. Product lines are most effective when there is a large amount of reuse. A company or team figures out which parts of the software can be an element of another product, and this element is made in such a way that it can easily be part of a new product. Explore additional benefits of reuse in software development. Focus on the human aspects of these benefits.



References

[Clements01] Clements, Paul, and Northrop, Linda, Software Product Lines: Practices and Patterns, Addison Wesley: Boston , 2001.

[Fairley and Willshire03] Fairley, Richard E., and Willshire, Mary Jane, Why the Vasa Sank: 10 Problems and Some Antidotes for Software Projects, IEEE Software (April “May 2003): pp. 18 “25.

[Mullet99] Mullet, Dianna, The Software Crisis, Benchmarks Online ”a Monthly Publication of Academic Computing Services ”a Division of the University of North Texas Computing Center 2(7), July 1999, www.unt.edu/benchmarks/archives/1999/july99/crisis.htm.

Examples of Requirements Management Tools Reviewed

  • RMTrk: www.rmtrak.com/

  • Rational RequisitePro : www.rational.com/products/reqpro/index.jsp?SMSESSION=NO

  • Goda Software: www.analysttool.com/

  • SpeeDEV: www.speedev.com/speedProcess.html

  • Telelogic: www.software-systems-development.com/

  • Intrinsyx Technologies: www.intrinsyx.com/technologies/services/requirements.htm