Software Development Process - Excercises

Pre-reading excercises

  1. What kind of job do you see yourself holding five years from now?
    • computer programmer/software developer, graphic designer, scientist
  2. Do you know any companies developing software? Would you like to join any of them?
    • IBM, Google, Microsoft, Sabre, Motorola, Onet, Interia
  3. How do you imagine work is organized in these companies? What software development methods do you know?
    • methods: for example, iterative (extreme programming)
  4. Have you used any of these methods so far?

Comprehension questions

  1. What is the idea behind Test Driven Development?
    • Writing tests for all the steps of software development, from planning to coding.
  2. What are the main benefits of using Agile Methods?
    • Better productivity, reduction of software defects, cost reduction, reduced project risk.
  3. What is the main aim of introducing the SPICE standard?
    • To simplify the comparison of different development models.
  4. What is the aim of utilizing the Six Sigma methodology, and how can it help the performance of some kinds of companies?
    • The aim of using the Six Sigma methodology is to improve the performance of a company. The use of this methodology can identify and eliminate defects in manufacturing and service-related processes.
  5. Which of the software development steps involve most contact with the customer? (possible topic for discussion)
    • Software elements analysis, Specification, Software training and support.
  6. What kind of project often requires the use of the Waterfall Process of software development?
    • Usually high-risk projects.
  7. What is the function of requirements management, mentioned in reference to the Waterfall Process?
    • To control changes and correct mistakes during requirements establishing.
  8. With reference to Iterative processes, what is agile development mainly based on?
    • It is mainly based on the feedback given by the customer, who is repeatedly provided with constantly evolving software.
  9. What condition must the coding process fulfil before it can be completed?
    • The implemented part has to pass all the tests designed before coding.

Further exercises

  1. Students work in two teams: A/B. Group A are the customers, group B the developers. Imagine how the iterative process of development works on any application (e.g. building a house) and simulate it. Prepare a very short report which sums up the negotiations between the teams.
  2. Prepare a comparison between Iterative and Waterfall processes. Write it down in table form. Focusing on the differences, answer the following questions:
    • Which features of these techniques do you think are better?
    • Do you use any of them? Which ones and why?

Possible topics for discussion

  1. Do you agree with the critics of the iterative processes?
  2. What are the steps of software development that are indispensable for creating a good academic project?
  3. Imagine that you are the manager of a team of several people. Write the outline of a project that you have heard about during your studies. How would you divide the work within your team to make the final product perfect?

Possible difficulties

In some parts of the text the language is complicated, so intensive reading is required.