Notes about Modern Software Engineering
Notes to my future self about David Farley's book Modern Software Engineering. IMHO the book was quite boring, and presented just a few new ideas. Chapter 1 - Introduction We need to become experts in learning and experts in managing complexity . The scientific method we learned at school: Characterize - make an observation about the current state. Hypothesize - create a theory explaining the observation. Predict - make a prediction based on hypothesis. Experiment - test the prediction. When we implement many small experiments this way, we will limit our jumping to wrong conclusions and do a better job. Software engineering is the application of an empirical, scientific approach to finding efficient, economic solutions to practical problems in software. To become experts in learning , we need the following techniques: Iteration, Feedback, Incrementalism, Experimentation, Empiricism . To become experts in managing complexity we need: Modularity, Cohesion, Separation of Concerns,