TODO: - show offline markdown editing? - edit new repository summary

פרויקט 2 – אתחול פרויקט - Software Project Inception

מבוא מטרת המשימה

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

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

הנחיות עבודה והגשה

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

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

דרישות

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

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

הגשה באמצעות הטופס

עד לחצות לפני ההרצאה הבאה יש להגיש את הפרטים הבאים:

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

שתי קבוצות (מח״ר קבוצה אחת) יכולות להירשם לסקר כיתתי על תוצרי הגשה זו.

רשות אבל מומלץ: פתיחת כרטיסיה עבור הבודק לבדיקת ההגשה (כך תתבצע ההגשה במשימות הפרויקט הבאות).

ציון

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

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

פתיחת אתר פרויקט

  1. אחד מחברי הצוות פותח מאגר חדש לפרויקט או משכפל (fork) את מאגר התבנית ב-github. (התבנית מכילה קובץ תיעוד ראשי בשם README, קובץ הגדרות לשפת הפיתוח המתוכננת, רישיון תוכנה בקוד פתוח ומספר עמודי ויקי ראשוניים).
    הערה: השכפול אינו מעתיק את דפי הויקי המנוהלים כמאגר נפרד. אפשר להעתיק את תכנם או לשכפל מאגר זה בנפרד.

  2. נכנסים להגדרות המאגר החדש (תפריט settings). משנים את שמו לשם הפרויקט החדש. מסמנים גם שמעוניינים במערכת משימות issues, בכרטיסיה Collaborators כלל חברי הצוות מקבלים הרשאות. כמו כן להוסיף את צוות הקורס (שמות משתמש: ItamarShDeve/hadarp, robi-y - למאגר פרטי מספיק הרשאות pull).

  1. README – בעמוד הראשי של המאגר ישנה בד״כ רשימת קבצי מקור (כרגע ריקה) וביניהם קובץ ה-README. מקובל שקובץ זה מהווה את הדף הראשי לתיעוד ומכיל את עיקר המידע על הפרויקט עם הפניות למידע נוסף. לעריכה שלו יש להיכנס אליו מהקישור לשם הקובץ ואז לעבור למצב עריכה (אייקון בצורת עיפרון Edit). בדף זה ימוקמו הקישורים הנדרשים מהדף הראשי.
  2. ויקי - מתחילים לבנות את אתר ניהול/תיעוד הפרויקט בויקי לפי הפירוט שיופיע בסעיפים הבאים. לכניסה בוחרים בתפריט המאגר: wiki ובוחרים עמוד שברצונכם לערוך. בנוסף הכפתור הירוק New Page מאפשר ליצור עמודים נוספים כנדרש לשלב האתחול (Inception) כדלהלן. בויקי בד”כ כותבים בשפה המשלבת תוכן ועיצוב, במקרה שלנו משתמשים בווריאציה של שפת Markdown בשם GFM (ראו תיעוד). לשמירה: מומלץ לבדוק את עמוד ה- preview ובתחתית העמוד הערה לגבי השינוי שבוצע ולחיצה על כפתור השמירה.
  3. מוסיפים קישור לאתר החדש שלכם מרשימת הפרויקטים באתר הקורס (לאחר קבלת הרשאות מצוות הקורס במשימה אישית 0).

להלן הגדרה מפורטת של התכנים שיש להכניס

עמוד ראשי Readme

