מבוא לתקן ISO 90003 בעולם פיתוח התוכנה
עולם פיתוח התוכנה מאופיין בדינמיות חסרת תקדים, בדרישות משתנות בתדירות גבוהה ובמורכבות טכנולוגית הולכת וגוברת. בסביבה כזו תהליכי עבודה לא מוסדרים עלולים להוביל לעיכובים בפיתוח, לחריגות תקציב חמורות ובמקרים קיצוניים אף לכישלון מוחלט של הפרויקט. כאן בדיוק נכנס לתמונה תקן ISO 90003 אשר פותח על ידי ארגון התקינה הבינלאומי (ISO) בשיתוף עם גופי תקינה טכנולוגיים נוספים.
תקן זה אינו עומד בפני עצמו אלא משמש כמדריך יישומי המסביר כיצד ארגוני תוכנה צריכים להטמיע את הדרישות של ISO 9001 המוכר והנפוץ. בעוד שהתקן הכללי מדבר במונחים של תעשייה, ייצור ושירות, המדריך הספציפי לתוכנה מתרגם את הדרישות הללו למונחים של קידוד, סקרי קוד, ניהול גרסאות, בדיקות אוטומטיות ושחרור מהדורות.
המטרה המרכזית של יישום ההנחיות היא לספק ביטחון ללקוחות, למשקיעים ולבעלי העניין כי חברת התוכנה פועלת על פי מתודולוגיה סדורה, מבצעת בקרת איכות קפדנית, ומסוגלת לספק מוצר תוכנה אמין שעונה על כל דרישות האפיון.
ההבדל המרכזי בין ISO 90003 לבין ISO 9001
אחת השאלות הנפוצות ביותר שאנו נשאלים על ידי מנהלי פיתוח היא מה ההבדל בין שני התקנים הללו והאם יש צורך בשניהם. חשוב להבין כי ההסמכה הפורמלית שחברה מקבלת היא תמיד לתקן הכללי לניהול איכות, ואילו המסמך הנוסף הוא כלי עזר מקצועי שנועד למקד את החברה בדרישות הרלוונטיות לעולמה.
כדי לעשות סדר בדברים ריכזנו עבורכם את ההבדלים המהותיים בטבלה הבאה
| פרמטר השוואה | התקן הכללי (ISO 9001) | מדריך לתוכנה (ISO 90003) |
|---|---|---|
| קהל יעד | כלל התעשיות והארגונים בעולם | ארגונים המפתחים, מספקים ומתחזקים תוכנה |
| מונחים מקצועיים | ייצור, שירותים, חומרי גלם, שרשרת אספקה | קידוד, בדיקות תוכנה, ניהול תצורה, מחזור חיי פיתוח |
| אופי המסמך | דרישות מחייבות להסמכה (Shall) | הנחיות, פירושים וכללי אצבע ליישום (Should) |
| מיקוד באיכות | שביעות רצון לקוח ושיפור מתמיד | אמינות הקוד, מניעת באגים, ניהול גרסאות ומעקב תקלות |
כפי שניתן לראות, ההנחיות הייעודיות לתוכנה לוקחות את העקרונות המופשטים והופכות אותם לפרקטיקה יומיומית עבור מנהלי פרויקטים, ראשי צוותים ומתכנתים, תוך שילוב מתודולוגיות המוכרות היטב לכל מי שעוסק בעולמות ההייטק.
דרישות ייחודיות לתעשיית התוכנה על פי התקן
התקן מפרט שורה ארוכה של דרישות וכללים הנוגעים לכל שלב במחזור החיים של התוכנה. ההנחיות מתחילות כבר בשלב איסוף הדרישות מהלקוח, עוברות דרך ארכיטקטורת המערכת, תהליכי הפיתוח עצמם, שלבי הבדיקות, ומסתיימות בתחזוקה השוטפת ובתמיכה הטכנית.

