ארכיון

ארכיון של אפריל, 2010

האם אתם לומדים מהתקלות שלכם ?

28 אפריל, 2010 2 תגובות
בכל מערכת תוכנה יש תקלות. אני לא אכנס כאן לסיבות לתקלות ולמתודולוגיות פיתוח שמנסות לתת מענה לתקלות תוכנה ולהקטין את הסיכוי לתקלה.
בפוסט זה אני אתמקד בנושא ההתייחסות לתקלות, והשימוש בעובדה שהתקלות הן חלק בלתי נפרד מאורח החיים של ארגון המפתח תוכנה לשם לימוד והתפתחות.
 
השאלה שעלינו להציב לעצמנו היא – האם אנחנו מתקנים תקלות בלבד או שאנחנו לומדים מהן ומנצלים את התקלות שמתגלות לטובת התפתחות ושיפור?
אתחיל בשלוש הנקודות הבסיסיות בתפיסה שלי לניהול וטיפול בתקלות
 
  1. תיעוד - כל תקלה צריכה להיות מתועדת. התיעוד צריך לכלול את אופי התקלה, ההשפעות שלה, תוצאות האנליזה, דרך הטיפול בתקלה ואופן סגירת התקלה. התיעוד הוא אקומולוטיבי. ככל שהטיפול בתקלה מתקדם, מתווספים עוד רבדים של מידע, מידע קודם הופך לפחות רלוונטי ומידע חדש מחליף אותו. מהנסיון שלי תיעוד התקלות הופך להיות בסיס ידע מהותי בבניית מערכות, ולא רק ברובד של התקלות. המידע הנצבר יכול להעיד על החוזקות והחולשות של צוותי הפיתוח, על הקשרים בין צוותי הפיתוח וה QA, על פערי ידע בארגון, על פערי ציפיות מול לקוחות, על יכולות חדשות שיש להוסיף למערכת ועוד. על מנת להפיק תיעוד באופן יעיל, מערכת התיעוד צריכה להיות בעלת יכולת להגדרה דינמית של מידע (הוספת שדות, טבלאות וקשרים), ויכולת להגדרה דינמית של שאילתות (חתכים שונים, פילטרים שונים, גם לפי שדות מותאמים אישית).
    מרכיב נוסף שנדרש במערכת תיעוד הוא היכולת להתריע בזמן אמת לפי חתכים דינמיים. כלומר, בהנתן כלל מסויים ובהנתן תקלה מסויימת, אם התקלה עונה על הכלל – יש להפיק התראה מיידית בצורת מייל, SMS וכו'.
    השימוש במערכת התיעוד והזנת המידע צריכים להיות לא רק מדוייקים, אלא גם בזמן המתאים. כאשר ישנה מתודולוגיה מוסדרת של אופן השימוש במערכת, אזי המידע שימצא בה יהיה בעל ערך רב יותר
     
  2. שיתוף ידע – תיעוד התקלה ודרך הטיפול בה צריכים להיות זמינים לכל צוותי הפיתוח וה QA . מערכת התיעוד צריכה להיות מערכת הפתוחה לכלל אנשי הפיתוח וה QA . יש להשתמש בה על מנת לזהות תקלות חוזרות, להפחית כפילויות ובעיקר – ללמוד. ככל שרמת התיעוד , גמישות ופתיחות מערכת התיעוד יהיו גבוהות יותר, היכולת של הצוותים השונים להשתמש במערכת וללמוד ממנה תהיה גבוהה יותר. המתודולוגיה של שיתוף הידע צריכה להיות חלק מנהלי הפיתוח והניהול בארגון על מנת שניתן יהיה להפיק מתיעוד התקלות את המירב. היכולת ליצור אינדקס רב מימדי של התקלות יעזור לבניית שפה משותפת בהקשר למערכת התיעוד והשיתוף. האינדקס והשפה המשותפת יביאו למצב שבו קל לשתף ידע ע"י שליחת קישורים לתקלות ספציפיות, הגדרת שאילתות משותפות וכריית מידע שאינה מבוסס רק על מספרי תקלות אלא גם על מאפייני תקלות.
     
  3. תהליך - אופן הטיפול בתקלות צריך להיות מגובה בתהליך שידוע ומשותף לכל הגורמים. כל אחד השותף בתהליך צריך לדעת מה תפקידו , מה מצופה ממנו ומה הפעולות הנדרשות ממנו. לכל ארגון יש את מתודולוגיות העבודה שלו, אבל כל המתודולוגיות לטיפול בתקלות ייסובו מסביב אופן התפיסה של מחזור חיי התקלה. המתודולוגיה תכלול מספר תהליכים לטיפול בתקלות מסוגים שונים. התהליכים האלו צריכים להיות פשוטים, ברורים וניתנים למעקב. בנוסף, צריך להיות תהליך מקדים של סיווג תקלות על מנת להבין מה התהליך המתאים לטיפול בתקלה. יכולים להיות תהליכים שונים לתקלות המתגלות ע"י צוות ה QA, תקלות המתגלות באתר לקוח, תקלות המשביתות עבודה של לקוח, תקלות המשביתות עבודה של צוותי ה QA וצוותי הפיתוח ועוד תהליכים היכולים להשתנות מארגון לארגון. מנהלי הפיתוח, ה QA  והפרוייקטים השונים צריכים להגדיר את התהליכים האלו, תוך שמירה על מינימום בירוקרטיה, הדגשת חשיבות התיעוד והראיה הרחבה שהמידע הנאסף בתהליכים אלו הינו נדבך חשוב בבניית החוסן הארגוני.

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

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

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

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

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