העמוד הראשי עבור הפרויקט מכיל את המידע העיקרי על הפרויקט. כאן מרוכז בעיקר מידע הקשור לפיתוח המוצר. כאמור מומלץ שמידע זה יופיע בקובץ ה- README.

  1. שם הפרויקט (ראו על בחירת שם מתאים כאן או כאן).
  2. תקציר\חזון הפרויקט – משפט מחץ או מספר משפטים על הסיבה שלמעשה הפרויקט מפותח (משפט מעלית - ראו למשל שקף 4 במקור 3)
  3. לוגו לפרויקט - העלאת קובץ וקישור אליו (הערה: העלאת קובץ למאגר עצמו מצריכה בעיקרון שימוש ב-git כפי שנלמד בהמשך, אפשר בינתיים לקשר לקובץ באחסון חיצוני, או להוסיף קובץ למאגר באמצעות ממשק הווב ולקשר אליו (ועוד אפשרות).
  4. קישור להפצה נוכחית של המוצר (אפשר בשלב זה לאחד מעמודי הדוגמא שהעליתם במסגרת משימת ההיכרות עם סביבת הפיתוח או האב-טיפוס). מומלץ שעמוד ההפצה יכיל כבר תוכן שיווקי לגבי המוצר כך שתוכלו למשוך לקוחות פוטנציאליים.
  5. קישור לצ’אט (IM) של הפרויקט (במקום התגית שבתבנית, כברירת מחדל: חדר ב-gitter עם פרטי המאגר החדש (אם הולכים לכתובת <gitter.im/<user>/<repo (בהחלפת הפרטים של המאגר שלכם) נוצר לכם חדר אוטמטית והם גם שולחים PR שמוסיף תגית מתאימה ל- Readme),
    יש להוסיף לחדר את חברי הצוות וכן את סגל הקורס (אנחנו נהיה במצב שקט שם כך שאם תרצו לקרוא לנו תצטרכן לציין אותנו בהודעה, למשל @robi-y.
  6. קישור למערכת ניהול המשימות (כברירת מחדל בשלב זה מערכת ה- issues המובנית).
  7. משפט הבהרה המציין שהפרויקט מבוצע במסגרת קורס הנדסת תוכנה במכללה עם קישור למאגר הקורס.
  8. קישורים לעמודי מידע ומסמכים נוספים:
    • תיעוד למשתמש (להלן)
    • עמוד צוות (להלן)
    • קישורים למסמכי ושלבי הפרויקט השונים, כרגע רק
    • למסמכי הצעת הפרויקט מהמשימה הקודמת (כנ”ל אפשר כרגע לקשר לאתר חיצוני)
    • עמוד עבור שלב האתחול (להלן)

עמוד תיעוד למשתמש – User Manual

כיצד משתמשים במוצר, מסכים עיקריים וכדו’. הערה: בשלב זה אפשר להשאיר עמוד זה ריק

עמוד צוות - Team

  1. חברי הצוות (אפשר שמות פרטיים או כינויים הידועים בינכם – במיוחד אם חשובה לכם פרטיות ברשת, מצד שני זו הזדמנות לקידום הרזומה)
  2. שונות בצוות - פסקה המתארת את כמות השונות בין חברי הצוות (מגדר, לאום, מגורים, השכלה, נסיון וכדו׳)
  3. זיהוי הלקוח – מה שם (או כינוי) הלקוח שלכם? האם הוא אדם פרטי או ארגון? במידה ואין לקוח אמיתי (באישור צוות הקורס), יש למצוא סטודנט מחוץ לצוות או מצוות הקורס שיסכים לשמש כנציג הלקוח (בהתחייבות שלו להשקיע זמן במשוב)
  4. בעלי עניין נוספים הקשורים לפרויקט למשל משקיעים, מנהלים, משתמשים וכדומה
  5. ערכי הצוות (בדומה למה שגיבשתם בהרצאת הצוות), קוד התנהגות) וכדומה
  6. דרכי תקשורת מתוכננות אל ובין הצוות

עמוד אתחול ותכנון פרויקט - Inception / Planing

הערה: אין צורך לפתח את כל הסעיפים בצורה שלימה.

  1. פרטים על התהליך או שיטת הפיתוח שמתוכננים עבור הפרויקט,(אפשר לתת קישורים מתאימים)
  2. רשימת מאפיינים כללית וראשונית של המוצר, כולל אלו מאפיינים אינם מתוכננים בשלב זה או שיש ספק לגביהם – רק בכמה משפטים (ראו מקור 3 שקף 6).
  3. תכנון והערכה ראשוניים – רשימת שלבים ומשימות עיקריים שיש לדעתכם לבצע בפרויקט כך שהוא יהיה מוכן בסיום הסמסטר. לכל משימה תנו גם הערכה של הזמן הנדרש לביצועה. אפשר להיעזר בתהליך שבחרתם בהתחלת העמוד כדי לזהות משימות נוספות.
  4. ניהול סיכונים – ערכו רשימה של הדברים שעלולים להפריע להצלחת הפרויקט. לכל סעיף פרטו מה בדעתכם לעשות כדי להנמיך את הסיכון.
  5. כיצד ייבנה (build) המוצר? באילו טכנולוגיות תשתמשו? סביבת פיתוח?
  6. איך תפיצו את המוצר (רמז: google app engine)
  7. איך תשתפו את הקוד (רמז: git/github)
  8. מוסכמות קידוד (Coding Conventions) – למשל בגוגל או AirBnB.
  9. אילו רכיבים עיקריים יהיו במוצר. חובה תרשים (דיאגרמה) אחד לפחות, הדרישה היא לדיאגרמה מפורטת יותר מאשר בפעם הקודמת הכוללת רכיבים פנימיים עיקריים. במידה והמוצר המפותח הוא חלק ממערכת יש לזהות את הרכיבים המתקשרים איתו. במידה ויש כוונה להשתמש ברכיבים קיימים יש לציין זאת גם.

מקורות והרחבות

  1. תבניות הפרויקט ReadySET
  2. תבניות מלוות לספר McConnell S., “Software Project Survival Guide
  3. תבנית למצגת מבוססת על המאמר Ten Questions You’d Be Crazy not to Ask at the Start of Your Project
  4. תבנית וורד לדוגמא מקורסים קודמים: https://github.com/jce-il/se-class/tree/master/project/prev/sdp-template.docx
  5. תבניות בשימוש התעשיה בארץ. להרחבה: מ. קפלן, לעשות את זה כמו גוגל

בהצלחה