فناوری زیر ذره‌بین«رادار»

شرکت ثات‌ورکس (ThoughtWorks)1 هر شش ماه گزارشی را با نام «رادار فناوری» (Technology Radar)منتشر می‌کند و در آن به تغییرات اخیر صنعت نرم‌افزار (البته از دیدگاه خودش) می‌پردازد.
در این گزارش که قریب ۲۰ تن از کارشناسان این شرکت تحت عنوان (TAB) در تهیه آن مشارکت دارند، تغییرات روش‌‌ها، بستر‌‌ها، ابزا‌رها و غیره که اخیرا مورد توجه قرار گرفته‌‌اند، از جهت کارآیی در پروژه‌های رسمی (Enterprise/Commerical)مورد بررسی قرار می‌گیرند.در این گزارش به دامنه وسیعی از موضوعات مورد بحث در تولید نرم‌افزار پرداخته می‌شود؛ موضوعاتی هم‌چون پروتکل‌های ارتباطی و سیاست‌های امنیتی تا پایگاه‌های داده و زبان‌های برنامه ‌نویسی و حتی چارچوب‌هایی هم‌چون AngularJS! این شرکت چندی پیش با ارایه Technology Radar – JANUARY 2015 در آخرین روز‌های سال ۲۰۱۴ میلادی به استقبال تعطیلات کریسمس رفته! که می‌توانید آن را درhttps://slmd.ir/4r ببینید.

ساختار
گزارش رادار در قالب دایره‌ای متشکل از چهار ربع دایره با تعدادی حلقه‌های متحدالمرکز ارایه می‌شود که در آن فناوری‌ها و روش‌های مورد بحث به شکل نقاطی روی رادار (Blip)هانمایش داده می‌شوند.
چهار ربع دایره نشانگر چهار دامنه متفاوت مورد بحث هستند:

  • ابزار‌ها (Tools): ابزار‌هایی که در فرآیند توسعه و نگهداری نرم‌افزار کاربرد دارند در این بخش قرار می‌گیرند، هم چون Grunt.js، Gitlabو Docker
  • زبان‌ها و چهارچوب‌ها: (Languages & Frameworks) تغییرات زبان‌های برنامه‌‌نویسی و چهارچوب‌های نرم‌افزار نیز در رادار مورد بحث و بررسی قرار می‌گیرند
  • بسترها: (Platforms)سرویس‌های Cloud، ابزار‌هایی هم‌چون CoreOS،MariaDB، گوشی‌های موبایل یا حتی سرویس‌هایی که API‌های کاربردی‌ را ارایه می‌کنند در ذیل این عنوان قرار می‌گیرند.
  • تکنیک‌ها: (Techniques)مفاهیم مربوط به روند توسعه نرم‌افزار و همچنین چگونگی ساختار و معماری نرم‌افزار تحت این عنوان در رادار جا می‌گیرند. شاید بتوان گفت این ربع دایره مهم‌‌‌ترین بخش رادار به حساب می‌آید.

و اما حلقه‌های متحدالمرکز به بلوغ روش یا ابزار مورد نظر توجه دارد که کاربرد و مخاطره استفاده از آن را مورد بررسی قرار می‌دهد.در این رادار چهار حلقه وجود دارد:

  • Adopt: نقاطی که در این بخش قرار می‌گیرند، بالغ‌ترین‌ها در نوع خودشان به حساب می‌آیند و آماده استفاده و بهره‌برداری‌اند؛ به عبارت دیگر، برای استفاده از روش‌ها یا ابزار‌های موجود در این بخش زمان را از دست ندهید!
  • Trial: قرار گرفتن نقاط در این منطقه به این معنی نیست که آن‌ها برای استفاده آماده نیستند، اما توصیه می‌شود بسته به میزان مخاطره پروژه، به دقت مورد بررسی قرار گیرند و سپس استفاده شوند.
  • Assess: نقاطی که در این بخش قرار می‌گیرند همچنان کاربردی‌اند اما نه برای همه. به عبارت دیگر روش‌ها و ابزار‌های قرار گرفته در این بخش، پیش از استفاده در پروژه حتما باید مورد تحقیق و آزمون قرار گیرند (به عنوان فعالیت R&D) و سپس از آن‌ها در پروژه استفاده شود.
  • Hold :و اما نقاطی که در این بخش قرار می‌گیرند عموما برای استفاده در پروژه توصیه نمی‌‌شوند؛ چرا یا نابالغند یا در شرایط عمومی ناکارآمد. اما با این حال در جامعه فنی مورد استفاده قرار گرفته‌اند!