קטגוריות:מתודולוגיות, ניהול תגיות:

כלי כלי …

21 אפריל, 2010 אין תגובות

היעילות והרמה של קבוצת הפיתוח בנויות על האנשים המרכיבים אותה ועל הכלים בהם הם משתמשים. אילו כלים חשוב שיהיו בקבוצת הפיתוח ומה הקריטריונים לבחירתם?

הכלי הראשוני והחשוב ביותר הוא הכלי המהווה את סביבת העבודה של המפתחים. סביבת עבודה זו יכולה להיות מבוססת מיקרוסופט, ואז הכלי העיקרי שיהיה בשימוש הוא ה Visual Studio . אם הסביבה והמערכת מבוססות java , אזי יהיו כלים כמו Eclipse , IntelliJ Idea , סביבת העבודה של Sun ועוד… ההבדל העיקרי בין הסביבות הינו שיטת העבודה וממשק המשתמש.

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

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

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

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

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

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

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

כלי נוסף, שנדיר יותר למצוא בצוותי פיתוח הוא כלי לניהול משימות. האם תכנית העבודה שלנו מבוססת על כלי שיתופי, הנותן לנו אפשרות להבין מה מצב הקבוצה שלנו? מה משך הזמן שכל אחד מהקבוצה מקדיש לעדכון המשימות שלו? האם הכלי הזה אינטגרטיבי לסביבת העבודה שלנו? האם אנו יכולים לדעת מה הקוד שנכתב בעקבות משימה מסויימת? האם הכלי יודע לנהל מחזורי חיים של משימות מסוגים שונים ? משימות תשתית, משימות פנימיות, משימות תלויות לקוח ? לצערי, עדיין לא מצאתי כלי אינטגרטיבי שלם שיענה על כל הדרישות באופן יעיל out of the box, אולם ישנם כלים שניתנים לקונפיגורציה על מנת שיתאימו לדרישות השונות.

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

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

 

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

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

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

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

 

Content in English

19 אפריל, 2010 אין תגובות

The site is basically in hebrew. Some of the content will be published in both hebrew and english.

 

The main issues that will be covered here are people management, technology management, work plan management and management methodologies

קטגוריות:English תגיות:

האצלת סמכויות – חמישה צעדים להצלחה

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

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

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

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

