Title: Developing Developers
1Developing Developers
2Context
- Your company has been repeated criticized by
customers for producing poor products.
3- For instance, the most recent product, resulting
from 45-million lines of code, was released on
the same day as 18 megabytes of patches - bug
fixes and enhancements.
4- The fixes were presented as two patches. One of
the patches did not work.
5Response
- The CEO called on employees to make reliable and
secure computing their priority, and demanded a
reduction in the defects in the products they
produce.
6- As part of corporate strategy, all code writing
was halted for two months so developers could
undergo training on reliability and security. The
training was provided by the company and prepared
by their Programmer Productivity Center.
7PPRC Goal
The goal of the Programmer Productivity Research
Center (PPRC) at Microsoft Research is to
investigate radical approaches to help Microsoft
deliver high-performing and reliable software.
8Perspective
Modern software programs are massive, complex
structures. As a result, software
development is increasingly
labor-intensive. We believe the answer lies in
good tools and processes. Good tools enable
process changes and allow a large number of
developers and testers to effectively work
together.
9Critique
- How would your evaluate the CEOs approach to
this situation? - Do you feel the PPRC provides a reasoned
perspective on the issues?
10Taylorism Revisited
- Objectification of Work
- Standardization of tools
- Standardization of work methods
- External authority specifies procedures
11Productivity
- Tool Focus
- A fool with a tool is still a fool!
12Basis
New hires do not know how to communicate
effectively, they have insufficient experience
and preparation for working as part of a team,
they lack the ability to manage their individual
work efficiently and productively, and they do
not understand or appreciate organizational
structures or business practices. Hilburn, 1997
13Kinds of Knowledge (1)
- declarative knowledge (knowledge that)
- refers to the kind of knowledge typically learned
from textbooks--facts and concepts
14Kinds of Knowledge (2)
- procedural knowledge (how to knowledge)
- refers to being able to do something, be it
writing code, proceeding through analysis and
design
15Manifestations of Expertise
- experts appear to have much more abstract
representations - experts are able to apply what they know to a
broader range of problems - experts evidently have a script that guides the
conduct of their work - experts have better developed metacognitive
processes
16Kinds of Knowledge (3)
- metacognitive knowledge
- refers to a persons skill at planning strategy,
monitoring process and progress, changing what
one is doing when appropriate, and reflecting on
the process so that one can discover ways to
improve.
17Metacognition
- People with good metacognitive skills are better
at problem solving. - People with good metacognitive skills perform
better on ill-structured tasks. - People with good metacognitive skills perform
better in far-transfer tasks.
18The Road to Expertise
- it takes a long time
- it takes intense, focused effort
- it can not be taught directly
19Caveat!
- Practice alone is sufficient to develop a
certain level of competence, but, for most
people, will result in an asymptotic level below
that of true excellence.
20Single Loop Learning
From Peter Senge, et. al (2000) Schools that
Learn.
21Double Loop Learning
From Peter Senge, et. al (2000) Schools that
Learn.
22Approach Knowledge Distillation
- Sterilized view
- Focus on technical details
- Primacy of knowing-that
- Use of knowledge-telling strategies
23Approach Identify and Nurture
- Early talent does not predict later success.
- Ability measures not predictive of job
performance. - Measures of initial ability predict entry level
performance, but do not predict long-term job
success.
24Approach Practice, Practice, Practice
- Focus tends to be on products
- Unsure what is really learned
- Experience only a weak predictor
- Deliberate practice
25Approach Situated Cognition
- Project Orientation
- Groups
- Technical and Non-Technical Issues
- Occurs late in curriculum
26Constructivist
- Knowledge is an individual(social) construction.
The learner interprets and constructs a reality
based on his experiences and interactions with
his environment. - Learning is an ACTIVE, not passive, process.
27Mental Models
- Clearly the constructivists posit the existence
of cognitive structures within the individual.
These mental models provide the individual with
guidance in terms of dealing with tasks and
situations.
28Transfer
- Near
- Far
- Type of task?
- Error Recovery
- Problem Solving
29Cognitive Apprenticeship
30Things to Learn
31Conclusion
- Nature of the system
- Nature of the environment
- Nature of the learner