For Further Review


  1. For each of the two cases described below, address the following:

    1. Identify potential topics for reflection.

    2. Construct a ladder of reflection.

    3. Describe what lessons you learned from this experience.

    Case 1 Testing in eXtreme Programming: In XP [Beck00], programmers write tests before they write the code. This approach is called test-driven-development (TDD). Write a class Student according to the TDD approach.

    Case 2 ”New developers join your team: You are a team leader. You are asked to accept to your team two software engineers who have developed software that can be integrated into the project on which your team works. You ask your team and the two new developers to meet to discuss how to merge the code successfully.

  2. In this question, you are asked to apply the ladder of reflection process to a case in which it is carried out by an individual. The idea is to illustrate how one can increase the level of abstraction of one s thinking when reflection is interwoven in the process of software development. In Table 10.4 all phrases are a developer s thoughts.

    Table 10.4: A Ladder of Reflection: Individual Work

    Ladder Rungs

    A Dialogue During a Code Review Session

    Designing

    I do not know if this should be a class or an attribute

    Description of designing

    This is a crucial decision for the continuation. Before I move on, it would be better if I check the implications of each decision.

    Reflection on description of designing

    Okay, now that I know the implications of each decision, how, in practice, can I determine between the two options? What guidelines may help in such dilemmas?

    Reflection on reflection on description of designing

    I got it. It should be an attribute It is interesting because at first glance it seemed to be a class. I must understand how the guidelines I used helped me to arrive to this conclusion.

    Assume a situation in which a programmer looks for a way to decide whether all the needed tests were conducted . Construct two ladders of reflection for such a situation.

  3. Senge s field book [Senge94] presents vast collection of tools, procedures, and heuristics to foster team learning. Select two of these methods and apply them to situations in which you should solve real problems. During and after that process, reflect on the following issues: In what ways did the use of these methods help you in solving the problem? In what ways do these methods differ from other methods for team discussion you used to use in problem-solving situations? Can you suggest improvements for these methods?

  4. In the context of the industry/academia communication chasm , Glass [Glass97] says that industrial people tend to reinvent the same wheel they invented last year (p. 13). Suggest real-life situations in which practitioners reflection on the way they solve problems may help them learn from previous failures as well as from previous successes.

  5. Tape record one of your team meetings whose aim is to solve a problem. Listen to the cassette and analyze the meeting: Did all participants contribute to the discussion? Did someone discourage the introduction of new ideas? In what places would you navigate the meeting differently? Illustrate your analysis by quoting excerpts from the meeting. Summarize: Did the meeting achieve its aims? Could it be managed more efficiently ?




Human Aspects of Software Engineering
Human Aspects of Software Engineering (Charles River Media Computer Engineering)
ISBN: 1584503130
EAN: 2147483647
Year: 2004
Pages: 242

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net