קטגוריות:אנשים, ניהול תגיות:,

שיתוף ידע כבסיס לגמישות ניהולית

11 אפריל, 2010 אין תגובות
שיתוף ידע בין אנשי הפיתוח הינו אלמנט חשוב מאוד באופן העבודה של גופי הפיתוח וביעילותם של גופים אלו.
חלק מהשיטות והמתודולוגיות המודרניות של תהליכי הפיתוח מתייחסות באופן מובנה לשיתוף ידע. לדוגמא ניתן להביא את מתודולוגית ה Pair Programming – שיטה שבה יותר מאדם אחד (בדרך כלל שניים) שותפים בכתיבת מודולים בתוכנה.
אולם שיתוף הידע הינו יותר מאשר לשבת ולכתוב ביחד, מה גם שלא לכל ארגון המתודולוגיות הנ"ל מתאימות.

מהו שיתוף ידע?
התשובה לשאלה הזו מתבטאת בכמה מרכיבים :

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


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

על האופן והכלים שבהם השתמשתי על מנת להטמיע תהליך שיתוף ידע – אכתוב בפוסט נפרד.

לכם , שמגיעים אלי לפגישת הכרות

7 אפריל, 2010 2 תגובות
קיבלתי את קורות החיים שלכם במייל. בטח באחת מחברות ההשמה או ה outsourcing . קראתי אותן בעיון לפני שהרמתי אליכם טלפון.
תגידו, אחרי שדיברתי איתכם ניסיתם לחפש אותי באינטרנט? ניסיתם למצוא עוד פרטים על המישרה? אולי כדאי לכם להרים אלי שוב טלפון כדי לשאול אותי על מה מדובר. בכל זאת, לנסוע חצי שעה לכל כיוון, לצאת מהעבודה מוקדם, להתכונן ולחשוב על חידות ושאלות שאולי אשאל אתכם זה לוקח זמן… לא חבל על הזמן אם זה לא יתאים לכם?. נסו לסנן אותי כבר בשיחת הטלפון. זו ההזדמנות שלכם, לי היתה כבר הזדמנות לסינון כשקראתי את קורות החיים. יכול להיות שחיפשתי אתכם ב facebook או סביר יותר להניח ב LinkedIn . גם זה עזר לי להחליט אם להרים אליכם טלפון.
דרך אגב, באמת עשיתם את כל מה שכתבתם שם? נראה מרשים. בעיקר כאשר בשנה אחת, בעבודה אחת, התנסיתם כמעט בכל טכנולוגיה אפשרית. נכון, אני מבין שלפעמים צריך לנפח ולהראות, אבל לא להגזים. 


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


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


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




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


קטגוריות:אנשים, ניהול תגיות:

סביבות 2

