תמחור פרוייקט
-
@dovid אמר בתמחור פרוייקט:
אני חושב שאתה יכול לדמות את זה לאינסטלטור שבודק חומרים יעילים נגד קרוזיה במשך שלוש שעות.
לא הבנתי את ההקשר
ואני עדיין לא יודע מה מצופה ממני לדעת ומה לא?
אני לא יודע מה המחיר שוק, ואם אני לוקח מחיר ריצפה זה אמור לקחת בחשבון שיש דברים שאני עושה לאט? -
@clickone אם כל עבודת תכנות הייתה כוללת ניסוי וטעיה זה נכון
אבל זה לא נכון. יש הרבה שעושים את העבודה ישירות במה שהם מכירים.
אם לפי אופי הפרוייקט או אופי המתכנת נדרשים שעות מחקר חובה לדעתי לשתף את הלקוח באם לחקור, כמה ולציין שגם אני עצמי מפיק תועלת במחקר הזה. -
@dovid
כל עבודת תיכנות מורכבת מעט מהרגיל, יש בה ניסוי וטעייה
גם אם עובדים במה שמכירים.
כל לקוח בא עם הדברים המיוחדים שלו......עם כל ה... שלו
ולא תמיד מראש אתה יודע איך לממש הכל (במיוחד כשהלקוח עצמו לא תמיד יודע וסגור על עצמו...)אבל בגדול אתה צודק
-
מתכנת שאין לו ניסוי וטעיה כלל הוא מתמחר את עצמו באמת הרבה יותר לשעה. מהסיבה הפשוטה שאם לדוגמא עלות אתר מסוג X בשוק הוא X ש"ח, אז מתכנת מנוסה עושה את זה בפחות שעות וא"כ באמת העבודה שלו שווה יותר.
וכבר דיברו בעבר בפורום, שהגיוני שמתכנת יקח לשעה 250 בדיוק כמו שחברת תיכנות עם מותג תיקח את הסכום הזה לשעה תכנות. לכן אני לוקח את הרף הזה כדי להניח שגם אם הלקוח המצוי אין לו את הידע המקצועי בענייני תכנות, אבל הוא מבין בספירת שטרות (ויכול לוודא את הסכום של עלות שעת תכנות ממוצעת), ולכן הלקוח יכול גם להבין שאם מתכנת לוקח פחות מהסכום הזה, אז למרות שיתכן שהוא סתם עושה לו הוזלה (כי הוא רוצה להיכנס לשוק), אבל גם יתכן שהוא פשוט לא ברמה הזו של ידע. וזה שהלקוח לא עושה את החשבון הזה המתבסס על ידע שנמצא בשוק החופשי, זה לא אמור להיות מדאגתו של המתכנת
לכן מתכנת שלוקח סכום נמוך שהוא הגיוני למתכנת ברמה בינונית אז הוא מראש מעמיד את עצמו ברף מסויים, וצודק.מזוית אחרת לגמרי, בעבר השתמשתי בספריה datatables שפורסמה בפורום הרבה והייתי בטוח שזו ספריה מצויינת לטבלאות. (במקרה הספציפי גם נתתי ללקוח רשימת ספריות לבחור מביניהם והוא בחר את datatables).
כ"ז עד שהתחלתי לעבוד איתה והוצאתי הרבה הרבה אנרגיה על כל מיני cssים שלא תפקדו כמו שצריך עם הפונקציות שלהם, ועוד. (אח"כ בהמשך העבודה עבור דף אחר באתר שלו השתמשתי לגמרי עם מימושים אחרים).
האם אני צריך להודיע ללקוח על כל ספריה שאני עומד להשתמש איתה אם בדקתי את כל הפונקציות שלה לפני שאני מתחיל לעבוד? אני חושב שברגע שיש לי ידע תכנותי ברמה שמאפשרת לי לממש את העבודה לרבות דרך שיטוט וחיפוש המידע הרלוונטי (ברמת מהירות סבירה בהתייחס לבעיות הספציפיות שבעבודה המבוקשת), אז זה מה שהלקוח מחפש מהמתכנת הבינוני. -
אני ינסה לסכם מה הבנתי.
יש כמה סוגי עבודות:- בניית מוצר שברור למכנת מראש מה בדיוק הוא אמור לעשות והוא כבר עשה משהו דומה בעבר
- כנ"ל , אבל הלקוח לא סגור על עצמו מה הוא צריך, אבל לפי מה שהוא מבקש כרגע המתכנת יודע איך הוא יעשה את זה.
- הלקוח לא סגור על עצמו והמתכנת לא יודע בדיוק איך לממש גם את דרישות הלקוח הראשוניות, אבל הוא יודע איך משתמשים בכלים הבסיסים בתכנות
- כנ"ל, אבל יש כלים שזה פעם ראשונה שהוא משתמש בהם והוא נוקט בשיטת ניסוי וטעיה/קורא מדריך.
- כנ"ל, אבל מבזבז חלק מהזמן בלימוד כלי לא רלוונטי, או בכלי שזה ברור מאליו שמתכנת אמור לדעת (הקמת חומת אש למשל)
השאלה היא איפה החילוקים?
וממתי זה כבר לא לגיטימי לקחת לפי שעה? -
@nigun אמר בתמחור פרוייקט:
אני ינסה לסכם מה הבנתי.
יש כמה סוגי עבודות:- בניית מוצר שברור למכנת מראש מה בדיוק הוא אמור לעשות והוא כבר עשה משהו דומה בעבר
- כנ"ל , אבל הלקוח לא סגור על עצמו מה הוא צריך, אבל לפי מה שהוא מבקש כרגע המתכנת יודע איך הוא יעשה את זה.
- הלקוח לא סגור על עצמו והמתכנת לא יודע בדיוק איך לממש גם את דרישות הלקוח הראשוניות, אבל הוא יודע איך משתמשים בכלים הבסיסים בתכנות
- כנ"ל, אבל יש כלים שזה פעם ראשונה שהוא משתמש בהם והוא נוקט בשיטת ניסוי וטעיה/קורא מדריך.
- כנ"ל, אבל מבזבז חלק מהזמן בלימוד כלי לא רלוונטי, או בכלי שזה ברור מאליו שמתכנת אמור לדעת (הקמת חומת אש למשל)
השאלה היא איפה החילוקים?
וממתי זה כבר לא לגיטימי לקחת לפי שעה?יש גם תוך כדי העבודה בתיקון באגים שמתכנת מנוסה יודע א' איפה לצעוד (איפה הכיוון לחיפוש מידע / לתיקון סוג באג X) לעומת אחד לא מנוסה, ב' שמתכנת מנוסה יודע איפה לבדוק וכשלא מסתדר אז מה הצעד הבא לבדוק, והלא מנוסה יכול לחזור על אותם פעולות דיבוג שוב ושוב.
-
אני חושב שיש חילוק בין עבודת תכנות שגרתית שכוללת בתוכה מחקר רב (כולל ספריות חדשות, המון שיפורים כל הזמן על הדרך)
לבין לימוד נושא תכנותי מוגדר ורחב שהלקוח רק היווה את ההזדמנות ללמוד אותו.
@nigun עצמו הביא כדוגמא את SQL שהיה פשוט לו שכשזה נושא שלם זה צריך להיות על חשבון המפתח (למרות שכשזה רק מהצד ורק שורה וחצי כולם יודו שזה יכול להיות על חשבון הלקוח).מקריאה חוזרת של מה ש@nigun נראה שהספק שלו עד כמה לגיטימי שהוא לא ידע את זה קודם לכן, ובזה אני חושב שאין הבדל. לכל מתכנת יש המון מה ללמוד שחבריו יודעים ממזמן.
אני חושב שהנושא הוא כמה ה"מחקר" הוא נטו שגרת עבודה ללקוח והמפתח מרויח על הדרך,
(ואז נורא מרוכזים במה לעשות פה ולא ללמוד את הנושא כולו וגם שיקול הפעולה הוא מה טובת הלקוח)
או להיפך, הלקוח היה הזדמנות ללמוד נושא שיכניס הרבה כסף בלקוחות הבאים.מה המבחן?
מבחן ברור זה אם אפשר להסתדר בלי המחקר - כולל ע"י קיצורי דרך, שימוש בקודים שלא מבינים עד הסוף וכו'? (כן אבל X Y Z וגם... "גם ככה אני רוצה להיכנס לתחום הזה").
אני כעת מבחין שיש פה כן מקרה עדין כאשר המחקר מחוייב לעבודה זו אבל הנושא כה גדול שהוא משדרג את המתכנת ברמה שהיה שווה לו ממש להשקיע את הזמן הזה על חשבונו הפרטי. זה אולי נקודת השאלה? -
@שואף אמר בתמחור פרוייקט:
והאמת, מבחינת שעות העבודה שלי, גם אם אני מחשב לפי 200 שח לשעה, זה יוצא כ5000 שח.
הנושא נפתח לפני כעשרה חודשים, אני קורא את הפוסט הראשון וצוחק.
ביקשתי מהלקוח 20 אלף שקל, ועד היום לא סיימתי איתו. יש לו כל הזמן תיקונים ותוספות קטנות שהוא מבקש לא נעים לי לסרב לו.
אשתי כבר אסרה עלי להמשיך להסתכל על זה
היו דברים שאמרתי ללקוח שאין מה לדבר וצריך לשלם על זה בנפרד, והוא שילם, אבל היו כל מיני דברים לא כל כך מוגדרים, שמבחינתו פשוט שהיו כלולים, ואני האמת לא כל כך חשבתי על כל הפרטים כשהתחייבתי.
כך שלמדתי מזה לקח חשוב.
אם הלקוח מדבר על מחיר גבוה, כמו זה שהלקוח סיפר לי לתומו שהוא קיבל הצעה ב70 אלף שח, אז גם אם נדמה לי שאסיים את זה תוך שלשים שעות, אני פרייער גדול להסכים בסכום נמוך..
לקחת לפי שעה אני לא מסוגל כי קשה לי לעבוד רצוף ואני הרבה עוצר להתרענן באמצע וקשה לספור את הזמן המדויק של העבודה. אז אני כן אוהב לתת מחירים, אבל המסקנה שלי היתה שהמחירים צריכים להיות גבוהים, כי לקוחות תמיד מגזימים, ולא נעים לבקש מהם עוד מאתיים שקל על כל פיצ'ר קטן שירצו להוסיף. -
@שואף אמר בתמחור פרוייקט:
לקחת לפי שעה אני לא מסוגל כי קשה לי לעבוד רצוף ואני הרבה עוצר להתרענן באמצע וקשה לספור את הזמן המדויק של העבודה.
זה אכן עוד בעיה
היה לי לקוח שניסחתי לו משהו בסגנון של:
"התשלום הוא לא לפי שעה אלא על גודל הפרוייקט ,וכיוון שאני לא יודע את גודל הפרוייקט, אני מפעיל סטופר והתשלום יהיה לפי זה אבל התשלום הוא על העבודה ולא על הזמן, ויתכן שיהיה סטיות קלות"
וגם אני משתמש בתוסף (נראה לי שמליצו לי עליו כאן)
ואם אני שוכח לכבות את הסטופר אני משנה את זה ידנית לזמן שזכור לי "בערך" שגמרתי
וכמובן יש פעמים שאני שוכח להדליק
אז למעשה זה יוצא קצת פחות ממה שבאמת עבדתי
בעיקר כי יש לי נערווין בעניין ולרוב אני מחמיר ומוריד
(וזה מה שאכן עשיתי כשהיה נראה לי שאני לא עובד עכשיו אלא לומד משהו חדש לגמרי)
אבל אין שום וויכוחים עם הלקוח, כי אין לי בעיה שיוסף פיצרים לעוד כמה חודשים
(אני דווקא ישמח , אולי הוא ישמח פחות תלוי בעומק של הכיס) -
@nigun אמר בתמחור פרוייקט:
"התשלום הוא לא לפי שעה אלא על גודל הפרוייקט ,וכיוון שאני לא יודע את גודל הפרוייקט, אני מפעיל סטופר והתשלום יהיה לפי זה אבל התשלום הוא על העבודה ולא על הזמן, ויתכן שיהיה סטיות קלות"
האם תוכל להסביר מה הפירוש? לא הבנתי מה הכוונה בזה, ומה התועלת שאתה משיג ע"י זה
-
@dovid אמר בתמחור פרוייקט:
אני כעת מבחין שיש פה כן מקרה עדין כאשר המחקר מחוייב לעבודה זו אבל הנושא כה גדול שהוא משדרג את המתכנת ברמה שהיה שווה לו ממש להשקיע את הזמן הזה על חשבונו הפרטי. זה אולי נקודת השאלה?
אני חושב שיש כאן שאלה פחות עמוקה, גם אם נגיד שהמתכנת לא הרוויח מזה כלום, וגם כל מטרתו זה להשיג את הפתרון ללקוח.
אבל בכ"ז המתכנת חסר לו ידע בסיסי, וייתכן שהלקוח מפסיד פה 1000 ש"ח רק בגלל שהמתכנת לא יודע SQL, כך שאולי אם המתכנת היה אומר לו לפני תחילת העבודה: תשמע אני לוקח 200 ש"ח לשעה, אבל אני מכיר רק C#, ובפרויקט שלך כנראה יצטרכו גם SQL, וזה אני לא מכיר טוב. הלקוח היה אומר לו: או שאני משלם לך 150 ש"ח לשעה (כי אתה חצי מקצועי), או שאני הולך למישהו אחר.אני אישית לדוגמה לא הכרתי C# כלל, והיה לי לקוח שרצה פרויקט בC#, אמרתי לו שאני לא מכיר את השפה ולא את הפלטפורמה, והסכמתי לעשות לו את זה במחיר מצחיק, תוכ"ד לימוד השפה.
אני חושב שהקוד לא הכי על רמה שמה, אבל זה היה שווה לו מבחינת המחיר והתוצאה. -
@WWW
יתכן שגם עם 150 לשעה הוא עדיין משלם יותר מאשר 250 לשעה אצל מתכנת מומחה.
אגב זה באמת מה שאמרתי ללקוח הנוכחי
אמרתי שאני עדיין לא יודע איך אני מישם את כל מה שהוא רוצה
ועל חלקים שאני לומד ויהיה לי בזה שימוש לפרוייקטים עתידיים
אני יקח לו 150 לשעה
בסוף זה יצא המחיר לכל העבודה (אחרי שהורדתי כמה שעות כמו התעסקות באיזה באג מעצבן שיצרתי לעצמי בחומת האש)
אבל כשבל זאת אני מגיע לסכום לא תכננתי בהתלחה (וגם הלקוח לא)
ואני תוהה איך להמשיך?
האם אני צריך לעצור במחיר השוק לכזה פרוייקט? ואם כן מה המחיר שוק?
ואולי זה לא קשור בכלל למחירי שוק? -
לדעתי 150 לשעה זה לא מחיר זול.
לא יקר, אבל גם לא זול.
זול זה 50-80 לשעה ואז הגיוני שאתה לא יודע sql וכדו'.
אם אתה לוקח 150 זה אומר שאתה יודע ומכיר את השפה בה אתה עובד.
אני חושב שהחילוק הוא בין אי הכרת השפה, לבין אי הכרת ספריות.
למשל אם אתה לא יודע אנגולר, אתה לא תקח 150 ₪ כשאתה לומד אנגולר. אבל אם אני לא מכיר את ספריית מטריאל של אנגולר, אין בעיה לקחת את המחיר הנל.לגבי תמחור לשעה, כשאני לוקח לפי שעה, אני אומר ללקוח שהמחיר הוא לפי שעת עבודה, אבל אני לא שכיר שלו.
זה אומר שאני לא עומד עם סטופר, ואני מודד את הזמן ביחידות של רבעי שעה וכדו', וזה בסה"כ הדרך שלי לתמחר לו את הפרוייקט.דבר נוסף, מתכנת טוב זה לא רק האם הוא יודע איך לעשות שהקוד יעבוד, אלא כמה הקוד כתוב בצורה נכונה, עם יכולות תחזוק והרחבה. כמה הוא יודע להשתמש בדפוסי תכנות (design pattern), והאם הוא לא רק יודע מה לעשות כדי שהקוד יעבוד, אלא גם מבין מה הקוד עושה ואיך הוא עובד...
-
@avr416
זה לא שאני לא יודע sql, אלא שאני יודע sql בסיסי ולא יותר מזה
גם מה שהפרוייקט לא מבוסס על שאילתות sql מתקדמות, אלא זה היה נדרש לפיצ'רים מסויימים,
וכנ"ל שאר הדברים מדובר בנקודות ספיציפיות
ולא בליבה של הפרוייקט,
בכל אופן אם אני מחשב לפי המוצר המוגמר, ומה המחיר שלו בשוק
אני עדיין במחיר זול (לדעתי, תתקנו אותי אם אני טועה).אגב זה מעלה כאן את הנקודה העתיקה "איך אני יודע כמה אני שווה?"
שנידון קצת למעלה ועדיין לא יצא משהו ברור (חוץ מקח כמה שיותר).