نگاهی به رادار ژانویه ۲۰۱۵
هرچند این گزارش تمام جوانب صنعت نرم‌افزار را پوشش نمی‌‌دهد، اما با این حال می‌توان داده‌های مفیدی را از آن استخراج کرد:

  • اولین چیزی که در این نسخه از گزارش خودنمایی می‌کند جهت گیری‌های اشتباه در زمینه مدیریت گروه‌ها و پروژه‌های نرم‌افزاری است. شتا‌ب‌زدگی در فرآیند توسعه، در انتخاب معماری، ابزار و روش‌ها از مواردی‌ که در این گزارش از آن‌ها به بدی یاد شده است. عموما سرچشمه این شتاب‌زدگی نتیجه عدم درک صحیح «نرم‌افزار کارآمد» در مقابل «نرم‌افزاری که کار می‌کند» است. هرچند «نرم‌افزاری که کار می‌کند» از دیدگاه تجاری ارزشمند است، اما در حقیقت، نرم‌افزار هم‌چون «کوهی آتشفشانی» هزینه‌های بالقوه‌ و پنهان زیادی دارد. از میان موارد دیگری که در این گزارش از آن‌ به عنوان «اشتباه» یاد شده است، می‌توان به تفکیک بیش از حد وظایف بین گروه‌های مختلف (توسعه، آزمون، نصب و نگهداری) اشاره داشت؛ هرچند به نظر می‌رسد گروه‌های DevOps کارآمدی بیشتری دارند، اما این امر بیش از هر‌چیز دیگر به تجربه گروه از فرآیند تولید نرم‌افزار بستگی دارد.
  • فرهنگ DevOps هرچند امر جدیدی نیست، اما طی سا‌ل‌های اخیر توجه ویژه‌ای به آن شده که یکی از نتایج آن، توسعه بیش از پیش ابزار‌های مرتبط با این موضوع است؛ توسعه و استفاده روزافزون ابزارهایی هم‌چون CoreOS، Docker، ابزارهای مدیریت نیاز‌مندی‌‌ها، آزمون و CI2، در کنار محبوبیت معماری Microservice نویدگر روز‌های خوبی برای گروه‌های DevOps است.
  • بازار آشفته Big-Data هم‌چون بازاری است که گویا مشتریانش به یکباره از خواب غفلت بیدار شدند و سراسیمه به دنبال مقصودند! در این بین هر روز شاهد ابزار و روش جدیدی هستیم که توسط شرکت‌های پیشتاز ارایه می‌شود و برآشفتگی این بازار اضافه می‌کند و احتمالا این روند همچنان ادامه خواهد داشت.
    در این گزارش موارد دیگری نیز در رابطه با امنیت، موبایل و بستر وب به چشم می‌خورد که در این مختصر نمی‌‌گنجد و مطالعه آن را به عهده خوانندگان می‌‌گذاریم.

حتما در نظر داشته باشید:

  • این گزارش تنها چشم به تغییرات حوزه نرم‌افزار دارد؛ به طور مثال اسکالا (Scala) در چند شماره پیشین گزارش در بخشAdopt قرار داشت، ولی طی ماه‌های اخیر در اکوسیستم اسکالا اتفاق خاصی رخ نداده‌ و در نتیجه نظر کارشناسان در رابطه با آن تغییری نکرده است، پس دلیلی ندارد که مجددا در گزارش رویت شود) تنها نقطه‌های متحرک، روی رادار قابل مشاهده‌اند).
  • در صفحه https://slmd.ir/4q تمام روش‌ها و ابزارهایی که تاکنون در گزارش‌ها آمده‌، به شکلی شاخص ‌گذاری شده و قابل جستجوست.از همین طریق می‌توانید فناوری‌ها و روش‌هایی که پیشتر در گزارش‌ها آمده‌ را ببینید.
  • قرار گرفتن نقاط (Blib) در ربع دایره‌ها با وسواس صورت نگرفته است؛ از این رو مکان قرارگیری نقاط احتمالا صحیح نیست؛ این اتفاق بیش از دیگر بخش‌‌ها، بین Platforms و Tools اتفاق می‌افتد.
  • هرچند این گزارش دامنه قابل توجه‌ای از حوزه نرم‌افزار را پوشش می‌دهد، با این حال به هیچ عنوان گزارش جامعی نخواهد بود.