- System entropy (disorder) / decay can be decreased by frequent code refactoring.
- Start a Refactoring Backlog of all the things that need clean up.
- User retrospectives to discuss refactoring.
Scraps from various sources and my own writings on Generative AI, AGI, Digital, Disruption, Agile, Scrum, Kanban, Scaled Agile, XP, TDD, FDD, DevOps, Design Thinking, etc.
Page Hits
Tuesday, January 22, 2019
Code Refactoring
How Scrum Benefits -- Mike Cohn
- Higher productivity and lower costs
- Improved employee engagement and job satisfaction
- Faster time to market
- Higher quality
- Improved stakeholder satisfaction
- What we have been doing no longer works
Monday, January 21, 2019
5 Trademarks of Agile Organizations - McKinsey
- Old paradigm - Organizations as Machine Model aided by principles of scientific management (Taylor).
- New paradigm - Organizations as living organisms
Disruptive trends challenging old paradigm
===============================
1. Rapidly changing environment
2. Constant introduction of disruptive technology
3. Accelerating digitization and democratization of information
4. New war for talent (acquire, retain, and nurture best talent).
Jack Reeves on Software Design...
The final goal of any engineering activity is the some type of documentation. When a design effort is complete, the design documentation is turned over to the manufacturing team. This is a completely different group with completely different skills from the design team. If the design documents truly represent a complete design, the manufacturing team can proceed to build the product. In fact, they can proceed to build lots of the product, all without any further intervention of the designers. After reviewing the software development life cycle as I understood it, I concluded that the only software documentation that actually seems to satisfy the criteria of an engineering design is the source code listings -- Jack Reeves
The design of a software project is an abstract concept. It has to do with the overall shape and structure of the program, as well as the detailed shape and structure of each module, class, and method. The design can be represented by many different media, but its final embodiment is source code. In the end, the source code is the design. -- Robert Martin
Intentional Programming
"Intentional Programming is a programming paradigm (Charles Simonyi, Microsoft) that encodes in the software source code the precise intention which the programmers ( or users) have in mind."
A Java program that writes numbers from 1 to 10 looks like this.
for (int i = 1; i <= 10; i++) { System.out.println("the number is " + i); }
However, this does not "does not capture the intentions of the programmer". A modified code would look like this.
for (int i = 1; i <= 10; i++) { System.out.println("Printing the numbers 1 to 10 " + i); }
TDD encourages intentional programming. You are able to state your intentions (via TDD) even before you code.
Subscribe to:
Comments (Atom)
If we already have automation, what's the need for Agents?
“Automation” and “agent” sound similar — but they solve very different classes of problems. Automation = Fixed Instruction → Fixed Outcome ...
-
Requirements Analysis -- Business requirements document or business requirements specification System Design -- Systems requireme...
