“Bad code can contaminate otherwise good code that interacts with it, if the interface is not right.”
Coding is dealing with abstractions and the way that things relate to one another. You’re not just constructing the pieces, you are constructing how they will be put together. If you set it up wrong, it can be tricky to change later, if other people are relying on the parts that you’d like to change to keep working the same way they have been working from the beginning. And creating new software is usually a process of discovering requirements and uses for the software as you go along, so it is often difficult to know how to approach something at the beginning. Also, working with other people on the code means working with people who set up abstractions differently and have a slightly different, or wildly different understanding of what the code is meant to do, and the assumptions that underly it.
Working on a software project is a good way to see how people think differently, and how errors and assumptions affect the project and how people work together.
I like Frederick P. Brooks’ books on software design, and design in general. They are classics: “The Mythical Man-Month” and “The Design of Design”.
“Bad code can contaminate otherwise good code that interacts with it, if the interface is not right.”
Coding is dealing with abstractions and the way that things relate to one another. You’re not just constructing the pieces, you are constructing how they will be put together. If you set it up wrong, it can be tricky to change later, if other people are relying on the parts that you’d like to change to keep working the same way they have been working from the beginning. And creating new software is usually a process of discovering requirements and uses for the software as you go along, so it is often difficult to know how to approach something at the beginning. Also, working with other people on the code means working with people who set up abstractions differently and have a slightly different, or wildly different understanding of what the code is meant to do, and the assumptions that underly it.
Working on a software project is a good way to see how people think differently, and how errors and assumptions affect the project and how people work together.
I like Frederick P. Brooks’ books on software design, and design in general. They are classics: “The Mythical Man-Month” and “The Design of Design”.
Thank you, those look interesting.