اگه برنامهنویس هستین و این پست رو میخونین، به احتمال زیاد با اصطلاح DevOps آشنا هستین؛ اما آیا تا حالا اصطلاح "DesignOps" به گوشتون خورده؟ ارتباط اون با تیم طراحی رو میدونین؟
احتمالا برای درک کردن مفهوم DesignOps اون رو یه جورایی به DevOps ارتباط دادین. فکر خوبیه اما باید بدونین با این مقایسه فقط میتونین قسمت کوچیکی از این مفهوم رو درک کنین، دقیقا مثل نگاه کردن به توده بزرگی از یخ شناور توی آب که فقط نوکش دیده میشه!
DesignOps موضوع موردعلاقهی تیمهای طراحیه، چرا که کمک میکنه بتونن ارزش ایجاد شده در نرمافزار رو خیلی راحتتر و بهتر به افراد مختلف از جمله تیمها و مشتریان سازمانشون برسونن.
DesignOps، روند طراحی رو در یک سازمان، برنامهریزی، تعریف و مدیریت میکنه. هدف اون، اطمینان از اینه که تیم طراحی بتونه با راندمان بالا، خروجیهایی با کیفیت بالا طراحی کنه و از همه مهمتر چگونگی برقراری ارتباط بین تیم طراحی و توسعه رو مدیریت میکنه.
توی این پست میخوایم مقایسهای رو بین DesignOps و DevOps مرور کنیم که با تاثیرپذیری از مصاحبههای انجام شده با طراحان در سازمانهایی مانند Pinterest، Airbnb ،Uber ،Autodesk ،Expedia و... انجام شده.
ابزارهای توسعهدهندگان و طراحان همیشه یکسان نیستند
بیاین در قدم اول فرآیند DevOps رو مروری کلی کنیم:
به عنوان یک برنامهنویس در فرآیند توسعهی بخشی از یک نرمافزار، ممکنه بخواین کد بخشی از پروژه رو جدا بزنین. برای انجام این کار از ویرایشگرهایی مثل Textedit، نوتپد، Emacs و VI استفاده میکنین و در کناراون به ابزارهایی برای توسعهینرمافزار مثل IDE، کنترل ورژن و Data repos هم نیاز دارین؛ در نهایت، برای یکپارچهسازی قسمتهای مختلف کد با بقیهی بخشهای برنامه، اون رو در یک سیستم CI قرار میدین تا مورد تست و آزمایش خودکار قرار بگیره.
یک سری سیستمهای عملیاتی هم وجود دارن که کمک میکنن، بتونین مهارت کدنویسی خودتون رو بهبود بدین، در مشارکت با بقیه به درستی کار کنین تا در خروجی کارتون نتیجهی بهتری داشته باشین. برای مثال مجموعهای از فرآیندها مثل Agile و یا ابزارهای مدیریت پروژه مثل Jira از این جمله سیستمهای عملیاتی هستن که انتخاب هر کدوم از اونها، تصمیم مهمی محسوب میشه.
نکتهای که شاید هیچوقت به اون فکر نکردین اینه که در پیشبرد پروژههای طراحی هم فرآیندهایی مشابه به فرآیندهای جاری در تیمهای توسعه انجام میشه!
به دنیای DesignOps خوش آمدید!
بعضی سیستمهای DesignOps، فقط فرآیند طراحی رو مدنظر قرار میدن و از اون پشتیبانی میکنن و بعضی سیستمهای دیگه، تیم طراحی رو در تعامل با تیم توسعه میبینن و بر اساس اون عملیات طراحی رو برنامهریزی میکنن تا مطمئن بشن که اهداف طراحی با چیزی که تیم توسعه توی ذهنش داشته مطابقت داشته باشه و بهدرستی اجرا بشه.
نحوهی همکاری، برقراری ارتباط، تحویل محصول و مشارکت با تیم توسعه، بخشهای اصلی DesignOps هستن.
خیلی از سازمانها برای مدیریت پروژه در بخش طراحی هم از ابزارهایی مثل Github، Jira یا Confluence استفاده میکنن، یعنی همون ابزارهای مورد استفاده برای تیمهای برنامهنویسی!
مهمه که بدونین این ابزارها معمولا فرآیندهای موردنیاز تیم طراحی رومدنظر قرار ندادن و نیاز اونها درعملیات طراحی رو برطرف نمیکنن.
کاری که اعضای تیم طراحی انجام میدن، تقریبا هیچ شباهتی به کار برنامه نویسها نداره!
در هر مرحله از فرآیند طراحی باید از ابزارها و روشهای مختلفی استفاده بشه. طراحها به جای استفاده از IDEها (یا ابزارهای توسعه برنامهنویسی)، از ابزارهای گرافیکی متنوع استفاده میکنن؛ در محیطهای اوپن سورس به طور اشتراکی کدنویسی نمیکنن و کدی رو به اشتراک نمیگذارن؛ بلکه ترکیبی از فرمتهای گرافیکی برداری و خطی رو استفاده میکنن که درسیستمهای اختصاصی و مشخصی ساخته میشن.
در عین حال، گاهی اوقات روند رو به رشد ایجاد سیستمهای طراحی، افراد طراح رو وادار میکنه تا روی فایلهایی کار کنن که در بعضی سطوح با کدها در ارتباط هستن. اینجا جاییه که باید نقطهای برای تعامل بین طراحان و توسعهدهندگان به وجود بیاد.
این موضوع شرایط رو برای طراحها پیچیده میکنه؛ چون بخش مرتبط با کدنویسی به ابزارهای کاملا متفاوتی نسبت به ابزارهای طراحی نیاز داره. بنابراین لازمه که طراحها از نحوهی استفاده از سیستمهایی که توسعهدهندگان بیشتر ازشون استفاده میکنن، آگاه باشن.
طراحی و توسعه، دو کار کاملا متفاوت و در عین حال کاملا مرتبط هستن.
خودکارسازی عملیات توسعه وعملیات طراحی باید به نحوی سازماندهی بشه که این تفاوت و ارتباط رو بتونه به خوبی مد نظرش قرار بده.
سازماندهی تیمهای طراحی
سازمانهای مختلف روشهای متفاوتی رو برای مدیریت و سازماندهی تیمهای طراحی خودشون انتخاب میکنن.
بعضی از سازمانها تیمهای طراحی رو در یک گروه واحد متمرکز میکنن و اعضای تیم رو به پروژههای مختلف اختصاص میدن. در این مدل اعضای تیم وظایف خودشون رو به طور مستقیم از مدیر طراحی دریافت میکنن و گزارش کارشون رو هم به مدیر طراحی تحویل میدن.
توی سازمانهای دیگه برعکس این کار انجام میشه: طراحان به طور مستقیم در تیمهای مرتبط با هر پروژه و برای کمک به مدیریت نیازهای خاص طراحی اون استخدام میشن. در واقع طراح به عنوان یک عضو توی تیم توسعهی محصول حضور داره و به مدیر تیم توسعه گزارش میده.
نتیجهگیری
در انتها باید گفت، فرهنگهای مختلف سازمانی و تیمی به راهحلهای مختلفی برای برقراری ارتباط بین تیمها دست پیدا میکنن و این امر به عوامل زیادی بستگی داره.
یکی از مهمترین این ارتباطات هم ارتباط بین تیم طراحی و تیم توسعه است؛ چون تیم طراحی، با یک طرح خوب میتونه معرفی خوبی از کار تیم توسعه به کاربرها ارائه بده و در مقابل، یک طراحی بد هم میتونه کار خوب تیم توسعه رو زیر سوال ببره.
چیزی که خیلی مهمه اینه که بتونیم، راهحلی هوشمندانه و کارا پیدا کنیم تا ارتباط بین اعضا توی تیمهای مختلف رو راحتتر کنیم و محیطی رو ایجاد کنیم که افراد بتونن به خوبی همکاری کنن.
پلتفرم ابری سکو، برای توسعه سرویسهای شما دنیایی مدرن ساخته است، برای خواندن مقالههای بیشتر به بلاگ سکو سر بزنید.
منبع: