Changes for page General Insights
Last modified by chrisby on 2024/09/19 10:56
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -16,9 +16,9 @@ 16 16 17 17 #### Delay Decisions 18 18 19 -* **Meaningof Delaying Decisions**:Avoid making decisions you don't have to make right now.19 +* = Avoid making decisions you don't have to make right now. 20 20 * **The later we make decisions, the better informed they are.** Making a decision later reduces the chance of being wrong and therefore wastes fewer resources. For example, early in development it may be unclear whether the software should store data in a file or a database. Because persistence is not needed early on, the decision can be delayed by keeping everything in-memory. After 3 months, the customer requests that persistence be implemented next. Since the developers have learned a lot about the specifics of the project in that time and are better informed, the decision is much more likely to be a good one now than it would have been 3 months ago. 21 -* **Requirements evolve.** There are many reasons for this: customers refine their needs, planning and design did not work out as expected, new insights and problems emerge as the project progresses, and so on. This means that the effort put into the early requirements specification may turn out to be wasted later because the requirements have changed. Delay specification as long as possible,andspecifytechnical details only when youhave to. That is,thinkabout or writedown requirements for technical details during implementation, not before.21 +* **Requirements evolve.** There are many reasons for this: customers refine their needs, planning and design did not work out as expected, new insights and problems emerge as the project progresses, and so on. This means that the effort put into the early requirements specification may turn out to be wasted later because the requirements have changed. Specify only when you have them, delay specification as long as possible, i.e., specify just during implementation. 22 22 23 23 #### Miscellaneous 24 24 ... ... @@ -25,4 +25,4 @@ 25 25 * **The sooner a problem is addressed, the cheaper it is.** For example, it is much cheaper to discover a problem in development than in production, where it could have caused real business damage. Or it is cheaper to refactor newly written code immediately, when you are familiar with it, than later, when you have forgotten it or someone else has to refactor it. So immediate refactoring, extensive testing, code reviews, and a focus on early feedback have become common practices. 26 26 * **Early Feedback Through Early Implementation.** Tasks like analysis, design, and specification don't provide feedback and therefore no correction mechanism. Without this, a lot of effort can be wasted on concepts that do not work. The first technical feedback comes during implementation. The first user feedback may come after implementation. This is why people use agile and work in iterations to start implementation as early as possible, get feedback as early as possible, and ultimately waste less resources. 27 27 * **Many small steps are cheaper than one big step.** It's more cost-effective to tackle a problem iteratively in small, simple, and safe steps than to tackle its full complexity all at once. That is why practices such as small-step refactoring, test-driven development, and continuous integration have prevailed. 28 -* **Individual productivity is higher in a team than when working alone.** A collaborative environment encourages knowledge sharing, professional growth, constructive challenge of individual views, mutual support and feedback. In addition, or if you have no one to talk to about technical issues, I highly recommend discussing problems and code with [ChatGPT 4+](https://chat.openai.com/) .28 +* **Individual productivity is higher in a team than when working alone.** A collaborative environment encourages knowledge sharing, professional growth, constructive challenge of individual views, mutual support and feedback. In addition, or if you have no one to talk to about technical issues, I highly recommend discussing problems and code with [ChatGPT](https://chat.openai.com/) .