آیا توسعهدهندگان نرم افزار هم بیکار میشوند؟
ديجياتو/ در سالهاي اخير فرايند اتوماسيون يا خودکارسازي سرعت بالايي به خود گرفته و در آينده شاهد نابودي يا دستکم تغييرات بنيادي در شغلهاي زيادي خواهيم بود، اما آيا توسعهدهندگان نرم افزار نيز کار خود را از دست ميدهند؟
واقعيت اين است که جهان در زمينه توسعه نرم افزار با سرعت بالايي در حال پيشرفت است و ابزارهاي اتوماسيون زيادي نيز توسعه پيدا کردهاند. در اين ميان سوالات مهمي وجود دارد: آيا برنامهنويسان با توسعه چنين ابزارهايي باعث از بين رفتن شغل خود ميشوند؟ در صورتي که ماشينها بتوانند کدنويسي کنند، ديگر چه نيازي به انسانها خواهد بود؟
از طراحي منطق تا طراحي ذهن
توسعهدهندگان نرم افزار پيوندهاي منطقي، الگوريتمها، برنامهها، پروژهها و موارد ديگر را ايجاد ميکنند و در حقيقت آنها سازندهي منطق هستند. با اين وجود با ظهور هوش مصنوعي، شاهد تغيير پارادايم هستيم. توسعهدهندگان ديگر پيوندهاي منطقي طراحي نميکنند و در عوض مشغول آموزش مدلها براي چنين پيوندهايي شدهاند.
بسياري از توسعهدهندگان بجاي ساخت منطق به سراغ ايجاد ذهن رفتهاند. به بيان ديگر، توسعهدهندگان نرم افزار بيشتري فعاليتهاي دانشمندان داده را برعهده گرفتهاند.
سطحهاي مختلف اتوماسيون
اگر تا به امروز از محيط يکپارچه توسعه نرمافزار (IDE) استفاده کرده باشيد، از عملکرد مناسب آن اطلاع داريد و نميخواهيد بدون آن به کار خود ادامه دهيد. IDE اولين زمينه اتوماسيون در توسعه نرم افزار محسوب ميشود. ماشينها با اطلاع از چيزي که ميخواهيم پيادهسازي کنيم، در اين فرايند به ما کمک ميکنند.
زمينه دوم مربوط به سيستمهاي بسته ميشود. يک اپ رسانه اجتماعي را درنظر بگيريد که از صفحات مختلفي تشکيل شده که با يکديگر پيوند داده شدهاند، با اين حال به علت اينکه براي ارتباط با سرويسهاي ديگر طراحي نشدهاند، يک سيستم بسته محسوب ميشود. در حالي که فناوري ساخت چنين اپهايي روزبهروز سادهتر ميشود، هنوز نميتوانيم از اتوماسيون واقعي در اين حوزه صحبت کنيم و برنامهنويس بايد براي ساخت صفحات پويا، استفاده از متغيرها و اعمال قوانين امنيتي يا ادغام ديتابيسها کدنويسي کند.
بخش سوم و آخر مربوط به سيستمهاي يکپارچه ميشود. به عنوان مثال رابط برنامهنويسي کاربردي (API) يک بانک براي ارتباط با ساير سيستمها ساخته شده است. در حال حاضر خودکارسازي ATM يکپارچه، ارتباطات، مدلهاي جهاني، امنيت بالا و همچنين عيبيابي پيچيده کاملا غيرممکن است.
جهان از چشمان کامپيوتر
زماني که از افراد درباره جايگزيني آنها با رباتها سوال پرسيده ميشود، اغلب آنها به چنين موضوعي فکر نميکنند و اين موضوع درباره توسعهدهندگان نرم افزار نيز صدق ميکند. دليل آنها روشن است: کامپيوترها در خصوصياتي مانند خلاقيت، همدلي، همکاري يا تفکر انتقادي عملکرد خوبي ندارند.
با وجود چنين گفتهاي، اغلب مواقع اين خصوصيات براي انجام کارها اهميت بالايي ندارند. حتي اکثر پروژههاي پيجيده نيز از بخشهاي کوچکي تشکيل شدهاند که امکان خودکارسازي آنها وجود دارد. خصوصيات انساني شگفتانگيز هستند، اما براي وظايف روزمره اهميت آنها را بيش از حد ارزيابي کردهايم. براي مثال براي مدت زمان طولاني محققان اعتقاد داشتند که ماشينها قادر به تشخيص گربه در يک تصوير نيستند.
امروزه يک ماشين ميتواند ميلياردها عکس را به صورت همزمان و با دقت بالاتري نسبت به انسانها دستهبندي کند. در حالي که شايد يک ماشين از ديدن يک گربه جالب يا جذاب شگفتزده نشود، در کارهاي ديگر عملکرد بينظيري دارد. عکس بچه گربه از چشمان کامپيوتر به عنوان يک حالت نامشخص درنظر گرفته ميشود.
حرکت به سوي منيفلدها و مقياسهاي جديد
علاوه بر کار با حالتهاي نامشخص، کامپيوترها در دو زمينه ديگر عملکرد بهتري نسبت به انسانها دارند: انجام کارها در مقياس بزرگ و کار با منيفلدهاي نوين.
همه ما عملکرد کامپيوترها در مقياس بزرگ را تجربه کردهايم. براي مثال اگر از کامپيوتري بخواهيم يک عبارتي را براي ۲۰۰ مرتبه پرينت کند، بدون هيچ شکايتي و در چندين ثانيه آن را انجام ميدهد. اگر چنين چيزي را از انسانها بخواهيد، بايد چندين ساعت صبر کنيد.
منيفلدها اساسا يک روش فانتزي يا رياضي براي اشاره به زيرمجموعههاي فضايي هستند که ويژگيهاي خاصي دارند. براي مثال اگر شما يک کاغذ برداريد با يک منيفلد دو بعدي در فضاي سه بعدي مواجه ميشويد. اگر اين کاغذ را به هواپيما تبديل کنيد، همچنين با يک منيفلد روبهرو هستيد.
کامپيوترها در زمينه کار با منيفلدها عملکرد بهتري نسبت به انسانها دارند که دليل آن گسترش منيفلد در به ۲۰ بعد و وجود گوشههاي پيچيده است. از آنجايي که بسياري از مسائل روزانه مانند زبان انسان يا کد کامپيوتر را ميتوان به صورت يک منيفلد رياضي بيان کرد، پتانسيل بالايي براي استقرار محصولات کارآمد در آينده وجود دارد.
تحولات کنوني
به نظر ميرسد توسعهدهندگان هم اکنون استفاده زيادي از اتوماسيون دارند، با اين حال تنها در اوج اتوماسيون نرم افزاري هستيم. امروزه خودکارسازي سيستمهاي يکپارچه تقريبا غيرممکن است، اما بسياري از بخشهاي ديگر خودکار شدهاند.
براي مثال در آينده شايد بررسي کد و اشکالزدايي يا ديباگ منسوخ شود. کمپاني سوئيسي «DeepCode» در حال کار روي ابزارهايي براي تشخيص خودکار باگ است. «DeepMind» گوگل هم اکنون ميتواند راهحلهايي براي کدهاي موجود ارائه دهد و «Aroma» فيسبوک نيز ميتوانند به تنهايي برخي برنامههاي کوچک را به صورت خودکار تکميل کند.
علاوه بر اين موارد، گفته ميشود که سيستم «MISIM» ميتواند کدهاي کامپيوتر را به همان روشي درک کند که الکسا و سيري زبان انسان را متوجه ميشوند. اين يک موضوع جذاب است چرا که به توسعهدهندگان نرم افزار اجاره ميدهد کارهاي معمول و وقتگير را به صورت خودکار انجام دهند.
افقهاي هيجانانگيز
تا به امروز تمام اين اتوماسيونها در پروژههاي کوچک عملکرد بينظيري از خود نشان دادهاند، اما در پروژههاي پيچيده کاملا بيفايده هستند. براي مثال نرم افزار شناسايي باگ هنوز بسياري از مواردي که مشکلي ندارند را برميگرداند يا پروژههايي که اهداف نويني را دنبال ميکنند به صورت خودکار تکميل نميشوند.
از آنجايي که مدت زمان زيادي از توسعه MISIM نميگذرد، هنوز وارد بخشهاي زيادي نشده. هنوز در ابتداي اين فناوري قرار داريم و انتظار ميرود در آينده اين ابزارها بسيار قدرتمندتر شوند.
کاربردهاي اوليه اتوماسيون جديد
برخي از کاربردهاي اوليه اتوماسيونهاي جديد ميتوانند شامل رديابي فعاليتهاي انسان شوند، با اين حال نبايد آن را با جاسوسي از افراد اشتباه گرفت و بجاي چنين موضوعي، از آنها براي برنامهريزي ساعتهاي کاري يک کارمند يا شخصيسازي دروس براي دانش آموزان استفاده ميشود.
اين اتوماسيونهاي جديد فرصت اقتصادي بزرگي ايجاد ميکنند چرا که دانش آموزان موارد مهم را سريعتر ياد ميگيرند و بهرهوري کارکنان نيز افزايش پيدا ميکند. در صورتي که عملکرد MISIM مطابق وعدهها باشد، ميتوان از آنها براي بازنويسي «کد موروثي» استفاده کرد. براي مثال بسياري از نرم افزارهاي بانکي و دولتي با «COBOL» نوشته شدهاند که يادگيري آن سخت است. با ترجمه اين برنامهها به زبان جديد، مراقبت از آنها سادهتر ميشود.
سرمايهگذاري در تحويل پيوسته و آزمايش خودکار
اگر پيش از انتشار يک نرم افزار آن را مورد آزمايش قرار ندهيد، احتمالا تجربه کاربري آسيب ميبيند يا اينکه امنيت کاربران با خطر مواجه ميشود. تجربههاي گذشته نشان داده که تستهاي خودکار بخشهايي را پوشش ميدهند که حتي انسانها به آنها فکر هم نميکنند.
تحويل پيوسته رويکردي بوده که بيش از گذشته مورد استفاده تيمها قرار ميگيرد. اگر در نرم افزار شما ويژگيهاي بسيار زيادي وجود داشته باشند و هر سه ماه يکبار براي آن بروزرساني منتشر کنيد، چند ماه زمان صرف رفع مشکلات آن خواهيد کرد. اين موضوع نه تنها سرعت توسعه برنامه را کاهش ميدهد، بلکه روي تجربه کاربري نيز تاثير مخرب ميگذارد.
نرم افزارهاي خودکار بيشماري براي آزمايش وجود دارند و فريمورکهاي زيادي براي تحويل پيوسته توسعه پيدا کردهاند. در حالت کلي پرداخت هزينه براي تصاحب آنها صرفه اقتصادي بيشتري نسبت به توليد دارد و براي اينکار نيازي به استخدام توسعهدهنده نخواهيد داشت.
نقش توسعهدهندگان در برنامهريزي پروژه
اغلب مواقع پروژهها در بخش بالاي مديريت يا نزديک به تيم تحقيق و توسعه ايجاد ميشوند و سپس به بخشهاي پايينتر منتقل ميشوند تا اينکه در اختيار تيم توسعه قرار ميگيرد که بايد اين پروژه را به واقعيت تبديل کند. با توجه به اينکه هر مدير پروژهاي مهندس نرم افزار نيست، شايد برخي از بخشهاي پروژه تنها توسط تيم توسعه قابل اجرا باشند، در حالي که بخشهاي ديگر پرهزينه يا حتي غيرممکن باشند.
در حالي که اين رويکرد در گذشته وجود داشت، اما هم اکنون بسياري از بخشهاي يکنواخت به صورت خودکار توسعه پيدا ميکنند و افراد فرصت بيشتري براي خلاقيت دارند. اين موضوع باعث ميشود که توسعهدهندگان نرم افزار به بخشهاي ديگر بروند که شامل مراحل اوليه برنامهريزي يک پروژه ميشود. آنها نه تنها ميتوانند بخشهاي قابل اجرا و غيرقابل اجرا را تشخيص دهند، بلکه با خلاقيت خود ارزش برنامه را نيز افزايش ميدهند.
تبديل نرم افزار به اولويت اصلي
تقريبا ۵ سال پيش مديرعامل مايکروسافت، ساتيا نادلا ادعا کرد که تمام کسب و کارها تبديل به کسب و کارهاي نرم افزاري ميشوند که البته اين ادعا درست بود. نه تنها توسعهدهندگان بايد به سمت مديريت حرکت کنند، بلکه نرم افزار بايد به يکي از اولويتهاي اصلي شرکتها تبديل شوند.
در دوران شيوع ويروس کرونا بسياري از کارکنان دورکار شدند، بنابراين اکثر کارها به صورت آنلاين صورت ميگيرد و نرم افزار اهميت بسيار بالايي دارد.
توسعهدهندگان نرم افزار رهبران آينده هستند
در گذشته علاقهمندان به دنياي کامپيوتر افرادي غيراجتماعي به نظر ميرسيدند و جامعه لقبهاي مختلفي براي آنها درنظر گرفته بود. با گذشت زمان مشخص شد که اين افراد به اندازهاي باهوش هستند که ميتوانند چيزهاي جالب بسازند.
نرم افزارها روزبهروز قدرتمندتر ميشوند و به سمت اتوماسيون حرکت ميکنند و از اين نظر از دست دادن شغل به علت اتوماسيون تقريبا بياساس است. تا يک دهه آينده و حتي چندين ماه ديگر، پيشرفتهاي زيادي در دنياي فناوري رخ ميدهد، اما اين به معناي بيکار شدن توسعهدهندگان نرم افزار نيست، بلکه آنها ارتقاي شغلي پيدا ميکنند.
توسعهدهندگان نبايد ترس از بيکار شدن داشته باشند، چرا که در آينده بيکار نميشوند بلکه تبديل به رهبران اين صنعت ميشوند.