View
234
Download
2
Embed Size (px)
Citation preview
The Mythical Man-Month
Essays on Software Engineering,
Frederick P. Brooks, Jr.
University of North Carolina at Chapel Hill
אודות הקשר האגדי בין אנשים וחודשים
)רמז: לא מה שחשבתם(
ההרצאה הוצגה בסמינר המחלקתי לפיתוח כלי תוכנה ע"י אוהד ברזילי , בית הספר למדעי המחשב, אוניברסיטת תל אביב
2007ינואר
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
2
Frederick P. Brooks, Jr. 1931נולד בהתחיל את דרכו כאיש תוכנה
1956-1963ארכיטקט חומרה IBM System/360 האבא שלIBM System/360Alphabetical Read-Out DeviceProgram Interruption Systemארכיטקטורה
1964-1965 מונה למנהל Operating System/360( MVS/370)כיום
1964-1984 ייסד את החוג למדעי המחשב באוניברסיטת צפון קרוליינה (Chapel Hillועמד בראשו )
כיום עוסק בהוראת תוכנה ובמחקרvirtual environments
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
3
The Mythical Man-Monthאוסף מאמרים נכתב כאוסף תובנות שנצברו בתקופת היותו מנהל
OS/360הפיתוח של מערכת ההפעלה וכן שיחות עם מנהלי פרויקטי תוכנה גדולים בתעשיה
ובאקדמיה 1975פורסם לראשונה ב -כוללת את 1995 שפורסמה ב 20מהדורת יובל ה
No Silver“המאמרים המקוריים, את המאמר Bullet" (, וכן דיון לגבי 1986 )שהתפרסם לראשונה ב
תקפות הטענות שהופיעו במאמרים המקוריים
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
4
The Tar Pit
Een schip op het strand is een baken in zee. [A ship on the beach is a lighthouse to the sea. ]
DUTCH PROVERB
'האגדה האורבנית על זוג מתכנתים וגראז 1000התפוקה בתעשייה היא של statements/year
למתכנתת בצוות?מה מקור הפער
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
5
החלום ושברו
Program
ProgrammingSystem
(interfaces,integration)
ProgrammingProduct
(Generalization, Testing, Documentation, Maintenance)
ProgrammingSystem Product
x3
x3
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
6
אושר מהול בצערשלמותחוסר שליטה/עצמאותתלות בביצועי עמיתיםנוקדנות תפוקה לינארית או
פחותהדבר הבא
חדוות היצירהעשיית דבר שימושימורכבות היא מרתקתלמידהיצירתיות מופשטת
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
7
The Mythical Man-Month
Good cooking takes time. If you are made to wait, it is to serve you better, and to please you.
MENU OF RESTAURANT ANTOINE, NEW ORLEANS
:סיבות להערכות זמנים לקויותאופטימיותמאמץ אינו התקדמותבטחון עצמיניטור לקויהוספת כ"א לפרויקט מאחר
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
8
The Mythical Man-Month
"... the man-month as a unit for measuring the size of a job is a dangerous and deceptive myth. It implies that men and months are interchangeable“
ניתן להמיר כח אדם בזמן רק בפעולות שאינן דורשותתקשורת בין האנשים )איסוף כותנה, קציר חיטה(
תכנות מערכות אינו כזה
Men
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
9
חלוקת המשימהטבעו של ניפוי השגיאות
– גם כאשר משימה ניתנת לחלוקהלתקשורת יש תקורה:
הכשרה( תאוםn(n-1)/2)
:וכאשר התאום מורכב
Men
Men
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
10
הערכות זמנים לפרויקט:כלל אצבע
1/3 planning 1/6 coding 1/4 component test and early system test 1/4 system test, all components in hand
:דוגמא חודשי אדם12משימה הוערכה ב חודשים4 מתכנתות ל-3למשימה הוקצו 4הוגדרו( אבני דרך A,B,C,Dבסופו של כל חודש )
נניח כי רק לאחר חודשיים הושלמה אבן הדרךהראשונה
מה ניתן לעשות? נציג כמה חלפות
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
11
'אפשרות א
להסתיים בזמןחייבתההנחה היא שהמשימה רק החלק הראשון הובן שלא כהלכה חודשי אדם ורק חודשיים 9נשארו למשימה
קלנדרים אנשים4.5לשם כך דרושים
:מסקנה הקיימות3 מתכנתות ל-2נוסיף
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
12
'אפשרות ב
להסתיים בזמןחייבתההנחה היא שהמשימה הערכות הזמנים היו נמוכות בצורה אחידה חודשי אדם ורק 18בעצם נשארו למשימה
חודשיים קלנדרים אנשים9לשם כך דרושים
:מסקנה הקיימות3 מתכנתות ל-6נוסיף
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
13
אפשרויות נוספות'אפשרות ג
Reschedule "Take no small slips"
'אפשרות דקיצוץ המשימה
על פניו נראה כאילו שתי האפשרויות האלה פחותטובות משתי האפשרויות הקודמות – האמנם?
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
14
'ההשלכות של אפשרות א המתכנתות המוכשרות הנוספות2גם אם נזניח את גיוס עדיין תידרש אחת המתכנתות הוותיקות להכשיר אותן חודשי אדם )מסך 3אפילו הכשרה של חודש קלנדרי אחד עולה
חודשי האדם הדרושים בתכנון החדש(-5 , יש לפצל עכשיו ל-3את המשימה שפוצלה במקור למאמץ שכבר הושקע בעבודה שהושלמה עשוי להתבזבז במהלךשלב בדיקות האינטגרציה ובדיקות המערכת מסתבך חודשי-אדם של עבודה ורק 7בחלוף החודש השלישי עדיין נותרו
חודש קלנדרי אחדהעיכוב המקורי נשאר – עלות הפרויקט עלתה
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
15
the plot thicken… (2 מתכנות? )ולא רק 4אז אולי פשוט היינו צריכים להוסיף נשים לב כי בכל מקרה של הוספת כח אדם עדיין אין עמידה
באבן הדרך הבאה – מה שעלול להוביל לחזרה רקורסיבית על האלגוריתם...
...כל זאת תחת ההנחה קרתה רק באבן הדרך הראשונה
Brooks’s Law:Adding manpower to a late software
project makes it later
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
16
The Surgical Team These studies revealed large individual differences between high and low performers, often by an order of magnitude.
SACKMAN, ERIKSON, AND GRANT
Productivity – 1:10 Program Speed and Space - 1:5 Salary – 1:2
איש, שמתוכם 200מקרה בוחן: בפרויקט של מנהלים25
צוות קטן ומיומן לא יכול להרים מערכתתוכנה אמיתית
בפרויקטOS/360 שנות אדם 5000 הושקעו שנים – כמה זמן יקח לצוות מיומן 4במשך כ-
מתכנתים להשלים את הפרויקט?10של
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
17
מבנה הצוות – המנתחchief programmerטייס המשנהמנהל אדמיניסטרטיבי)עורך )תיעוד2)מזכירים )למנהל האדמיניסטרטיבי ולעורך ( פקיד התוכניתlogging)toolsmithבודקמומחה לשפת התכנות
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
18
Aristocracy, Democracy, and System Design
This great church is an incomparable work of art. There is neither aridity nor confusion in the tenets it sets forth. . .
It is the zenith of a style, the work of artists who had understood and assimilated all their predecessors’ successes, in complete possession of the techniques of their times, but using them without indiscreet display nor gratuitous feats of skill.
It was Jean d ‘Orbais who undoubtedly conceived the general plan of the building, a plan which was respected, at least in its essential elements, by his successors. This is one of the reasons for the extreme coherence and unity of the edifice
Reims Cathedral Guidebook
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
19
(conceptual integrityשלמות רעיונית )שלמות רעיונית היא השיקול העיקרי בעיצוב מערכת
המטרה: קלות השימושתכן נמדד ביחס בין הפונקציונליות והסיבוך הרעיוני
ארכיטקטורת מערכת )הגדרה(: מפרט מלא של מנשק המשתמשעבור מחשב זהו ספר תכנותעבור מהדר זוהי הגדרת השפה עבור תוכנית הבקרה אלו הם הגדרות השפות שמשתמשות
בפונקציות השונות שלהעבור המערכת זהו מכלול המדריכים שבהם נעזר המשתמש
הארכיטקט הוא נציג המשתמשים
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
20
(conceptual integrityשלמות רעיונית ) השגת שלמות רעיונית דורשת ריכוז העיצוב בידי אדם אחד )או אנשים
ספורים( אין צורך להצטדקאין בכך פיחות מהיצירתיות בעבודת המימוש
"discipline is good for art" , "Form is liberating"
הפרדת המאמץ האדריכלי מהמאמץ המימושי היא דרך חזקה להשגתשלמות רעיונית
"It is a very humbling experience to make a multimillion-dollar mistake, but it is also very memorable…“
3:טענות נגד מפרט עשיר מדיהמעצבים לוקחים את כל הכיףמקבול העבודה
21
The Second-System Effect
Adde parvum parvo magnus acervus erit.
[Add little to little and there will be a big pile. ]
OVID
הערכת עלויות בתהליך העיצוב ע"ימו"מ עם המפתחים
"המימד רגשי בתהליך ה"הערכה
המערכת השניה היא הבעייתית ביותרלעיצוב:
בטחון עצמי לא ברור מה ניתן להכליל
מהמערכת הראשונה
יש לתמחר תכונותיש לשקול חונך מנוסה
Turning house for air traffic. Lithograph, Paris, 1882 From Le Vingtieme Siecle by A. Robida
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
22
Passing the Word ( מפרט כתובmanual) את הכתיבה עצמה עושה
אחד או שניים מציין גם את ההחלטות
הפתוחות תיעוד בשפה טבעית חשוב
לא פחות מתיעוד פורמלי )וצריך לקבוע היררכיה
בינהם( מימוש כהגדרה פורמלית
ולהיפך
He’ll sit here and he’ll say, “Do this! Do that!” And nothing will happen.
HARRY S. TRUMAN,
ON PRESIDENTIAL POWER
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
23
Passing the Word:ישיבות
( נציגי המממשים 10חצי יום פעם בשבוע: כל האדריכלים ,))חומרה+תוכנה(, נציג שיווק
-חודשים עד שנה 6בית דין לערעורים: שבועיים ברצף פעם ב )לפני הקפאת גרסה(
)פרסום לוג של תקשורת עם האדריכל )טלפון =< דוא"ל
בדיקה שוטפת של תאימות לתקן ע"י גוף תקינה עצמאיהוא חברו הטוב ביותר של מנהל הפרויקט
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
24
בבל:אינן סיבות לכשלון
A clear mission? Manpower? Materials? Enough time? Adequate
technology?
חוסר תקשורת )שהובילל( חוסר ארגון
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
25
תקשורת
פגישות רשמיות ולא רשמיות:ספר עבודה
התיעוד הקשור לפרוייקטכל >= ספר =< מיקרופילם( נגיש לכולםWWW) ארגון המסמך בצורה שתבליט שינוייםשקיפות מלאה
פרנס מתנגד לגישת השקיפות
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
26
"פרנס צדק, אני טעיתי" (, 1995 שנה )20בראייה שלBrooks מודה שאין טעם
ב"צינורות מקובלים" כאשר יש בנמצא "דרכים עוקפות"
צעדים לגיבוש תכנות מוכוון עצמים )הסתרת מידע )פרנסADTהורשה
מוצרי תוכנהעצמים אינן רק תוכניות אלא
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
27
ארגון
גרף התקשורת מושרה על העץ הארגוני "בראש הארגון שני בעלי תפקידים: "מפיק
ו"במאי":המפיק
ישיבות, חלוקת עבודה, לוחות זמנים, הקצאת משאבים:)הבימאי )ארכיטקט
הגה את העיצוב )החיצוני( ומרכיביו, ומפקח עליו“inside-man at the skunk works ”
3יחסים אפשריים בין הבמאי והמפיק
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
28
Calling the ShotPractice is the best of all instructors.
PUBLIUS
Experience is a dear teacher, but fools will learn at no other.
POOR RICHARD’S ALMANAC
?איך מודדים התקדמות?איך מודדים תפוקה
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
29
"דברי במספרים גברת..." לא ניתן להעריך לוחות זמנים ע"י הכפלת הזמן הדרוש לקידוד בחלקו היחסי של
הקידוד מתהליך הפיתוח
(1.05 ל- 1.5)בין התוכנית לגודל מעריכי גדל ביחס תכנות
מהזמן של מתכנתים מוקדש לתכנות )וניפוי שגיאות(50%רק
אלפי שורות קוד למתכנת לשנה 10 עד 1.5ממדי תפוקה של מתכנתים מדווחים על (KLOC)
מדדים שלBell Labs ופרויקט OS/360 מציירים תמונה שונה במקצת: במערכות 2-3 ובמהדרים 0.6הפעלה
בפרויקטMULTICS של MIT 1.2 דווחו על( KLOC '( בכתיבת קוד מעורב )מעPL/1מהדרים( אבל שורות הקוד ב הפעלה +
5שפה עילית משפרת את התפוקה פי
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
30
Plan to Throw One Away There is nothing in this
world constant but inconstancy.
SWIFT
It is common sense to take a method and try it. If it fails, admit it frankly and try another. But above all, try something
FRANKLIN D. ROOSEVELT
Collapse of the aerodynamically misdesigned Tacoma Narrows Bridge
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
31
Plan to Throw One Away)רעיון הפיילוט )גרסת בטאבכל מקרה נזרוק את המערכת הראשונה המוצר שאנו מספקים הוא שביעות רצון הלקוחות יותר"
מכל מוצר מוחשי אחר"העיצוב המקורי צריך לקחת בחשבון שינויים עתידייםמספור גרסאות
העיצוב המקורי צריך לקחת בחשבון שינויים עתידייםבמבנה הארגוני
סולם דרגות מקביל – טכני וניהולי
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
32
Plan to Throw One Awayבמבט לאחור
הטענה מניחה פיתוח במודל המפל השגוי
( מאידך - פיתוח מודולרי הדרגתיincremental יוצר בשלב מוקדם )מערכת )מנוונת( עובדת
השפעה מורלית על סטודנטים שרואים משהו עובדסוגיית התשר
עץ המשפחה של פרנס – בהקשר של שינוי עתידי
Microsoft’s “Build Every Night” Approach The build cycle becomes the heartbeat of the project אבחנה בין אבן הדרך הראשונה ובין אבטיפוס מהיר
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
33
תחזוקה -מהזמן40%מתכנת עסוק בתכנות פחות מ
50%-20%תיקון באג מכניס באג חדש בהסתברות של ומכאן הנחיצות בבדיקות מערכת מקיפות ואוטומטיות
:אנטרופיה בין מספר קשר לינאריבפיתוח מערכות הפעלה נמצא
וקשר אקספוננציאליהגרסה ומספר המודולים במערכת למספר המודולים הדורשים שינוי
34
Ten Pounds in a Five-Pound Sack
גודל התוכניתכמרכיב בעלות שלה
טכניקות לשמירהנתונים יעילה
ייצוג נתונים קומפקטי מחירי וגדלי הזכרונות
המודרנים מייתרים את מרבית הדיון
The author should gaze at Noah, and . . . learn, as they did in the Ark, to crowd a great deal of matter into a very small compass.
SYDNEY SMITH. EDINBURGH REVIEW
35
The Documentary Hypothesis
The hypothesis: Amid a wash of paper, a small number of documents become the critical pivots around which every project’s management revolves. These are the manager’s chief personal tools.
W. Bengough, “Scene in the old Congressional Library”
1897, The Bettman Archive
36
ידידיו הטובים של המנהל מהפעולות שעושה מנהל דורשות מידע חיצוני20%פחות מ
:המנהל צריך להיצמד למסמכים הבאים What: objectives What: product specifications When: schedule How much: budget Where: space allocation Who: organization chart
המסמכים מזקקים את משימות המנהל
37
Sharp Tools
A good workman is known by his tools.
PROVERB
,תוכניות פיגום: סימולטורים, כלי עזר לפיתוחהשתמשו בשפות עיליות
38
Hatching a Catastrophe
None love the bearer of bad news
SOPHOCLES
הגדרת לוחות זמנים הגדרה מדויקת של אבני דרך( הגדרת נתיב קריטי וגרף תלויותPERT)
39
The Other Face
A reconstruction of Stonehenge, the world’s largest undocumented computer. The Bettman Archive
What we do not understand we do not possess.
GOETHE
O give me commentators plain, Who with no deep researches vex the brain.
CRABBE
40
מסמכולוגיהתוכניות מחשב מיועדות להיקרא ע"י אנשים בדרך כלל תיעוד לוקה בOverviewשלו :למשתמשים
Purpose. Environment. Domain and range Functions realized and algorithms
used. Input-output formats Operating instructions Options Running time Accuracy and checking.
:למתחזקים A flow chart or subprogram
structure graph. Complete descriptions of the
algorithms used, An explanation of the layout
of all files used. An overview of the pass
structure A discussion of
modifications contemplated in the original design,
the nature and location of hooks and exits,
the ideas of the original author about what modifications might be desirable and how one might proceed.
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
41
שנה20אחרי
I know no way of judging the future but by the past.
PATRICK HENRY
You can never plan the future by the past.
EDMUND BURKE
רלוונטיות?תעשיית התוכנה לא התקדמההכל אנשים
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
42
הכל אנשים
"Most academic research on software engineering has concentrated on tools. I admire and covet sharp tools. Nevertheless, it is encouraging to see ongoing research efforts on the care, growing, and feeding of people, and on the dynamics of software management. "
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
43
?מה עדיין תקףהארכיטקט
המפיק והבמאיהנחיית צוותי סטודנטים
המערכת השנייהיותר קשה לייצר מוצר מדף כללי מכלי יעודינחשת: רישום של תכונות ושכיחותן אם נתכנן לזרוק את הראשונה לא נתקע תמיד עם
השניה?
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
44
WIMPתפריטים ושימוש ביד אחת אינם חלק מהמטפורה?שני עכברים?עכבר ומקלדת?עצמים מול פעלים קלות שימושקיצורי דרך?מי קהל היעדLook & Feel using standard API :תחזיתWIMPיעלם בתוך דור
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
45
Boehmהמחקר של Barry Boehm/Software Eng. Economics
פרוייקטים 63חקר
אופטימלית לפרויקט עלות t = 2.5 (MM)1/3
מהאופטימום העלות גדולכאשר הזמן המוקצב לפרויקט עולה )במתינות(
מהאופטימום העלות קטןכאשר הזמן המוקצב לפרויקט עולה )בחדות(
רק מעטים הפרויקטים שהושלמו כאשר הזמן שהוקצה להםהיה נמוך מ ¾ הזמן האופטימלי
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
46
Brooksתקפות החוק של Software Project Dynamics: An Integrated Approach (1991)/
Abdel-Hamid and Madnick
“Adding more people to a late project always makes it more costly, but it does not always cause it to be completed later
:הערה על האופי של אנשים חדשים המגויסים לצוותnew people added late in a development project must be team
players willing to pitch in and work within the process, and not attempt to alter or im prove the process itself! (Stutzke)
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
47
PeoplewarePeopleware: Productive Projects and Teams (1987) /
DeMarco and Lister
"The manager’s function is not to make people work, it is to make it possible for people to work“
The top performers’ space is quieter, more private, better protected against interruption, and there is more of it. . . . Does it really matter to you . . . whether quiet, space, and privacy help your current people to do better work or [alternatively] help you to attract and keep better people?
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
48
כמה ציטוטים
"System debugging, like astronomy, has always been done chiefly at night. "
"System debugging (in contrast to component debugging) will take longer than one expects"
"How does a project get to be a year late? . . . One day at a time."
המחלקה לתוכנה, בית הספר למדעי המחשב אוניברסיטת תל אביב, ינואר
2007
49
אפילוג ?מה להנדסה ולזה
?)האם התחום אינו בשל דיו )ברוקסכמו תחום ההנדסה הכימית לפני מלחמת העולם השניה
)או שמא זוהי אינה הנדסה? )פרנס אין קווי דמיון להנדסת חשמל
מערכות תוכנה הן הדבר המורכב ביותר שמייצרתהאנושות
( ביצת הלבהtar pit של הנדסת התוכנה תמשיך )בדבקותה עוד זמן רב
...ובנימה אופטימית זו