Panel Reflection
Dr Shayne Flint is a communications engineer who teaches software engineering.
Engineers deal with complexity by separation of concerns, separation of systems into components and separation of engineering into specialised disciplines. When Shayne spoke about the limitations of the separation of concerns, I thought his points were most relevant to the field of software. It is easy for programmers to be isolated from external concerns, one person can define a problem, specify a solution and implement it, without interacting with others. However in heavy engineering (like mining), engineers need to work with many people to address environmental, financial, industrial, safety and construction issues. The cost and scope of these projects means that it is not feasible to implement something in isolation and hope for the best.
Panel Question
The class modelling diagrams in the panel seem to be quite different to network diagrams, I would have liked to ask Shayne to comment on this.
Tutorial Reflection
In the tutorial we used network diagrams to analyse various complex issues. Most of the group found value in the discussion around the drawing of the diagram, even if they didn’t like the diagrams themselves. When we tried drawing diagrams for some complex issues, all the groups discovered elements or relationships in the issue that they hadn’t considered previously. The lesson here is that for people to work on complex issues in groups it helps to have some sort of central focus that they can build on together. Without this they may not even be aware that they each have a different understanding of the problem.
The marshmallow towers were a real hit. Annette shared a link to this video.
Connections within this course
This course is about exploring connections, exactly what network diagrams are designed to do.
Engineering uses scientific knowledge and creativity. The creative aspect was not recognised by the Head and Alford article we looked at last week.
Bar-Yam‘s Evolutionary Engineering is the idea of replacing components of a complex system with new components, then testing them to find the best way to improve the overall system. It sounds similar to agile programming. I dislike the term evolutionary engineering because it implies that the system is improving itself without outside input. Continuous experimentation and development might be a better way of expressing the concept, but it doesn’t have the same alliterative ring to it.
Connections to other courses
Life Contingencies uses the same approach of breaking problems into individual parts, analysing them separately, then adding them back together.
External Connections
Ethics in Engineering has a whole chapter on Engineering as Social Experimentation. Because engineers design systems to last for many decades, it is difficult at the start to predict all the safety and other social implications of the systems.
Tools to Address Complexity
- network diagrams
- reducing systems to individual components