A Historical View on Software Engineering and its Environment

9 Dec 1997

Ute Twisselmann

IBM Scientific Centre
Dept 3899 69115-55
twiggi@DE.IBM.COM


Table of Contents

A Historical View on Software Engineering and its Environment

  • The Historical way to Object Orientation (technological view)
  • State of the Art
  • Processes
  • Teamwork
  • Literature

  • An Historical way on Software and Environment


    Table of Contents

  • What is Software today ?
  • Software development in research (For-yourself-style)
  • Software development on a product
  • Brainstorming Session
  • What is a software product
  • Literature

  • What is Software today ?

    Let us have a look on how software is developed today. I will try to compare two extreme positions: university and industry. The statements below can be called behaviour patterns. Of course in real life you might find examples of univerity projects doing software development as described below for industry and v.v.. Real life projects ly normally somewhere in the middle between the patterns described below.

    Software development in research (For-yourself-style)

    This sort of software can be called one-way-software. Only the developer will use herself except some people working closely together with her. Often this sort of software will be thrown away if the developer leaves the place. This is a very typical scheme for universities or internal tools.

    Main properties

    1. Specification (functionality and quality) are defined by the developer.

    2. Only the developer or persons very close to him use the program.

    3. Maintenance consists of fixing bugs.

    4. Communication with others is minimal.
    The environment is simple and closed. Nobody has to bother about teamwork or communication. The 'product' is a running program often with very limited documentation. The developer does not work in a process. He/she uses technology.

    Software development on a product

    Main properties

    Here you have a product with a lifecycle.

    1. Specification is done together with the customer(s).

    2. The product will be used by users not knowing the internals and the design. Very often they have few data processing knowledge.

    3. The product will be used for long time.

    4. Maintenance will include fixing ,extension and porting. It has to be done by several people. Often the maintenance responsibility will be tranfered to different groups/persons over time.
    Here the product contains much more than only a running program. Communication pathes and development process (not only the technical strategy) are important.

    Brainstorming Session

    What is a software product

    So we come to the question what a software product really is and what is necessary to develop such a product. Here a product specifies everything delivered to one or more internal or external customers.

    For offering and planning a new product or maintainting an old one the following things have to be implemented or prepared:

    1. Pre sales activity

    2. Development

    3. Shipment and Service
    Therfore a lot of various people with different skills work on such a product: Even the range of number of people working on a software product is quite high:

    operation systems or large applications
    50 to several 100 people

    middle application
    10 - 100 people

    customer specific solutions
    1-10 people

    internal tool
    1-10 people
    Here we will focus on the following important areas in software development:

    1. the used software technology

    2. the process

    3. the communication behaviour of the team
    I will not speak on

    1. pricing

    2. marketing material

    3. techniques in documentation development

    4. supply chain management (distribution structures etc.)

    5. test methods
    Therefore we look on the historical development of these aspects. Let us start with the technology which parallel led to new processes. In the end there will be remarks on teamwork.

    Literature