6 אפריל, 2010 אין תגובות
בפוסט קודם כתבתי על שלוש הסביבות העיקריות שיש בארגון המפתח תוכנה. עכשיו ארצה להתמקד בסביבות הביניים ותפקידיהן.
כאשר מסיימים לפתח גרסה מסויימת של תוכנה, התוכנה עובדת על מחשבי הפיתוח. כעת צריך לבדוק אותה בסביבה נייטרלית, ללא כלי פיתוח מיוחדים. לשם כך יש את סביבת ה QA יגידו חלקכם. נכון, אולם יש לזכור, כי בזמן שאנו מפתחים גרסה מסויימת, בסביבת ה QA בודקים גרסה מוקדמת יותר, אולי אפילו בודקים מערכת אחרת. אחת המטרות שלנו היא העברת הגרסה ל QA במינימום זמן ובמינימום טעויות, על מנת לא להשבית את עבודתם.
לשם כך יש את סביבת ה Dev Integration (אינטגרציית הפיתוח). לפני שמועברת הגרסה ל QA היא תותקן , על כל רכיביה בסביבת ה  Dev Integration. באופן זה ניתן יהיה לזהות תקלות מיידיות שמונעות מהגרסה להבדק, ויש לתקנן באופן מיידי. בדרך כלל תקלות שיתגלו בסביבה זו יהיו ברמת הקשרים בין הרכיבים השונים של התוכנה, בין מודולים שונים, אי התאמות בבסיסי הנתונים או ברכיבי התקשורת השונים וקבצים שלא הועברו באופן תקין בתהליך ההתקנה.
לאחר שהמערכת עוברת בדיקת שפיות (שלה אקדיש פוסט נפרד) המערכת מועברת לסביבת ה QA , שם היא נבדקת לפי תרחישי בדיקה מסודרים ומתועדים (שגם לנושא זה יוקדש פוסט…).
לאחר שצוותי ה QA מאשרים את המערכת, ובכפוף ללוחות זמנים, המערכת מועברת  לסביבת ה Prod Integration (ישנם ארגונים בהם תיקרא הסביבה Staging). סביבה זו כוללת את מרכיבי החומרה והתוכנה כפי שהם קיימים בסביבת הייצור. כמו כן סביבה זו כוללת קונפיגורציה קרובה ככל האפשר למערכת הייצור, ואם ניתן אף נתוני ייצור אמיתיים. חשיבותה של סביבה זו נעוצה בעצם העובדה שכאן המערכת נבדקת בסביבה הקרובה ביותר לסביבה האמיתית בה היא תופעל. הן מבחינת החומרה, פריסת המחשבים, רכיבי תקשורת שונים ונתונים אמיתיים. הסביבה הזו נועדה לכמה מטרות – הראשונה היא בדיקת הנכונות של התוכנה מול נתונים אמיתיים (בעיקר במערכות שזו לא הפעם הראשונה בה הן מותקנות). תקלות כאן יגלו בעיות של הסבת נתונים, של הנחות פיתוח מוטעות, של תקלות אפשריות בתקשורת, של שינויי קונפיגורציה שלא אפשריים במערכת חיה. המטרה השניה היא בחינת תהליך ההתקנה. האחראים על התקנת התוכנה "מתאמנים" בסביבה זו על התקנה נכונה של התוכנה ובניית תרחישי מקרים ותגובות אפשריים בתהליכי ההתקנה. יש לזכור כי בסופו של התהליך, המערכת תותקן בסביבת הייצור, והמטרה העליונה בהתקנה זו היא לא לגרום נזק. לא להגיע למצב בו הארגון ו/או לקוחותיו מושבתים מעבודה עקב התקנת גרסה מוטעית ולכן סביבת ה Prod Integration היא הסביבה האחרונה בה "מותר" לטעות.

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

סביבות … יש הרבה מהן …

