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