توسعۀ نرمافزارها به صورت اپنسورس، تجدید نظر در زیرساختها و بازسازی آنها، یادگیری ماشینی و اولویت قائل شدن برای کاربر در طراحی نرمافزار، بخش مهمی از روندی را تشکیل میدهند که تحولات عظیم آیندۀ دنیای دیجیتال را رقم خواهند زد. حتماً شما هم حداقل نام یکی از شرکتهایی مانند Uber و Lyft را در حوزهٔ حملونقل، Twitter و Facebook را در حوزهٔ شبکههای اجتماعی و همچنین شرکتهایی همچون Netflix و Hulu را در حوزهٔ رسانه شنیدهاید؛ اینها در ابتدا استارتاپهای کوچکی بودند که به تدریج موفق به ایجاد صنعتی جدید و یا ایجاد تحولاتی بزرگ در صنعتی خاص شده و به جایگاه کنونی خود دست یافتند. به هر حال فرقی نمیکند که یک استارتاپ کوچک داشته باشیم و یا صاحب شرکت بزرگ باشیم، چنانچه بخواهیم در صحنۀ رقابت باقی بمانیم و توسط رقبا حذف نشویم، باید غبار تکنولوژیهای قدیمی را از تَن زدوده و گام در مسیر تحول بگذاریم. در همین راستا، در این مقاله قصد داریم تا چند روند کلی تأثیرگذار در تحولات آینده توسعۀ نرمافزارها را با شما در میان بگذاریم؛ در ادامه با سکان آکادمی همراه باشید.
اهمیت فلسفهٔ اپنسورس
یکی از قطعات پازل موفقیت عبارت است از درک و بهکارگیری مفهوم اپنسورس؛ نه تنها در کدنویسی بلکه در فرهنگ سازمانی مجموعهٔ خود به طوری که یکی از مهمترین ارکان پیشرفت شرکتهای موفق همین توسعۀ مفهوم اپنسورس از سطح کد به سطح فرهنگ است؛ به عبارت دیگر، اپنسورس را به یک فرهنگ در شرکت خود تبدیل نمودهاند.
چندین دهه است که فناوریهای اپنسورس (از سیستمعامل گرفته تا زبانهای برنامهنویسی و غیره) سبب شکوفایی نوآوریهای بسیاری شدهاند؛ انتشار منابع #اپنسورس شرکتها نهتنها موجب رشد خود آنها میشود، بلکه میتواند به نحوی در پیشرفت و نوآوری در سایر شرکتها -بهخصوص استارتاپها- نیز نقش بسزایی داشته باشد.
از این روی، استفاده از پروژههای اپنسورس و از آن مهمتر، مشارکت در این دست پروژهها راهی است که باید بپیمایید تا بتوانید نقش مؤثری در کامیونیتی اپنسورس ایفا کنید. به عبارت دیگر، به تمام آن استعدادهایی که میتوانند در پروژۀ شما مشارکت کنند و همچنین به تمام آن شرکتهایی که اپنسورس را در دستور کار خود قرار دادهاند، فکر کنید. این تحول در حال رخ دادن است و شما نمیتوانید چشم خود را بر روی آن بسته و آن را نادیده بگیرید؛ یا باید با این تحول همراه شده و پا به میدان رقابت بگذارید و یا این بخش از رقابت را به رقبا واگذار نموده و پا پس بکشید و عواقب آن را نیز به جان بخرید!
کلان دادهها
امروزه این دیدگاه که اکثر ایدهها -اعم از قدیمی و جدید- به نوعی به بیزینسهای نرمافزاری تبدیل شدهاند، دیگر ایدۀ عجیبی نیست؛ بلکه چیزی که شاید حیرتآور باشد تأثیری است که بیگ دیتا میتوانند بر کسبوکار شما داشته باشد (برای کسب اطلاعات بیشتر، توصیه میکنیم به مقالهٔ Data Mining (دادهکاوی) چیست؟ مراجعه نمایید.)
به عنوان متخصصان عرصۀ تکنولوژی، این شما هستید که قادرید نرمافزارها را به نحو مؤثری به کار بگیرید تا بتوانید دیتای مؤثرتری را در اختیار کاربران نرمافزارهای طراحی شده قرار داده و موجب تصمیمگیریهای بهتر شده، نظر مشتریان را بیشتر جلب نموده و آنها را از پایداری و امنیت کسبوکار خود مطمئن سازید.
تجدید نظر اساسی در مورد زیرساختها
همانطور که اهمیت دادن به تکتک اعضای بدن، زندگی سالمتر و باکیفیتتری را رقم میزند، آپدیت بودن زیرساختها و فناوریهای مورد استفادهٔ یک شرکت نیز میتواند نقش به سزایی در موفقیت و عملکردش داشته باشد که در غیر این صورت، عواقب بیتوجهی به زیرساختها و امکانات شرکت کاملاً قابلپیشبینی است.
خوشبختانه در زمینۀ کدنویسی، تست و دیپلوی نرمافزار پیشرفتهای بسیار خوبی صورت گرفته است که میتواند شما را از عملکرد صحیح سیستمهای داخلی مطمئن نموده و امکان رشد هرچه سریعتر را برای کسبوکار شما فراهم آورد که از آن جمله میتوان به XaaS ،Serverless Architecture ،Containers و Microservices اشاره نمود.
پررنگتر شدن کاربردهای هوش مصنوعی
بازار یادگیری ماشینی این روزها حسابی گرم است و بازیکنان اصلی این عرصه با بهکارگیری از فناوریهای مرتبط با هوش مصنوعی، تأثیر شگرفی بر صنایع مختلف خواهند داشت. به عبارت دیگر، پلتفرمهایی همچون OpenAI ،Watson ،TensorFlow و CNTK استفاده از محصولات جدیدی مانند Alexa که مبتنی بر صدا هستند را هیجانانگیزتر نمودهاند.
امروزه محصولاتی مانند Siri ،Cortana و Alexa به عنوان دستیاران شخصی در دسترس ما بوده و به گونهای خاص در حل مشکلات به ما کمک میکنند که تا همین چند سال پیش، چنین چیزی رؤیایی بیشت نبود! #یادگیری ماشینی که همواره در حال تغذیه از دادههای جدید است، تأثیر ویژهای بر نحوۀ تصمیمگیری و نقلوانتقال دادهها در کسبوکارهای مختلف خواهد داشت و با بر عهده گرفتن تَسکهای سطح پایین و انجام آن به جای انسان، تحولات و پیشرفتهایی را در تیمهای مهندسی و اجرایی نرمافزارها رقم خواهد زد.
اولویت دادن به مشتری
هنگامی که در حال برنامهریزی، طراحی و توسعۀ نرمافزار هستید، باید موضوعات مختلفی مانند بودجه، روش کار و اهداف نهایی شرکت یا کسبوکار خود را در نظر بگیرید اما هیچ یک از این موضوعات نباید نسبت به مشتری در اولویت بالاتری قرار بگیرد! مشتری شما ممکن است کاربر نهایی محصول و یا یک شرکت دیگر باشد، اما نکتۀ مهم و قابلتوجه این است که اگر در مورد مشتری خود تحقیق نکرده و با او گفتگویی نداشته باشید، همۀ کارهایی که انجام میدهید چیزی فراتر از حدس و گمان در مورد نیازهای بالقوهٔ مشتری نخواهد بود.
اگر قصد دارید پروژۀ جدیدی را توسعه دهید، چیزی که میتواند موفقیت یا شکست شما را تعیین کند، #تجربهٔ کاربری مخاطبین نرمافزارتان است. همچنان که در شرکتهای مختلف تکنولوژیهای قدیمیتر جای خود به تکنولوژیهای جدید میدهند، دولوپرها نیز باید با این روند همراه شده و از آخرین نیازها و انتظارات کاربران آگاهی یافته و بدین ترتیب موفقیت شرکت را تضمین نمایند.
دیدگاه شما چیست؟ به عنوان یک دولوپر، نسبت به گذشته چه تغییراتی را در فضای توسعۀ نرمافزار احساس کرده و فکر میکنید چه روندها و تحولاتی توسعۀ نرمافزارها را تحتالشعاع خود قرار دادهاند؟ نظرات، دیدگاهها و تجربیات خود را با سایر کاربران سکان آکادمی به اشتراک بگذارید.