Opportunistic Problem Solving in Software Engineering

  • Authors:
  • Pierre N. Robillard

  • Affiliations:
  • École Polytechnique de Montréal

  • Venue:
  • IEEE Software
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

Software development is a complex, mainly cognitive endeavor.What is specific about software engineering relative to other engineering disciplines, and how can we measure what can be improved?Many concepts, such as problem solving and opportunistic design, are common to all engineering disciplines. The author reviews these concepts from a software engineering perspective in order to highlight their links to software practices. Software engineering activities are composed of cognitive actions performed by human beings. For many years, researchers and developers have helped improve software engineering practice by suggesting various intuitive approaches, proposing modeling techniques, and presenting case studies of successful projects. Real and durable improvements are likely to emerge from a scientific approach based on observation and measurement of real human behaviors. Based on results from measuring cognitive actions, the author proposes synchronization meetings to improve practices with a high degree of opportunistic problem-solving content.