להיות המשתמש של המוצר שלך

[26 באוקטובר 2009] [3 תגובות]

התוכנות הכי טובות הן אלו שהמפתחים שלהן משתמשים בהן.

תתחילו להשתמש במוצרים שלכם

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

אני תיקנתי ופיתחתי פיצ'רים חדשים בתוכנה והמשתמשים היו המנהלים, אנשי המכירות, אנשי המלאי ועד האיש האחרון בחברה. אחת הבעיות הגדולות שהיו לי הייתה שמעולם לא השתמשתי בתוכנה בעצמי. הדבר היחיד שידעתי על יהלומים הוא שיש משהו שנקרא ארבעת ה-C של יהלומים: Color, Carat, Clarity ועוד משהו שמתחיל ב-C. בגדול זאת אבן נוצצת.

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

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

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

הבעיה היתה שעם השנים הוא נאלץ לוותר על התכנות ולהתרכז בניהול החברה. אני מניח שמאז התוכנה איבדה את הכיוון, אבל את הדברים החשובים, אלו שהוא השתמש בהם, היא עדיין ידעה לבצע כמו שצריך.

תכתבו תוכנות לעצמכם

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

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

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

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

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

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

3 תגובות

  1. אלירן | 10/26/2009 9:43:10 AM

    היי

    למה התוכנה שלך מפותחת עבור איפון בלבד? מה אם אנשי האנדראויד?

    אגב עד כמה קשה לבנות תוכנה ל2 מערכות שונות?

    תודה

  2. המנכ"ל | 10/27/2009 2:26:56 AM

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

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

    ----

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

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

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

     

  3. טל | 10/28/2009 10:21:57 AM

    @אלירן, התוכנה פועלת רק על אייפון מכיוון שיש לי רק אייפון. אם היה לי מכשיר שמריץ אנדרויד, כנראה שלא הייתה גירסת אייפון.

    לכתוב תוכנה שהיא Cross-Platform (כלומר עובדת במספר פלטפורמות) זה דבר שצריך להיערך אליו מראש. עקרונית רוב הפלטפורמות מאפשרות קוד C אבל אז מאבדים את כל ה-API שמקבלים מהפלטפורמה.

    אם כולם היו מריצים Java החיים היו קלים.

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

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

הוסף תגובה