5 אפריל, 2010 אין תגובות
מהן סביבות המערכת ? כשאני משתמש במילה סביבות, אני מתכוון לכל אותן סביבות בהן מותקנת המערכת המפותחת.
שלוש הסביבות העיקריות שעליהן מדובר הן:

  • סביבת הפיתוח : בסביבה זו עובדים המפתחים. בה הם מקודדים את קוד התוכנה והסביבה כוללת את כל התוכנות והמערכות התומכות בפיתוח – כלי פיתוח למיניהם , כלי debugging , כלי בקרת תצורה , כלי בניית תוצרים (build) ועוד כלים מכלים שונים, המיועדים לצוותי הפיתוח. סביבה זו מאופיינת ביציבות נמוכה, ולא תמיד ניתן להריץ את כל רכיבי המערכת בו זמנית. בנוסף לפיתוח, בסביבה זו מתנהלות גם בדיקות היחידה (Unit Testing) – בדיקות שנעשות ע"י המפתחים לקוד שנכתב ע"י כל אחד מהם בנפרד ובנוסף, אינטגרציות מקומיות לסינכרון הרכיבים השונים של המערת המפותחת.
  • סביבת הבדיקות ובקרת האיכות : בסביבה זו נמצאים מחשבים ללא כלי פיתוח, עליהם התוכנה המפותחת מותקנת על מנת לעבור בדיקות. סביבה זו מתאפיינת ביציבות גבוהה יותר יחסית לסביבות הפיתוח, ושינויי התוכנה בה מבוקרים באופן של העברת גרסאות מסודרת ושל paches למקרים בהם נדרש תיקון מיידי (למשל כאשר יש תקלה שמשביתה את צוותי הבדיקות). 
  • סביבת הייצור : עבור כל חברה שמפתחת תוכנה סביבת הייצור היא אחרת. לעיתים היא פנים ארגונית, במקרה של פיתוח תוכנה באופן עצמי ע"י גוף המיחשוב של החברה. לעיתים היא חוץ ארגונית, אבל נשלטת ע"י הארגון – במקרים בהם הארגון מוכר שירותים מעל הרשת (בין אם כשירותי ענן או כאתר אינטרנט) ולעיתים היא נמצאת אצל לקוחות החברה, במקרים בהם נמכרת התוכנה ללקוח ומותקנת בסביבת העבודה של הלקוח עצמו. סביבה זו מאופיינת ביציבות רבה, שינויי התוכנה בה מעטים יחסית ומבוקרים ע"י הפצה מסודרת ומתואמת של מערכת התוכנה. במקרים נדירים, יועברו תיקוני תוכנה כ patches לסביבה זו וזה יקרה במקרים של תקלות עוצרות שלא נתגלו בתהליכי הבדיקות ובקרת האיכות של התוכנה. תיקונים בסביבה זו יקרים מאוד, מחייבים התייחסות ארגונית ותהליכית ספציפית ע"י הגוף המפתח, ויכולים לפגוע בהוצאת גרסאות עתידיות של התוכנה.
ככל שמתקדמים בהפצת התוכנה לסביבות העליונות יותר (סביבת הפיתוח היא הסביבה הנמוכה ביותר), עלות תיקוני התקלות עולה, ולכן יש צורך בסביבות ביניים להפצה על מנת שניתן יהיה לנטר תקלות בשלב מוקדם יותר. סביבות אלו כוללות בין השאר את סביבת האינטגרציה, סביבת קדם היצור, סביבת בדיקות משתמשים, סביבת הדרכות ולעיתים סביבות נוספות. הבנה של הצרכים בסביבות המערכת השונות, ובניית סביבות ממוחשבות התומכות באופן מיטבי בדרישות הינה אבן יסוד בעבודתה של יחידת פיתוח. על תהליכי ההפצה ובניית סביבות ממוחשבות התומכות באופן מיטבי בעבודת הארגון – בפוסטים נפרדים.
קטגוריות:טכנולוגיה תגיות:

אז בואו ונתחיל…. קדימה על ארבע רגליים

4 אפריל, 2010 אין תגובות
על ארבע רגליים ניהול הפיתוח בנוי

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

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

איך מתחילים לכתוב ?

4 אפריל, 2010 3 תגובות
אני לא ממש יודע את התשובה לשאלה שבכותרת.
על מה בעצם אני רוצה לכתוב כאן? אני כנראה אכתוב על הנסיון שלי בפיתוח ובניהול. אני אכתוב על מקרים שקרו לי, תובנות שאספתי במשך השנים, טיפים שקיבלתי ונתתי ועוד ועוד ועוד… אני לא אכתוב ברמה אקדמית, ולא אצלול למעמקי קידוד התוכנה. אנסה לצייר את העולם המקצועי בו אני חי מנקודת מבטי הפרטית והמשוחדת.
ועוד קצת לפני שמתחילים… בחרתי בפלטפורמה של blogger משום שנראה לי שהיא הפשוטה ביותר לניהול כרגע. יכול להיות שבהמשך הדרך אעבור לפלטפורמה אחרת ואולי כשאהיה ילד גדול אפילו תחת domain נפרד משלי … 
קטגוריות:כללי תגיות: