תמחור פרוייקט
-
@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 מתקדמות, אלא זה היה נדרש לפיצ'רים מסויימים,
וכנ"ל שאר הדברים מדובר בנקודות ספיציפיות
ולא בליבה של הפרוייקט,
בכל אופן אם אני מחשב לפי המוצר המוגמר, ומה המחיר שלו בשוק
אני עדיין במחיר זול (לדעתי, תתקנו אותי אם אני טועה).אגב זה מעלה כאן את הנקודה העתיקה "איך אני יודע כמה אני שווה?"
שנידון קצת למעלה ועדיין לא יצא משהו ברור (חוץ מקח כמה שיותר). -
טיפ שנתן לי מתכנת עם קצת יותר ניסיון בתחום ממני (9 שנים + העסקת פרלנסרים אחרים)
כל פעם שאני רושם שעות עבודה
לכתוב מה עשיתי בזמן
ובסוף אפשר לעבור על זה
ולראות מה היה מיותר, ולא ראוי שיהיה על חשבון הלקוח.
זה גם עוזר לעתיד אם רוצים לתמחר גלובלי, לדעת כמה זמן לוקח כל דבר. -
@nigun אמר בתמחור פרוייקט:
טיפ שנתן לי מתכנת עם קצת יותר ניסיון בתחום ממני (9 שנים + העסקת פרלנסרים אחרים)
כל פעם שאני רושם שעות עבודה
לכתוב מה עשיתי בזמן
ובסוף אפשר לעבור על זה
ולראות מה היה מיותר, ולא ראוי שיהיה על חשבון הלקוח.
זה גם עוזר לעתיד אם רוצים לתמחר גלובלי, לדעת כמה זמן לוקח כל דבר.תוכל לעשות זאת בקלות עם התוסף שציינת למעלה
https://toggl.com/ -
האזנתי עכשיו לפודקאסט על "איך לתמחר נכון." (באנגלית)
והתחלתי לקרוא גם את הבלוג שלו
הבחור טוען שם שתמחור לפי שעה זה מתכון לצרות.
לפי מה שהבנתי עד עכשיו התזה שלו היא שצריך לתמחר לפי "ערך" (לא לפי הרווחים שיהיו ללקוח, אלא לפי הערך שהלקוח יקבל)
והדרך שבה הוא עובד זה קודם לשבת עם הלקוח ולהבין מה הוא רוצה,
ולשאול אותו למה צריך את הפרוייקט בכלל? למה עכשיו? ולמה הוא הוא צריך אותו? למה הוא לא לוקח איזה מתכנת זול מחו"ל?
בקיצור לתת לו את כל הסיבות לרדת מהעניין, אם הוא יורד מהעץ? מצויין, חסכת עוד לקוח שלא מתאים לך. אם הוא לא ירד מהעניין? אתה תדע טוב יותר, מה הוא רוצה? מה היעד שלו? מה דחוף לו? וכו'.עכשיו צריך לתת לו הצעת מחיר שמתאימה למוצר ולא לכמות שעות המשוערת
ואם יתווספו שינויים קלים לפרוייקט אין בעיה, כי לא תמחרת לפי העבודה אלא לפי המוצר הסופי.
אם לפי החשבון שלך הערך של המוצר לא יהיה שווה את העבודה שלך? כנראה שכדאי להפסיק כאן
ולהפנות את הלקוח למישהו יותר זול.
לרוב אם הצלחת להכנס לראש של הלקוח, אתה תצליח לרצות אותו
ותחסוך הפתעות וויכוחים בהמשך, וכך תבנה את השם שלך (בקטע הזה אני פחות מאמין, כי לקוחות לא תמיד יודעים להעריך עבודה מקצועית).אפשר גם לשים בהצעת מחיר שאתה מתחייב לפתור תקלות בחינם למשך X חודשים מסיום הפרוייקט
וכך אתה באמת תשקיע זמן בלכתוב קוד איכותי (לעומת תמחור לפי שעה, שאז באופן אוטומטי עושים קיצורי דרך).כדי לתמחר ככה אז צריך להשקיע יותר זמן במיתוג, ולכן הוא טוען שאף פעם לא לקחת עבודות שימלאו את כל היום, כי חייבים להשאיר זמן פנוי ביום לקידום עצמי, זה יכול להיות בניית אתרשל העסק,לימודים, השקעה בכלים לבניית מוצרי מדף (למשל הוא הביא דוגמא מאחד שהקים סט כלים בו הוא יכול להקים אתר תוך יום, והוא התמקצע בזה, וזה המוצר שלו).
בקיצור, נשמע מעניין
לא יודע איך זה מיושם למעשה?
אבל יתכן שיש כאן תבנית יעילה לתמחור
לגבי הבעיה של אונאה, לכאורה אם מתייחסים למוצר ולא לעבודה לפי שעה
אז אולי אין בעיה של אונאה, כי זה מוצר יחודי וגם אם מתכנת אחר יעשה את זה
זה לא בדיוק אותו קוד, והתחזוק שלו יהיה שונה.
ואם מסבירים ללקוח לפני זה את כל הסיבות למה לא שווה לו להיכנס לזה, ושהוא יוכל למצוא מתכנת מתחיל במחיר (שאולי יהיה) יותר זול ,ולהסביר לו איפה הוא יכול לחפש (למשל בתחומים)
אז אין כאן אונאה. -
@nigun ואז יגיע לקוח שרוצה שגם קוד המקור יהיה שלו, ותיתן לו במתנה את כל הקוד שעליו עמלת במשך שנים.....
תכלס, אני לא מתחבר לרוב מה שהוא אמר שם, כי מהנסיון אף פעם המוצר לא מתוכנן מההתחלה עד הסוף, ותמיד יש שינויים תוך כדי תנועה,
וגם, להעריך ערך של מוצר, במיוחד במוצרים חדשים לגמרי, זה דבר קשה עד בלתי אפשרי....בנוסף יש את הסיבה שהביא @WWW שהיא גם נכונה - במיוחד אצלינו
-
@WWW
הוא טוען שאתה אמור להבריח את רוב הלקוחות, זה בדיוק המטרה
אם אתה רוצה להתמקצע בנישה מסויימת, אתה לא אמור לרדוף אחרי לקוחות.
@clickone
אם רוצה את הקוד מקור שישלם
כמובן שזה משנה את המחיר.
הוא טוען שאומנם יותר קשה להעריך ערך של מוצר חדש מאשר תמחור לפי שעה
אבל בסופו של יום אם מצליחים בזה המתכנת בונה קשר יותר בריא עם הלקוח
ולכן הלקחות יותר רגועים, וזה אמור בסוף להשפיע על השם של המכתנת ולהביא את הדגים השמנים.ובכלל ע"פ היהדות אין מקום לומר "אולי הלקוחות יברחו".