Systems Thinking

Assumptions

Symmetry

Lessons Learned

Fragmentation

Software Development Ethics

Waterloo Style

Software Evolution

End-points and Computations

Innovation

Model-based Systems Design

Implementing Sophistication

Data Modeling

Stress Free Programming

Routine Software

The Edit Loop (2010)

Containers, Collections and Null

Software Engineering

The Programmer's Paradox: Organization

Encapsulation

Special Case Considered Harmful