اصطلاح DX یا تجربه توسعه دهنده شاید کمی فنی و ناآشنا به نظر برسد اما برای ساده کردن کار میتوانیم سراغ هم خانواده آن UX برویم! تجربه کاربری یا UX که برای شناخت آن لازم نیست مهندس حرفهای باشید، شباهت زیادی با DX دارد؛ درواقع DX همان UX است! البته با این تفاوت که کاربر محصول، پروژه، API و… شما در این مفهوم یک برنامه نویس باشد.
معمولا به اهمیت DXها کمتر توجه میشود مگر اینکه ارائه دهنده محصول (API) در برابر رقیبانش احساس خطر کند. اما DX مفهومی بسیار مهم است؛ برای فهمیدن دلیل این موضوع و آشنایی بیشتر با اصطلاح تجربه توسعه دهنده با مقاله همراه باشید.
تجربه توسعه دهنده (Developer Experience) چیست؟
گفته شد DX درواقع مانند همان تجربه کاربری است با این تفاوت که کاربر محصول یک برنامه نویس است. DX به طور کلی احساسات و تجربه یک توسعه دهنده یا همان ادراکات کلی یک توسعه دهنده، هنگام تعامل با یک محصول فنی و API است. به عنوان مثال فرض کنید هنگامی که توسعه دهنده از محصول شما (API یا نرمافزار) استفاده میکند و مشتری شماست یا هنگامی که یک توسعه دهنده محصول شما را طراحی میکند، در واقع با تجربه توسعه دهنده سر و کار داریم.
درواقع همه چیز در مورد بهینه سازی گردش کار، فرآیندها، محیط کار و موارد دیگر توسعه دهندگان است تا آنها بتوانند تجربه معنادار و لذت بخشی داشته باشند. سادهترین راه برای درک مفهوم تجربه توسعه دهنده (DX)، استفاده از مفهوم تجربه کاربری است که احتمالاً بیشتر با آن آشنا هستید! DX همچنین از هدر رفتن وقت توسعه دهندگان در مواجه باAPI جلوگیری میکند. به زبان ساده DX به برنامه نویسان کمک میکند و کار را برایشان سادهتر میکند.
پایههای مهم تجربه توسعه دهندگان چیست؟
سه پایه مهم از تجربه توسعه دهندگان وجود دارد این موارد شامل قابلیت استفاده، قابلیت یافتن، و اعتبار است. همچنین قابل ذکر است، (این سه مورد در فهرست معروف پیتر مورویل از پیشگامان UX برای تجربه کاربر نیز قرار دارند.) در ادامه درباره اهمیت هرکدام توضیح بیشتری میدهیم.
قابلیت استفاده یعنی استفاده از محصول (API یا نرم افزار و…) شما چقدر آسان است. اما قابلیت یافتن این است که کاربران (توسعه دهندگان) چقدر سریع و آسان می توانند عملکردهای مورد نظر خود را پیدا کنند. و آخرین مورد اعتبار است که به طور کلی به اعتماد کاربر به محصول شما برای حل مشکلاتش است و به دید بلند مدت مربوط میشود.
چرا تجربه توسعه دهندگان (DX) مهم است؟
DX به نوعی ستونهای مهمی در کار شما هستند به خصوص هنگامی که محصولتان رقیبهای فراوانی دارد. همانطور که گفته شد مشتری محصول شما در این بحث توسعه دهندگان هستند که زمان محدودی دارند. از طرفی تجربههای بد توسعه دهنده هنگام مواجهه با API پیچیده تاثیر منفی بر خروجی کار میگذارد و اتلاف انرژی و وقت توسعه دهنده در این مواجهه باعث جذب شدن او به کمپانیهای رقیب میشود. از طرفی توسعه دهنده که مشتری شماست از جزئیات کار و محصول شما اطلاع کافی ندارد و با کمک DX خوب میتوان اعتماد و درک درستی از محصول را برای توسعه دهنده فراهم کرد. به زبان ساده با تجربه توسعه دهنده بهتر، توسعه دهنده با روحیه بهتر کار میکند و محصولات بهتری ایجاد میکند و در نهایت سود شما به عنوان صاحب کار افزایش مییابد. برای درک بهتر اهمیت DX میتوانید در ادامه کار تیم تجربه توسعه دهنده را مطالعه کنید.
ارکان کلی تجربه توسعه دهنده چیست؟
تجربه توسعه دهنده دارای ستونها یا ارکانی است که مشخص میکند چه زمانی تجربه مثبت است و چه زمانی اینگونه نیست. تعدادی از ارکان در ادامه آمده که به بررسی هر کدام میپردازیم:
کارکرد
اساس تجربه توسعه دهنده، به اندازه نقشی است که ابزار مربوطه برای انجام یک فعالیت ارائه میدهد. رابط خوب و بازاریابی قوی و… الزاما نمی توانند عملکرد بد را پنهان کنند. اهمیت کارکرد DX بسیار بیشتر است.
ثبات
در کنار کارکرد، ثبات قدرت و کارایی محصول شما نیز مهم است. بنابراین لازم است که خطاهای محصول به سرعت برطرف شوند تا آسیبی به کاربران وارد نشود و همچنین از محصول شما روی برگردان نشوند.
راحتی استفاده و وضوح
دسترسی سریع و راحت به اسناد، قطعهها و… تعامل و رضایت کاربر از محصول را افزایش میدهد. همچنین لازم است دید کاملی از پیامدها و تاریخچه و… در دسترس باشد.
کار تیم تجربه توسعه دهنده چیست؟
با توجه به اهمیت تجربه توسعه دهنده، بهتر است که تیمی برای DX داشته باشد. تیم تجربه توسعه دهنده دارای وظایف زیادی است که در ادامه موارد مهم را بررسی میکنیم:
نوشتن مستندات فنی
مستندات فنی شامل یادداشتهای انتشار، پایگاههای دانش، دستورالعملهای کاربر و هر نوع نوشتهای است که موارد استفاده از یک محصول یا خدمات توصیف میکند. تیم تجربه توسعه دهنده باید مستندات مربوط به فرآیندها و گردش کار تیم توسعه را ارائه دهد که به استانداردسازی کمک کند؛ علاوه بر آن در هنگام استخدام توسعه دهندگان اهمیت دارد. همچنین اسناد فنی برای توسعه دهندگان خارجی که از API برنامه شما استفاده می کنند بسیار کاربردی است.
انتخاب ابزارهای توسعه
تیم تجربه توسعه باید ابزارهای لازم برای تیم توسعه و انجام کار را انتخاب کند. آنها باید ابزارها را بر اساس عملکرد و سهولت استفاده و استانداردهای لازم انتخاب کنند تا فرایند کار درست پیش رود.
تعریف گردش کار
تیم تجربه توسعه دهندگان باید علاوه بر استانداردسازی ابزار، جریان کار را نیز استانداردسازی کند! در نهایت هدف این کار، کارآمد کردن فرآیندها و سادهتر کردن کار برای توسعه دهندگان است که در نهایت باعث افزایش کارایی محصول میشود.
انتخاب زبان برنامه نویسی
اتخاب درست زبان برنامه نویسی اهمیت فراوانی در فرآیند کار دارد. زبان برنامه نویسی میتواند به عیب یابی بهتر نیز کمک کند. بنابراین برای تسهیل کار یکی از وظایف تیم تجربه توسعه دهنده است.
چطور DX بهتری برای بهبود تجربه توسعه دهنده ارائه دهیم؟
اکنون که با مفهوم و اهمیت تجربه توسعه دهنده و وظایف تیم مربوطه آشنا شدید، میتوانید درک بهتری از روشهای ارائه DX بهتر داشته باشید. در کل برای بهبود DX باید فرآیند استفاده، فهم و خطایابی API را راحتتر کنید. همچنین رعایت و بهبود DX بر کیفیت کدها اثر میگذارد و سرعت توسعه کار افزایش میدهد. علاوه بر این در صورتی که DX رعایت شده باشد، اعضا جدید راحتتر پیشرفت میکند. در ادامه چند مورد که به این فرآیند کمک میکند را شرح خواهیم داد.
زمان متمرکز
سادهترین و ابتداییترین کار برای بهبود تجربه توسعه این است که مطمئن شوید توسعه دهندگان شما زمان کافی و متناسب برای انجام کار خود دارند. با توجه به زمانبر بودن فرآیند توسعه نرمافزار و… اهمیت توجه به زمان آشکار میشود. برای بهبود شرایط زمانی کافی است که به شکایتهای مربوط به کمبود وقت توجه کنید.
مستندات کامل
لازم است برای بهبود کار همه موارد یادداشت شوند. یادداشت کامل درواقع میتواند پایگاه کاملی از دادهها را در اختیارتان قرار دهد. علاوه بر کامل بودن مستندات طبقه بندی و نظم دادههای آن برای دسترسی و فهم بهتر اهمیت بالایی دارد زیرا توسعه دهنده برای پی بردن به API، مستندات را مطالعه خواهد کرد.
رعایت استانداردها
گفته شد وظیفه تیم تجربه توسعه دهندگان، استاندارد سازی ابزار، زبان برنامه نویسی و جریان کار است. رعایت استانداردها به برقراری ارتباط بهتر توسعه دهنده با محصول کمک میکند.
انتخاب درست ابزار
ابزار برای فرآیند کار بسیار مهم است و گاهی توسعه یک محصول به ابزارهای مورد استفاده بستگی دارد. بنابراین انتخاب محصول درست و استاندارد و همچنین مستند کردن موارد مربوط به آن از اهمیت بالایی برخوردار است.
مشخص کردن دستورالعملها
مشخص کردن دستورالعمل یا اصطلاحا Code of Conduct برای نظم کار و در نتیجه راحتی توسعه دهندگان اهمیت دارد. به خصوص در کارهای گروهی اهمیت دستورالعملها بالاتر میرود. مثلا هنگامی که چند نفر کد مینویستد، با کمک دستورالعمل راحتتر میتوان کدهای مشابه را یافت و ریویو کرد.
منسوخ کردن متدهای قدیمی به جای حذف آنها
اگر قصد تغییر متد را دارید بهتر است فرآیند آهستهتر انجام شود و به جای حذف متدها میتوانید آنها را منسوخ کنید. منسوخ کردن یا اصطلاحا Deprecations به توسعه دهندگان کمک میکند تا راحتتر خود را با متدهای جدید وفق دهند.
کاهش گامهای غیر کدی
گامهای غیر کدی مواردی مانند تماس برای گرفتن خدمات، ثبت نام برای استفاده از محصول و… است. این موارد روند کاری برنامه نویس را کند و مختل میکنند؛ بنابراین کاهش این گامها به ساده شدن استفاده از API کمک میکند. همچنین SDK با زبانهای مختلف برنامه نویسان تهیه کنید. اگر معتقد هستید این فرآیند باعث گرفتن زمان و منابع شما میشود، آنها را به صورت پروژه متن باز در سرویسهای میزبانی وب قرار دهید تا برنامه نویسان نیز در رفع باگهای احتمالی کمک کنند و روند کار شما توسعه یابد.
ایجاد همدلی و کاهش زمان بهبود تجربه
اگر کار به صورت گروهی انجام میشود، بهتر است فضای کاری مناسب تدارک دیده شود. همچنین همکاری و همدلی افراد تیم به بهبود نتیجه کار کمک خواهد کرد. از طرفی با ورود توسعه دهنده جدید باید زمانی را طی کند تا به پیشرفت کامل برسد و با شفاف سازی و پشتیبانی میتوان این زمان را کاهش داد.
افزایش پشتیبانی
برای بهبود کار لازم است که پشتیبانی از کاربران وجود داشته باشد. بهترین حالت این است که تیم پشتیبانی برای پاسخگویی به سوالات کاربران وجود داشته باشد و دسترسی به تیم پشتیبانی در زمانهای مختلف مقدور باشد.
در کل روشهای فراوانی برای بهبود تجربه توسعه دهنده وجود دارد که برخی از آنها را نام بردیم. با رعایت این موارد کار توسعه دهندگان و برنامه نویسان راحتتر خواهد شد و در نهایت به ارائه محصول بهتر و در نتیجه سودآوری بیشتر کمک خواهد کرد.
هزینه و مزایای DX برای کمپانی چیست؟
همانطور پیش از این گفته شد DX به نوعی ستون کار توسعه است و اهمیت آن زمانی افزایش پیدا میکند که بخواهید محصولتان با محصولات دیگر رقابت کند. اما بهبود DX که اهمیت فراوانی دارد هزینههایی را نیز برای کمپانی در بر خواهد داشت. البته این هزینه با توجه به دید بلند مدت آن ناچیز خواهد بود.
با مفهوم و اهمیت تجربه توسعه دهنده (DX) آشنا شدیم و همچنین دانستیم با رعایت کردن DX و برخی موارد، کارکرد و مشتریهای محصول (نرمافزار یا API) افزایش پیدا میکند و سود کمپانی شما زیاد میشود اما قطعا DX هزینههایی برای کمپانی خواهد داشت اما در نهایت اهمیت DX بسیار زیاد است. امیدوارم مطالعه این مقاله برای شما مفید واقع شده باشد. لطفا نظر خود را با ما به اشتراک بگذارید، نظرات شما به بهبود کار ما کمک خواهد کرد.