تجربه ساخت تیم محصول در اسنپ مارکت
سلام!
ایده اسنپ مارکت حدودا از زمستان ۹۶ شروع شد و من این شانس رو داشتم که از بهار ۹۷ به تیم اضافه بشم تا در تجربه شکل گیری و بزرگ شدن اسنپ مارکت شریک باشم.
به پیشنهاد دوستان، این متن رو نوشتم که هم مروری برای خودم باشه که چه کردم و کارها چطور انجام شده و هم بقیه، خطاهای من رو کمتر تکرار کنند. طبیعتا در این متن بیشتر به تیم محصول می پردازم و خیلی به بقیه افراد و بخش هایی که باهاشون در ارتباط بودیم، اشاره نمی کنم و تا جای ممکن برای عدم ایجاد حاشیه اسم نمی برم. بیشتر عملکرد خودم و تاریخچه تیم را نقل می کنم.
بطور کلی در شروع کار، خیلی مشخص نبود که باید چه کاری انجام بدم. برای همین ماه اول سرم خلوت بود. بعدش یه مدت در مورد بیزینس پلن، یه مدت در مورد پشتیبانی و یه مدت برای بازاریابی طرح می نوشتم و پیگیری می کردم. ولی خب همه اینها در بهار ۹۷ بود. یعنی زمانی که هنوز چیزی لانچ نشده بود و این بخش ها همه بعد از ارائه نسخه اولیه معنی پیدا می کنند.
ساختار اولیه
به مرور و با توجه نیازهایی که هر روزبیشتر مشخص می شد به سمت تیم فنی رفتم. حقیقتا اون زمان اصطلاح مدیرمحصول را خیلی نشنیده بودم. نقشی هم که داشتم چیزی بین مدیر محصول و product owner بود. دقیقتر بخوام بگم، ما یک مدیر فنی داشتیم که ساختار تیم فنی رو شکل می داد و نیروهای مرتبط را استخدام می کرد. من واسط بقیه تیم ها با تیم فنی . حالا این واسط شدن بعضی اوقات ترجمه حرفهای طرفین بود، گاهی پیگیری از دو طرف و گاهی هم تعریف محصول یا فیچر مورد نیاز. طبیعتا گاهی وزن قسمت های مختلف تغییر می کرد. همچنین در تعریف مدیرمحصول بعضی جاها مدیریت روندهای بازاریابی و توسعه کسب و کار و چیزهای دیگه هم هست که در مورد کار ما صدق نمی کرد.
به هر صورت بعد از ماه های اول فعالیت به این نتیجه رسیدیم که نیاز هست فرد تمام وقتی برای این ارتباط داشته باشیم. برای همین عملا کار تمام وقت من این شد که درگیر شکل دهی تیم محصول بشم. نکته دیگه فراگیر شدن مدل اسپاتیفای بود. که الان مدل معروفی محسوب می شود و قبل از آن زمان هم توسط چندجا مثل کافه بازار مورد استفاده بود. در مورد جزییات مدل اسپاتیفای طبیعتا اینجا نمی شه توضیح داد.
برای پیاده سازی این مدل ما دو چالش اصلی داشتیم. اولا نیاز به تعداد بیشتری نیروی دولوپر داشتیم. دوما بحثهای فرهنگ سازمانی را باید هم داخل و هم بیرون تیم درست می کردیم.
روند به این صورت جلو می رفت که علیرضا به عنوان مدیرفنی مصاحبه های استخدامی رو جلو می برد و از حدود مرداد یا شهریور من هم درگیر مصاحبه ها و تصمیم گیری برای نیروی جدید شدم. مصاحبه های استخدامی هم به این صورت بود که علیرضا از نظر فنی و من از نظر کالچری و مهارت های عمومی مصاحبه می کردیم. طبیعتا یکی از مهم ترین موضوعاتی که برام مطرح بود میزان تطبیق فرد با ساختار مدل اسپاتیفای بود. مثلا میزان تمایل به شرکت در بحث درمورد فیچرهای جدید، یا میزان تمایل به همکاری با افرادی از تخصص های دیگه و میزان کارایی در ساختارهای بدون سلسله مراتب و یا با سلسله مراتب کم.
بطور کلی روندی که ما داشتیم اینطوری بود:
· بهار ۹۷: جمع شدن اولیه تیم و شناخت محصول و تلاش های اولیه برای ایجاد محصول و تیم.
· تابستان ۹۷: انتشار نسخه های اولیه اسنپ مارکت، کامل شدن فرآیندهای بیزینسی، تعریف محصولات
· پاییز ۹۷: بلوغ اولیه تیم، ایجاد ساختار بلند مدت و تلاش برای خارج شدن از نسخه های آزمایشی
· زمستان ۹۷: تثبیت تیم اصلی، stable شدن محصولات، شفاف شدن مسئولیتها و عدم تمرکز روی فرد یا افراد خاص
· بهار ۹۸: شکستن تیم محصول به ۳ یا ۴ تیم زیرمجموعه، پیاده کردن اولیه مدل تیم های محصول محور
· تابستان ۹۸: تلاش برای تقویت و توسعه هر تیم محصول و تلاش برای کیفیت بخشی به جنبه فنی محصولات برای رشد و توسعه بیشتر
طبیعتا بعد از این زمان من از تیم جدا شدم و بعدش رو باید بقیه دوستان بگن.
این روند فصل ها یک روند مشخص شده و برنامه ریزی شده نبود. بنابر شرایط جلو رفتند. طبیعتا هر تیم چالش های خاصی داره. برای ما دو موضوع اصلی وجود داشت. چالش اول سرعت توسعه محصول و اولویتها بود. اولا توسعه یک محصول جدید در گروه اسنپ یا کنار اسنپ فود، کار پرفشاری هست. همه (از داخل و خارج مجموعه) از اولین روزها انتظار یک کار با کیفیت که به تعداد زیادی مشتری سرویس می دهد را دارند. دوما، فرهنگ درستی که در مجموعه بود، بیزینس اولویت همه موضوعات را مشخص می کند. واقعیتی که وجود دارد و درس مهمی برای من بود، اگه قرار هست یک مجموعه استارتاپی یا تجاری بزنید، قرار است یک تجارت یا بیزینس را راه اندازی کنید. همه ابعاد دیگه از جمله فنی، بازاریابی، پشتیبانی یا لاجستیک همه باید در خدمت توسعه بیزینس باشند. برای همین خیلی اوقات ما کیفیت فنی، یا طراحی محصول را فدای اولویت و فوریت های کل بیزینس می کردیم. شاید برای من و خیلی از بچه های تیم این کار دردناک بود ولی لازم بود انجام بشه.
چالش دوم، پیدا کردن یک تیم فنی بود. مسلما برای همه مشخص هست که پیدا کردن برنامه نویس یا دیگر تخصص های فنی توسعه سرویس مثل DevOps، تست یا تحلیل داده چه کار سختی است. بخصوص ما بخاطر تازه کار بودن و یا مباحث دیگه محدودیت رنج حقوقی هم داشتیم. البته در مقابل، برند و سابقه برند اسنپفود و گروه اسنپ را هم داشتیم که جذابیت ایجاد می کرد.
روند توسعه محصول
خلاصه روند محصولی ایی که ما جلو رفتیم به این شکل بود:
یک نسخه اندروید از تیرماه ۹۷، بعدش آیفون، وب سایت که در این مرحله بیشتر یه لندینگ برای دانلود اپلیکیشن ها بود.
از حدود تیرماه هم یک سیستمی برای جمع آوری و تحلیل داده های کاربران در کنار سیستم موبایلمان ایجاد کردیم.
اسنپ فود یک پنل مدیریتی داشت که ما همون رو برای نیازهای خودمون تغییر می دادیم و عملا از این پنل را از روزهای اولیه داشتیم.
کل backend را هم از اسنپ فود گرفته بودیم و تغییراتی که می خواستیم اعمال می کردیم تا زمستان ۹۷ که عمده این بخش با نسخه ریفکتور شده ما جایگزین شد.
وب سایت هم از حدود شهریور در دسترس بود.
همزمان برای مدیریت سفارش ها داخل فروشگاه یک اپلیکیشن برای کسانی که سفارشات را جمع می کردند و یک اپلیکیشن برای کسانی که موجودی کالاها را گزارش کردند توسعه دادیم که هر دو در پاییز قابل استفاده بودند.
یعنی در انتهای پاییز ما ۷ محصول داشتیم که بخش های مختلف باهاشون کار میکردند. همه این بخش ها نیازمند رفع باگ ها و توسعه قابلیتهای جدید بودند. برای کاهش زمان توسعه هم خیلی از کارها در کنار سیستم های اصلی بصورت دستی انجام می شد که طبیعتا این بخش ها هم با سرعت کمتری باید بصورت اتوماتیک تبدیل می شدند.
در بازه هایی هم در کنار حجم زیادی از تقاضاهای جدید موضوع ریفکتور و بازنویسی بخش های مختلف را داشتیم.
تقریبا در تابستان و پاییز ۹۷ هر روز قبل ساعت ۹ با این پیغام مواجه می شدم که سیستم از دسترس خارج شده و مشکلی پیش آمده. در کنار این موضوعات فنی داخلی، بخاطر بحث های اقتصادی از جمله دلار و واردات، ما مشکل جدی تهیه سرور داشتیم. حتی سرورهایی که خریداری می شدند مشکلات جدی سخت افزاری مثل هارد معیوب یا رم مشکل دار داشتند.
توسعه تیم
برگردیم به تیم. از خرداد ما تعداد بیشتری مصاحبه و تمرکز برای توسعه تیم داشتیم. ولی بخاطر مشخص نبودن روندها، فشار و سرعت اولیه زیاد و عدم تطبیق بین واقعیت و تصورات بچه ها میزان زیادی رفت و آمد در تیم داشتیم. البته بودند بچه هایی مثل سیامک، که قبل از من بودند و حداقل تا ۹۸ همراه بودند ولی تقریبا عمده تیم فنی که تابستان جذب شدند پاییز از تیم جدا شدند. این جدا شدن شامل علیرضا که مدیرفنی ما هم بود می شد. داخل تیم طبیعتا افرادی با سطح مهارتی مختلف داشتیم ولی مشکلی که وجود داشت فرهنگ متفاوت افراد و انگیزه هاشون بود. البته این مشکل دوطرفه بود و از سمت شرکت هم سیاست های شفافی هنوز شکل نگرفته بود، بیشتر ایده پردازی هایی بود که از سمت شرکت، بطور مشخص من و علیرضا بود که این دیدگاه ها باهم تضادهایی هم داشتند.
تابستان و پاییز ۹۷، به شدت تحت فشار بودم که تیم را هرچه زودتر بزرگ کنم تا در مقابل سرعت توسعه بتونیم بهتر عمل کنیم. شخصا با این دیدگاه مخالف بودم و فکر می کردم که اضافه کردن افراد بخصوص در تیم محصول باعث دوباره کاری های بیشتر و کم شدن انگیزه بچه های موثرتر می شود.
البته در مقابل، متوجه مشکلات و فشارها هم بودم. بطور مثال در شهریور ۹۷، ما یک تلاش ناموفق برای تقسیم تیم محصول به دو تیم محصول محور (بجای تخصص محور) داشتیم که به سرعت شکست خورد چون یک تعداد از بچه ها از تیم جدا شدند و عملا برگشتیم به حالت قبلی.
موضوع دیگری که تست کردیم، ما سعی می کردیم با ساختارهای اسکرام کار کنیم. ولی عملا اسپرینت های موفقی نداشتیم. همچنین کارها به شدت به اشخاص و نه به تیم وابسته بود. برای همین از آبان ماه سیستم را به کانبان تغییر دادیم. این کار باعث شد انعطاف بیشتری برای برنامه ریزی های کوتاه مدت داشته باشیم و عملا برنامه های بلند مدت را تا حدودی از دست بدیم. برای همین یکی از کارهای اصلی عملا در کنار این موضوع اتفاق افتاد. برای هر نفر سعی می کردیم یک روند کاری جداگانه روی بخش های محصول داشته باشیم و بسته به توانمندیش درگیر بخش های دیگه هم بشه. در این بازه، برای تعریف هر تسک، عین کار عموما به بچه ها گفته نمی شد، و یک موضوع کلی با مشارکت خودشون تعریف می شد. البته این به معنی ایده پردازی نبود. خیلی مواقع ایده ها از قبل مشخص شده بودند یا باگ های سیستم بود. ولی نحوه پیاده سازی و جزییات بیشتر فیچرها موضوعی بود که باید بچه ها عمدتا خودشون را درگیر می کردند. گاهی این کار تکی و گاهی گروهی بود. حالت مطلوب این بود که ما طراح گرافیکی یا فردی از جنبه دیگه بیزینس هم داشته باشیم که درکنار دولوپرها باهم این جزییات را مشخص کنند که خب نداشتیم.
این روش یک خوبی داشت، باعث می شد بچه ها با جزییات بیشتری درگیر بشند، حس مالکیت کنند و البته برای مدل اسپاتیفای هم آماده بشند. در مقابل چند بدی داشت. اولا کار به شدت به چند نفر وابسته بود که باید تسک ها را تشریح می کردند، با ذینفعان صحبت می کردند و همه را همراستا نگه می داشتند. و چون مدل کانبان بود، هر روز و بلکه هر نصفه روز این سوال مطرح می شد که خب الان روی چه چیزی کار کنم؟
نکته دیگه ایی که در تقسیم کارها سعی کردیم رعایت کنیم، نحوه تقسیم بندی بچه ها بود. بالاخره همه اینکارها برای رسیدن به اون ساختار محصول محور بود. از حدود بهمن این موضوع جدی شد. ما دو فرآیند روند کاربر داشتیم. یکی از زمان آشنایی کاربر با اسنپ مارکت تا زمان سفارش گذاری، یو دیگری از زمان پس از پرداخت تا دریافت کالا. دو تیم دیگه هم داشتیم که یکی مسئول زیرساخت بود و یکی تحلیل داده. کارهای بچه ها و جای نشستن افراد طوری تعریف شده بود که بدون تیم بندی این چهار قسمت بوجود بیایند.
بزرگترین چالش برای من در اسفند پیدا کردن آدم های به درد بخور، برای اولا مسئولیت هر تیم دوما آدم های تخصصی داخل هر تیم بود. داخل تیم پوریا و میلاد را داشتیم. فرزاد را هم بطور اتفاقی داخل یک رویداد دیدم. یکی از تجربیات جالب هم مدل جذبی بود که برای افراد با تجربه داشتیم. مصاحبه با فرزاد با فردی که کلا نمی شناسید یا تجربه کاری محدودی دارد تفاوتهایی دارد. طبیعتا میزان تخصص این افراد را می توان از همکارهای قدیمی شان پرسید. ولی بحث فرهنگ کاری و دغدغه ها موضوع متفاوتی هستند که حتی از جلسه مصاحبه هم به سختی می شود نتیجه گرفت. چرا این موضوع برای افراد با تجربه مهم تر هست؟ چون طبیعتا شما این افراد را به تیم اضافه می کنید تا جریان سازی کنند. اگه تعارض جدی بین افراد و خواسته های شما باشد خیلی بعید است که فرصت جبران داشته باشید. نکته مهم بعدی، متقاعد کردن همین افراد هست. به نظرم اگه شما تیمی دارید که برای بقیه جذابه که توش کار کنند، چی بهتر از تجربه کردن اون؟ برای چند نفر از بچه ها، این تجربه را داشتیم که گفتیم بیا، چند روز داخل تیم باش و کارهای خودت را انجام بده. لپتاپ از تو، میز و اینترنت از ما. ببین ما چه می کنیم؟ چطور برخورد می کنیم و چالش ها چیه؟ اگه خوب بود بمون اگه بد بود برو. طبیعتا این روش ریسک زیادی دارد. از المان هایی که می خواهید داخل تیم محرمانه بماند بگیرید تا بعضی روزها که روزهای بد سازمان هست و بعضی روزهای خوب. ولی از این موضوع شخصا نتیجه خوبی گرفتم. بخصوص برای افرادی که می دونستم یا احتمال می دادم تیم براشون از تکنولوژی و برند و ... مهم تره، از این روش استفاده کردیم.
خدا رو شکر با مجموعه اتفاقات، ما یک مدیر فنی، دو مدیر محصول، و برای هر موقعیت فنی تخصصی حداقل دو نفر پیدا کردیم که حداقل یک ماه در تیم فعال بودند. در جلسه پایان سال ۹۷، رسما ساختار جدید اعلام شد و بچه ها از اولین روز کاری ۹۸ داخل تیم های جدید فعالیتشون را شروع کردند. بخاطر همه مقدماتی که فراهم شده بود، قبل از جلسه ساختار به کسی اعلام نشده بود ولی فکر نمی کنم کسی هم از چیدمان جدید تعجب کرده باشد. به بیان دیگه، به هرکس دیگری از داخل تیم می گفتیم برای این ساختار تیم ها را مشخص کن، به همین صورت مشخص می کرد.
اشتباهاتم
در ماه های اول طبیعتا چالش ها و تعارض ها بیشتر بود. ولی به مرور و بخاطر کاراکتر خود بچه ها، کارها واگذار شد و من درحد تعارضات دخالت داشتم. مسئولیت پذیری برای عموم بچه ها به معنی واقعی وجود داشت.
یکی از مشکلات مجموعه اصلی ما، عدم رشد افراد داخل سازمان بود. این از اشتباهات من بود که روی این موضوع تمرکز نکردم. یعنی در عمده موارد که می خواستیم ساختاری ایجاد کنیم، برای موقعیت بالاتر و با مسئولیت بالاتر افرادی خارج از مجموعه وارد می کردیم. این موضوع را خیلی دیر متوجه شدم و اگر برگردیم حتما خیلی بیشتر روش سرمایه گذاری می کنم.
اشتباه دیگه ما، تمرکز کم روی هویت بخشی به فرد فرد بچه ها بود. داخل سازمان این مشکل نبود. هر کدوم از بچه ها که درگیر موضوعی بود، سعی می کردیم حتما خودش درگیر ارائه موضوع باشد. ولی همین روند باید برای افراد بیرون سازمان هم میبود. یعنی برای بچه ها از حضور در داخل تیم، برندی ایجاد شود. ولی مسیر این برند باید از آموزش و ارتقای سواد و تخصص افراد انجام می شد.
موضوع دیگه، اینکه اگر از اول این مسیر را طی کنم، روی خواسته هام و تشکیل تیم محصول محور، که داخل اون نه فقط افراد فنی، بلکه افراد دیگه هم حاضر باشند اصرار بیشتری می کردم. مثلا تیم محصول صفحه اول موبایل و وب با حضور حداقل یک نفر از تیم مارکتینگ. یا مثال های دیگه.
به هر صورت، اسنپ مارکت در طول حدود ۱۸ ماهی که در اون مشغول به کار بودم، ۷ محصول مختلف توسعه داد که بعدا همه این محصولات به روزرسانی و ارتقا داشتند. تیم از ساختار پراکنده و ۳-۴ نفره به ۲۲ نفر رسید و قطعا نقاط ضعف فراوانی داشت.
خوشبختانه روزی که مجموعه جدا شدم، افراد توانمندی در تیم بودند و وابستگی تیم به من حداقلی بود. امیدوارم، هر روز از اسنپ مارکت و بخصوص بچه هایی که باهاشون همکاری داشتم بیشتر بشنونم و موفقیت های بیشتری ازشون ببینیم.
مطلبی دیگر از این انتشارات
چرا داکیومنت نویسی در شرکت های نرم افزاری جدی گرفته نمی شود ؟!
مطلبی دیگر از این انتشارات
با Redux دوست باشیم (بخش اول)
مطلبی دیگر از این انتشارات
تأثیر کاخ سفید در افزایش دوستی بین توسعهدهندههای یک تیم