ארכיון יומי: 16 יוני, 2008

אין ספק לא עושה

specification או הגדרה איך לעשות דברים היא דבר מאוד חשוב.

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

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

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

אחרי שיש לי תמונה ברורה, אני מעביר אותה לכתב עם כמה שיותר מילים שמתארים את הדרישה. אם צריך אז שמים דוגמאות, ואם צריך אז שמים תרשימים, הכל בשביל שכל מי שיקרא את הצרכים יוכל ליצור עם זה משהו.

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

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

קצת חומר למחשבה…