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