יש סקר חדש

c o o l o

New member
הייתי אומר

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

vinney

Well-known member
אלה שמתעסקים בארכיטקטורה

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

vinney

Well-known member
האמת חשבתי איך לתאר את זה

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

vinney

Well-known member
אני יודע מה זה אינטגרציה

אתה כנראה לא יודע מה זה הבטחת איכות.
 
הבטחת איכות == QA, לא? באנגלית Quality Assurance, בעברית הבטחת איכות. תרגום מילולי, אחד לאחד. ואינטגרציה והבטחת איכות הם שלבים נפרדים לגמרי בתהליך הפיתוח.
 

vinney

Well-known member
QA != QC

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

vinney

Well-known member
אין כזה דבר "צוות הבטחת איכות"

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

vinney

Well-known member
זה לא המצב

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

vinney

Well-known member
כי טרמינולוגיה נובעת מהגדרת מושג

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

DadleFish

New member
לפי השיטה שלך,

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

vinney

Well-known member
DESIGN

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

yoniBLA

New member
הצבעתי 1,

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

sagima

New member
אינטגרלי בדיוק

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

sagima

New member
וכמובן...

בחרתי 1, למרות שבעתיד (הרחוק יחסית) אני מקווה לעבור למחקר.
 
למעלה