Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The first talk of today was CodeComplete 2 by Steve McConnell. His popular book Code Complete has beed reedited, and he is talking about it, here are my notes about it.
First Version Written in 1993 95% is still OK
Book companion WebSite https://cc2e.com/
Worst Ideas
1990s
- Code & fix
- Design up-front
- Design for speculative Requirements
- Components will solve of your construction problems
- Automatic Programming
- Uninformed use of the waterfall model
- Calling everything Object Oriented
2000s
- Code & fix
- No design up front programming
- Planning to refactor later
- Offshore outsourcing
- Automatic Programming
- Uninformed use of XP
- Calling everything agile
Decade Advances
- Ability to create larger code aggregations
- DailyBuild and smoke test
- Standard Libraries
- Visual Basic (case statements are better, biggest code base)
- Open Source (learn from available code, read code)
- The web for research
- Incremental Development
- Test-First Development
- Refactoring as Discipline (not so good as total design strategy)
- Faster computers (forget about performance while writing code, only focus on clearity)
Ten realities
- Software Construction. Distinction between Activity and Phases.
- Individual Variation is significant.
- Key skills of an expert programmer (Design,, out errors from reqs, coding, naming, reading, unit testing, debugging..)
- Personal discipline matters (refactoring, prototyping, optimization, minimal complexity)
- XP requires discipline and courage
- Simplicity vs Complexity.
- Why projects fail
- Focus on read-time not write-time convenience
- Bad requirments
- OutOfControl (Too complex code)
- YAGNI and design for speculative requirments
- Design is important (Extremes are not productive)
- Technology waves affect construction
- Incremental Approaches works best
- The tool box metaphor (cont to be illuminating)
- Software essential tensions remain
- Rigid Plans vs. Improvisation
- Planning vs. Fortune Teller
- Creativity vs. Structure
- Discipline vs. Flexibility
- Quantity vs. Quality
- Process vs. Product
- Optimizing vs. Satisficing
Q&A
- Should Doc be in a devs skils?
- No, the important thing is to memorize important decisions, good code requires few docs
- Is estimation an important skill for developers? Yes
- Opinion on Pair Programming
- Format inspections are better way to find software.
Comments
- Anonymous
June 15, 2009
PingBack from http://workfromhomecareer.info/story.php?id=7617