הערכת זמנים לאתר דרופל

אמיר סימן טוב | ביום ד', 12/14/2011 - 22:36

חקרתי את נושא הערכת הזמנים לפרויקט דרופל - הן מתן הערכה מוקדמת למסמך דרישות והן שערוך מחדש לאחר אפיון מפורט. להלן הממצאים שלי.

פורסם לראשונה ב[בלוג דרופל שלי](http://practicall.co.il/1/node/565).

הערכת זמן פרויקט
[מקור: דילברט](http://search.dilbert.com/comic/I%20Need%20A%20Cost%20Estimate%20On%20Y…)

רשימת המקורות העיקריים בהם נעזרתי מופיעה מטה.

##הקדמה

הרצוי: אפיון מפורט שיאפשר לנו לתת הערכה ברמת ודאות גבוהה יחסית.
המצוי: לקוח שמעוניין בהצעת מחיר ואין לו אפיון כזה.
הבעיה: גישור בין הרצוי למצוי.
פתרון: מתן הערכת זמנים מקדימה לפני קבלת הפרויקט ותיקונהּ עם קבלתו.

##הערכת זמנים מקדימה

הערכה זו הנה לבטח גסה ואחריותו של ספק השירות להבהיר זאת ללקוח. היא ניתנת ללקוח כחלק מהצעת העבודה ולכן אינה זוכה לשכר. לקוחות רציניים יעריכו זאת ויתנו לכם אפשרות לעבוד על אפיון רציני - בשכר. אם מדובר באתר של אלפי שקלים בודדים, סביר להשקיע בהערכה כזו שעה עד שעתיים. אם מדובר באתר גדול יותר, יגדל הזמן המושקע בבניית ההערכה בהתאם לגודל הפרויקט.

####שלבי בניית הערכה מקדימה

1. ניתוח והבנה של הדרישות
1. זריקת ניחוש מושכל
1. תרגום הדרישות לתכונות המערכת
1. הערכת זמן של כל דרישה
1. הוספת באפרים לזמן הכולל
1. השוואת הזמן הכולל לניחוש המושכל

הערה: במקרה שהדרישה אינה חד-משמעית, יש לרשום את ההנחה עליה מסתמכים; במקרה שהדרישה אינה מובנת כלל, יש לשאול את הלקוח למה התכוון; במקרה שגם הלקוח לא בטוח לגבי הדרישה (אבל בהחלט "יש לו משהו בראש" שצריך בדיקה) ניתן להציע ללקוח מחקר של מספר שעות עליו יצטרך לשלם.

עבור דרישות שלא יישֹמנו בעבר, יש צורך לעשות מחקר אילו רכיבים כבר קיימים ולבדוק אפשרות להשתמש בהם. כמובן, ידע דרופליסטי קודם ונרחב של חברי הצוות המספקים את ההערכה יקטין זמן מחקר זה.

##הערכת זמנים משוערכת

עם קבלת הפרויקט יש לבנות אפיון מסודר ולשערך את הזמנים.

####חלקי האפיון

על מנת להעריך את זמן הבנייה הנדרש לאתר דרופל ברמה גבוהה יחסית של דיוק יש צורך בנתוני הדרישות הבאים:

תחום|הסבר בשפת דרופל|הסבר בשפת הלקוח
----|---------------|----------------
1. **מבנה**|סוגי התוכן על שדותיהם והקשרים ביניהם|סוגי עמודים והקשר ביניהם
2. **איגוד**|היבטים, nodedueues וכדומה|רשימות קישורים לעמודים
3. **התנהגות**|למשל, rules, ענייני workflow|דברים שצריכים לקרות במצב נתונים מסוים
4. **קידוד**|הוקים, תבנות בקוד, פיתוח רכיבים|פיתוח ייעודי לאתר המסוים
5. **פריסה**|מסכים שלדיים - Wireframes|שרטוט עמודי האתר
6. **עיצוב**|הגדרות ערכיות מאת מעצב גרפי|שרטוטים של המעצב הגרפי

הערה בקשר לתחום העיצוב: יש המעדיפים לקבל את התמונות והמידות הנדרשות ולבנות את הדף על תבנית עיצוב בסיסית ויש כאלו המעדיפים לקבל חיתוכים מוכנים (HTML + CSS) ולשבץ בתוכם את השדות השונים.

לכל פרויקט יש לזכור לתת להערכה גם:

1. זמן לניהול הפרויקט ולתקשורת עם הלקוח
1. בדיקות בקרת איכות
1. העלאה לאוויר

לחלק מהפרויקטים יש לזכור לתת הערכה גם לעניינים נוספים:

1. הגירה של נתונים
1. הפקת תיעוד למשתמש
1. אינטגרציה עם מערכות צד שלישי
1. עבודה מול ספקי שירות חיצוניים

כמו כן, עבור פרויקטים מסוימים יש לתת את הדעת לנושאים עבורם יש לעבוד בנפרד, כגון: מהירות נדרשת, יציבות ואבטחה.

####דרגות ניסיון

יש לכפול את הערכת הזמן לתכונה מסוימת בפקטורים להלן.

דרגה|משמעות|פקטור אופטימי|פקטור פסימי
----|------|-------------|----------
5. |מימשת בדיוק תכונה כזו בפרויקט אחר|0.8|1.25
4. |מישהו אחר מבין הקולגות שבסביבתך מימש תכונה זו|0.67|1.5
3. |מצאת מידע אודות מימוש תכונה זו|0.5|2.0
2. |יש לך רעיון כללי לגבי הדרך לממש תכונה זו|0.25|4.0
1. |אין לך מושג איך לממש את התכונה|לא ניתן לתת הערכה|לא ניתן לתת הערכה

##מקורות וקישורים

- הערכת זמנים מוקדמת - ג''יקוב פרסון; [פוסט](http://nodeone.se/blogg/resources-for-my-session-on-early-estimating), [וידאו](http://www.archive.org/details/getting_early_estimates_right) (ניתן להורדה) וראו בפוסט קישורים נוספים.
- [שאלות ותשובות בנושא הערכת זמנים בדרופל](http://www.bluesparklabs.com/blog/drupalcon-london-drupal-estimation-te…)
- הספר Planning & Managing Drupal Project של Dani Nordin - [קראו את הביקורת שלי](/1/node/566).
- [גיליון עם נתונים](https://docs.google.com/spreadsheet/ccc?key=0AkSgt1Y3Gz0odEc3VkVmRXp1eE…), [גיליון למילוי](https://docs.google.com/spreadsheet/ccc?key=0AkSgt1Y3Gz0odDJxTXpSZXJZcT…)
- [תבנית פשוטה מאת Lullubot](http://www.lullabot.com/articles/art-estimation#comment-8722) במסגרת כתבה בנושא.
- [תבנית מורכבת מאת CivicActions](http://civicactions.com/estimating-worksheet)

##שקופיות חשובות

כולן מתוך [מצגת ההרצאה של ג'ייקוב פרסון](http://nodeone.se/sites/nodeone.se/files/attachments/early-estimates-dr…).

####רמת אי הוודאות קטֵנה בזכות עיצוב גרפי

####רמת אי הוודאות קטֵנה עם העלייה בידע

####פתגם שתשלחו לבוס שדורש הערכת זמנים מדויקת בלי שנתן לכם אפיון ברור*

*קחו בחשבון שאולי הוא ישלח לכם בחזרה מכתב פיטורין; במקרה כזה זכרו שככל שבועטים כדור חזק יותר, קח הוא מתרומם גבוה יותר.