ההנחיה מדגישה כי איכות אינה דבר שניתן להוסיף למוצר בסוף התהליך באמצעות בדיקות בלבד, אלא היא חייבת להיות מוטמעת מראשית הפיתוח. זה כולל הגדרת מדדי איכות ברורים (Quality Metrics) כמו ציפוי קוד (Code Coverage), כמות תקלות לשורת קוד, וזמן תגובה לתיקון באגים קריטיים.
ניהול תצורה ומעקב אחר גרסאות
אחד האתגרים הגדולים ביותר בחברות תוכנה הוא ניהול נכון של גרסאות הקוד (Configuration Management). התקן דורש ליישם מערכת מסודרת שמאפשרת לדעת בכל רגע נתון איזו גרסה של התוכנה נמצאת אצל כל לקוח, אילו שינויים הוכנסו בכל גרסה, ומי המפתח שביצע את השינוי. דרישה זו קריטית במיוחד כאשר מתגלה תקלת אבטחה או באג חמור, ויש צורך לשחזר גרסאות קודמות או להוציא עדכון מהיר.
אבטחת מידע כחלק בלתי נפרד מאיכות התוכנה
בשנים האחרונות איכות תוכנה ואבטחת מידע הפכו לשני צדדים של אותו המטבע. תוכנה איכותית חייבת להיות גם תוכנה מאובטחת. לכן, התקן ממליץ לשלב תהליכי סקרי אבטחה בתוך מחזור הפיתוח, דבר המתחבר באופן ישיר וטבעי לארגונים אשר מיישמים גם את iso 27001 להגנה על נכסי המידע של הארגון ולקוחותיו.
שילוב התקן עם מתודולוגיות Agile ופיתוח DevOps
קיימת תפיסה שגויה בתעשייה לפיה תקני איכות בינלאומיים מתאימים רק למתודולוגיות פיתוח מסורתיות וישנות כגון מודל מפל המים (Waterfall). מנהלים רבים חוששים שהטמעת תקן תייצר ביורוקרטיה שתאט את קצב הפיתוח ותפגע בגמישות הארגונית.
בפועל, המהדורה העדכנית של התקן, כפי שמפורסמת על ידי האתר הרשמי של ארגון התקינה הבינלאומי (ISO), בנויה כך שהיא תומכת באופן מלא במתודולוגיות מודרניות. התקן אינו מכתיב כיצד לפתח תוכנה, אלא דורש שיהיה תהליך מוגדר, מבוקר ונמדד, ללא קשר לשיטה הנבחרת.
- התאמה ל-Agile: בסביבות פיתוח זריזות (Agile), הדרישות לתכנון ניתנות ליישום באמצעות תכנון ספרינטים, ישיבות סטטוס יומיות ומפגשי רטרוספקטיבה בסוף כל מחזור פיתוח קצר.
- שילוב עם DevOps ו-CI/CD: התקן מעודד אוטומציה של תהליכים. מערכות אינטגרציה רציפה (Continuous Integration) ובדיקות אוטומטיות מהוות מענה מצוין לדרישות התקן בכל הנוגע לאימות, אימות חוזר ובקרת תהליך השחרור.
- תיעוד חכם: במקום לכתוב מסמכים ארוכים שאף אחד אינו קורא, ניתן להשתמש בכלים ניהוליים מתקדמים כמו Jira או Monday. התיעוד הנדרש יכול להופיע כחלק מהגדרות המשימה בתוך המערכת, מה שחוסך זמן רב ושומר על סדר.
מחקרים רבים והמידע המופיע בערכים מקצועיים כגון מתודולוגיית Agile מאשרים כי שילוב נכון של בקרת איכות בתוך תהליכים זריזים מוריד את כמות החוב הטכני (Technical Debt) ומשפר את יציבות המוצר לאורך זמן.
תהליך ההסמכה הלכה למעשה
ארגונים המחליטים לאמץ את עקרונות האיכות לתחום התוכנה עוברים תהליך מובנה ומקצועי. התהליך מורכב ממספר שלבים מרכזיים שמטרתם להבטיח התאמה מלאה של הארגון לדרישות הבינלאומיות.

שלב ראשון מיפוי ומבדק פערים
בתחילת התהליך מתבצע ניתוח מעמיק של תהליכי הפיתוח הקיימים בחברה אל מול דרישות התקן. בשלב זה מזהים את נקודות החולשה, בוחנים כיצד מנוהלים דרישות הלקוח, איך מתבצעות הבדיקות (QA), וכיצד מנוהל הקוד במאגרי המידע. התוצר של שלב זה הוא תוכנית עבודה מפורטת להשלמת הפערים.
שלב שני פיתוח והטמעת תהליכים
זהו השלב המעשי שבו צוות המומחים שלנו מסייע לארגון לבנות את הנהלים החסרים או לשפר את הקיימים. הדגש כאן הוא על יצירת תהליכים פשוטים, יעילים וכאלה שמותאמים לתרבות הארגונית הייחודית של חברת התוכנה. בשלב זה מוטמעים מדדי איכות, מתבצעות הדרכות לצוותי הפיתוח, ומוגדרים כלי האוטומציה שיתמכו בתהליך.
שלב שלישי מבדק פנימי וחיצוני
לאחר שהמערכת פועלת כסדרה במשך תקופה מסוימת, מתבצע מבדק פנימי על מנת לוודא מוכנות מלאה. לאחר תיקון ליקויים במידה ונמצאו כאלה, הארגון ניגש למבדק הסמכה חיצוני על ידי גוף התעדה מוסמך. חשוב לזכור שהתעודה הסופית שתתקבל היא תעודת התקן הכללי לניהול איכות, כאשר היקף ההסמכה (Scope) יציין במפורש כי מדובר בפיתוח תוכנה.
מי צריך את התקן ומדוע הוא כה חיוני
ההנחיות לניהול איכות בתוכנה רלוונטיות למגוון רחב של ארגונים הפועלים בזירה הטכנולוגית. זה כולל בתי תוכנה המספקים שירותי פיתוח במיקור חוץ, חברות סטארטאפ המפתחות מוצרי תוכנה כשירות (SaaS), יצרני מערכות משובצות מחשב (Embedded Systems), וארגונים המפתחים תוכנה פנימית לשימוש עצמי במגזר הפיננסי או הציבורי.
יתרה מכך, כאשר מדובר בפיתוח תוכנה לתחומים קריטיים, יישום מתודולוגיות מסודרות הופך לתנאי סף לקיום עסקים. למשל, חברות המפתחות תוכנה רפואית נדרשות לעמוד בדרישות מחמירות ביותר, ולעיתים קרובות נשענות על עקרונות אלו בדרך להשגת תקן iso 13485 הייעודי למכשור רפואי.

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