چرا توسعه دهندگان مستندات نامطلوبی می نویسند؟ + راه حل رفع این مشکل
چرا نوشتن مستندات ضعیف بین توسعه دهندگان رایج است؟ عدم وجود علاقه، مهارت و زمان؟ چرا از مستندات ویدیویی استفاده نمی شود؟
بدون شک هر فردی تلاش می کند که یک برنامه نویسی نرم افزار خوب باشد، اما اگر صادق باشیم، نوشتن مستندات از بخش های مورد علاقه فعالیت های یک برنامه نویس نمی باشد.
زمانی که نرم افزار به یک واقعیت بدل گردید، بر پیچیدگی فرآیند نیز افزوده شد، این کار در ابتدا بسیار ساده بود اما مشکل واقعی زمانی شروع شد که کاربران به طور انبوه شروع به استفاده از نرم افزارها نمودند، از طرفی اعضای جدید تیم نیز به مستندات نیاز دارند و مستندات کد درست و مناسب تنها راه برای شروع کار می باشد.
از سوی دیگر نویسندگی مهارتی است که اغلب در جهان نادیده گرفته می شود، نوشتن جملات و پاراگراف هایی با ساختار خوب برای افراد مبتدی و نیز حرفه ای دشوار می باشد. مقاله ای جالب در SmartBear تاثیرات مثبت نوشتن، برای توسعه دهندگان نرم افزار را مورد بحث و بررسی قرار می دهد.
با این وجود در دنیای سیلیکون ولی و هاب های آی تی، نوشتن مستندات احتمالا یکی از نفرت انگیزترین جنبه ها از توسعه نرم افزار می باشد و بسیاری از توسعه دهندگان اغلب با یافتن دلایل عجیب کار خود را توجیه می کنند. دلایل متعددی پشت پرده این رفتار نامعمول وجود دارد و در ادامه به شرح آنها پرداخته می شود، با ما همراه باشید.
چرا توسعه دهندگان مستندات بد و نامطلوبی می نویسند
مستندات نامطلوب و ضعیف یک سناریوی رایج در بسیاری از پروژه های توسعه نرم افزار می باشد، دلایل متعددی برای چنین شرایطی وجود دارند که برخی از آنها منطقی و برخی دیگر نیز غیرمنطقی به نظر می رسند.
توسعه دهندگان ارتباط بسیار نزدیکی با پروژه ها دارند
واقعیت این است که توسعه دهندگان ارتباط بسیار نزدیکی با پروژه های خود دارند و حتی نوشتن مستندات برای آن را غیرضروری می پندارند و مطلبی در Writing Assist تاثیرات این ارتباط نزدیک که مانع نوشتن مستندات می شود را مورد بحث قرار داده است. تاثیر آن از دیدگاه سایر اعضای تیم، کاربران نهایی و کمپانی که با آنها سر و کار دارد مورد بحث قرار گرفته و به بیان این افراد توسعه دهندگان به سایرین توجه نمی کنند و جزئیات را به وضوح و به طور دقیق برای خوانندگان شرح نمی دهند. ارتباطات پیچیده ای که توسعه دهندگان با کد خود دارند، اغلب به نوشتن مستندات بسیار ضعیف می انجامد، چرا که آنها از همه چیز آگاهی کامل دارند و تشریح مسائل به صورت واضح را امری کم اهمیت می پندارند.
تمایلی برای نوشتن مستندات ندارند
بسیاری از توسعه دهندگان ضرورتی برای نوشتن مستندات نمی بینند و زمانی هم که اصرار برای انجام این کار وجود دارد مستندات بسیار بد و ضعیفی را می نویسند، چرا که آنها علاقه ای به انجام این کار ندارند. نتیجه این کار چیست؟ توسعه دهندگان ناراضی که مستندات بسیار بدی را تحویل داده اند و تنها خودشان از نوشته ها سر در می آورند.
توسعه دهندگان نیازی به مستندات ندارند
اگر شما نیز یک توسعه دهنده هستید، بنابراین احتمالا دلایل اینگونه تفکرات را می دانید. توسعه دهندگان می دانند که در حال کار بر روی چه چیزی هستند و به همین دلیل از نوشتن مستندات سر باز می زنند. از سوی دیگر ممکن است همان توسعه دهندگان وقتی که پس از چند هفته، ماه یا سال مجددا به کدهای خود مراجعه می کنند، پیچیدگی کار خود را فراموش کرده باشند. بدین ترتیب بدون مستندات مناسب و یا نوشتن کامنت در کدها، نگهداری و ارتباط به دشواری صورت پذیرفته و اهمیت و اولویت کمی به آن داده می شود.
نوشتن مستنندات نیازمند صرف زمان و تلاش است
نوشتن کار ساده ای نیست و این فرآیند به تفکر انتقادی، صبر و تلاش نیاز دارد و برای توسعه دهندگان نوشتن مستندات کاری طاقت فرسا می باشد. مبنی بر دیدگاه بسیاری از توسعه دهندگان این کار تلف کردن زمان و تلاش است، آنها واقف اند که صرف زمان چشم گیر برای ساخت یک مستند خوب الزامی می باشد. توسعه دهندگان ترجیح می دهند تا این زمان و تلاش را صرف پیاده سازی امکانات جدید، رفع مشکلات و از بین بردن باگ ها نمایند.
فشار برای تحویل پروژه در موعد مقرر
توسعه دهندگان باید پروژه را در زمانی که وعده داده شده تحویل مشتریان خود بدهند و در این صورت کسی برای نوشتن مستندات برای پروژه اهمیتی قائل نمی شود. کمپانی می خواهد پروژه را در حداقل زمان ممکن تحویل مشتری دهد و این شرایط به دلیل نیازمندی های مشتری است و اولین چیزی که از قلم می افتد مستندات پروژه است. تنها استثنا زمانی است که مشتری صریحا به نیازمندی خود برای مستندات اشاره می کند.
برنامه نویسان کمی تنبل هستند
حتی با وجود مهارت های کافی در نوشتن مستندات خوب، بسیاری از توسعه دهندگان مایل به نوشتن آنها نیست و برخی اوقات دلیل این کار تنبلی آنها است. مقصران اصلی در این میان آن دسته از توسعه دهندگانی هستند که تنها به فکر دریافت دستمزد برای کار خود بوده و تمایلی به انجام کاری که در ازای آن پولی دریافت نمی کنند، ندارند.
توسعه و نوشتن دو مهارت کاملا متفاوت هستند
برنامه نویسی نیازمند استدلال منطقی و فضایی است، ویژگی هایی که اغلب وابستگی زیادی به ریاضیات دارند. از سوی دیگر نوشتن نیز نیازمند مهارت های مختص به خود می باشد، اما ذهنیت آنها کاملا متفاوت است. به اختصار می توان گفت که نوشتن و برنامه نویسی دو مهارت کاملا متفاوت می باشند که نیازمند فرآیندهای تفکر و تسلط متفاوتی هستند.
به بیان Bernard Meisler در مقاله ای از Atlantic، بسیاری از مهندسین قادر به نوشتن یک جمله واحد و منسجم نیز نمی باشند، چه برسد به نوشتن یک پاراگراف و این شرایط اغلب برای بسیاری از توسعه دهندگانی که خودشان مستندات را می نویسند صحت دارد.
تغییر مکرر کدهای منبع
توسعه چابک روش جدیدی برای فرآیند توسعه محسوب می شود، این روش سریع بوده و حمایت چندانی از نوشتن مستندات نمی کند. دلیل این شرایط بسیار ساده است، کدها به طور مکرر تغییر پیدا می کنند و همین امر نوشتن مستندات برای آنها را به چالشی تبدیل می نماید و این شرایط به مستندات بسیار ضعیف و یا عدم وجود هیچ گونه مستندی بدل می شود.
غرور
غرور ممکن است منجر شود تا بسیاری از توسعه دهندگان از نوشتن کامنت یا مستندات برای کار خود سر باز زنند. حتی با وجود داشتن توانایی خوب در نوشتن مستندات، بسیاری از برنامه نویسان هیچگونه تمایلی به نوشتن مستندات نشان نمی دهند و مسئولیت های خود در مقابل سایرین که باید کد آنها را درک کنند نادیده می گیرند.
دست کم گرفتن خود
این مورد کاملا در تضاد با مورد آخر قرار دارد، بسیاری از توسعه دهندگانی توانایی خود در نوشتن مستندات را دست کم می گیرند، به بیان یکی از کاربران Quora به نام Daniel Beck که نویسنده فنی است، بسیاری از توسعه دهندگان با نگرشات منفی از این کار شانه خالی می کنند.
مهارت های نوشتاری من چندان خوب نیست، انگلیسی من ضعیف است، از نوشتن متنفرم، این کار من نیست، کسی مستندات مرا نمی خواند، نوشتن مستندات به اندازه نوشتن کد اهمیت ندارد، سر من شلوغ است. این نمونه ها از جمله موارد رایج است که توسعه دهندگان به خود می گویند و اگر آنها اینگونه فکر کنند نتیجه نامطلوبی را دریافت خواهند کرد.
راه حل چیست؟
مستندات ضعیف به یکی از مشکلات بزرگ در صنعت کنونی تبدیل شده است، Livecoding.tv یک پلتفرم کدنویسی برای برادکستینگ زنده فرآیند توسعه محصول می باشد. هر تیمی قادر به استفاده از این پلتفرم جهت ذخیره سازی فرآیند توسعه خود می باشد و می تواند آن را تنها برای استفاده داخلی بکار ببرد. پروژه های اپن سورس نیز می توانند از مزایای پلتفرم بهره مند شده و روند همکاری را تقویت نمایند.
استفاده از مستندسازی ویدیویی روش کار این پلتفرم است، توسعه دهنده کار خود را ضبط می کند و تنها سایر اعضای تیم و یا نویسنده فنی بالقوه که بر روی مستندات پروژه کار می کند، قادر به استفاده و کار با آن هستند.
مستندات ویدویی روش بهتری نسبت به مستندات مکتوب هستند و تلاش اضافه ای از جانب توسعه دهنده را طلب نمی کنند. تمامی گام های توسعه را می توان در ویدیو ذخیره کرده و در زمان نیاز به آنها مراجعه کرد. نکته مثبت اینجاست که اعضای جدید تیم نیز با استفاده از سرنخ های موجود در ویدیوی ضبط شده و کمک سایر اعضای تیم، به سرعت می توانند با پروژه آشنایی پیدا کنند، در نهایت ایده کلی بهبود اشکالات مستندات کتبی است.
از سوی دیگر تیم یا کمپانی می تواند ویدیو را به یک نویسنده فنی دهد تا آن فرد مستندات را برای کاربران نهایی بنویسد، بدین ترتیب در زمان نیز صرفه جویی می شود. این رویکرد برای تیم های چابک نیز که به طور مستمر کدهای خود را تغییر می دهند، روش بسیار خوبی قلمداد می شود.
مزایای مستندات ویدیویی به طور خلاصه:
1. نیاز برای مستندات مکتوب برای تیم داخلی را از بین می برد.
2. فرصت بسیار خوبی را در اختیار تیم های چابک قرار می دهد تا تغییرات را ردیابی و بررسی نمایند.
3. به نویسندگان فنی کمک می کند تا جزئیات را بهتر درک کنند.
4. در زمان و تلاش توسعه دهندگان صرفه جویی کرده و آنها را قادر به متمرکز کردن انرژی خود بر روی نوشتن کد بهتر و پیاده سازی امکانات می نماید.
5. جهت درک بهتر خطاهای اعضای تیم در جریان کاری مورد استفاده قرار گرفته و بهره وری و کارآیی را ارتقا می بخشد.