یک دولوپر با هر دیدگاه، نقطهنظری و عقیدهای میتواند از تکتک فرصتهایی که در محیط پیرامونش به وجود میآیند به منظور حرفهایتر شدن استفاده کند و یکی از این فرصتهای طلایی که کمک شایانی به دولوپرها در عرصه کدنویسی برنامههای مفیدتر و سَبک کاری حرفهایتر میکند، درس گرفتن از دعای جوشنکبیر است! به نقل از سایت بیتوته، «دعای جوشنکبیر در یکی از غزوات صدر اسلام از جانب جبرئیل بر پیامبر اسلام (ص) نازل شد که صد بَند داشته و هر بند حاوی ده نام از اسماء خداوند متعال است به جز بند ۵۵ که ۱۱ اسم باریتعالی در آن آمده است؛ بنابراین، این دعا روی هم رفته حاوی ۱۰۰۱ اسم خدای متعال است.» آنچه در این مقاله قصد داریم مورد بررسی قرار دهیم، برخی از این ۱۰۰۱ صفت خداوند است که اگر یک دولوپر هم از آنها برخوردار گردد، وی خواهد توانست خود را یک سروگردن از سایر رقبا بالاتر نگاه دارد (آنچه مسلم است اینکه قطعاً صفات الهی با صفات بندگانش قابلقیاس نبوده و به قول شیخ اجل سعدی، همه هرچه هستند از آن کمترند که با هستیش نام هستی برند. لذا آنچه در این مقاله ذکر خواهیم کرد فقط در عرض این صفات الهی است.)
یا ذا العهد و الوفاء / یا من وعده صدق
آنچه در میان برخی دولوپرها به وضوح دیده میشود، چیزی است تحت عنوان بَدقولی اما این در حالی است که این بدقولی که در رفتار برخی برنامهنویسان دیده میشود میتواند به خاطر ماهیت حرفهٔ برنامهنویسی باشد (گاهی اوقات پیش میآید که یک برنامهنویس به باگی میخورد که شاید روزها صرف دیباگ کردنش کند که بالتبع به دِدلاین مد نظر نرسیده و بدقول میشود) اما به هر حال ارزش یک برنامهنویس خوشقول به مراتب بیش از یک برنامهنویس بدقول است.
همانطور که از عنوان این آیتم مشخص است، یکی از صفات بارز خداوند متعال یا ذا العهد و الوفاء (ای کسی که وفای به عهد میکند) است. اگر ما برنامهنویسان هم بتوانیم خود را مجهز به این صفت کمیاب و در عین حال ارزشمند کنیم، بدون شک فرصتهای طلایی بیشماری درب خانهٔ ما را به صدا در خواهند آورد (متأسفانه این قضیه تا جایی پیش رفته که از دید برخی مدیران منابع انسانی شرکتهای نرمافزاری، دولوپرها به عنوان افرادی بیتعهد، بدقول و غیرقابلاعتماد جا افتادهاند!)
یا موسع
یکی دیگر از اسماء خداوند یا موسع (ای وسعت بخش) است. یک دولوپر صرفاً نمیبایست فردی مصرفگرا بوده، پروژههای آماده را از سایتهایی همچون گیتهاب کِلون کرده و کارش را راه بیندازد. اگر دولوپری از این صفت بارز خداوند برخوردار گردد، یعنی به معنای واقعی کلمه توسعهدهنده باشد، دیگر به خود اجازه نخواهد داد صرفاً مصرفکنندهٔ اسکریپتهای دیگران باشد؛ بلکه در توسعهٔ کدهای دیگران، شرکت در پروژههای #اپنسورس و … مشارکت خواهد کرد.
یا نافع / یا باسط الیدین بالرحمه / یا من فضله عمیم
درست است که برنامهنویسی یکی از جذابترین حرفههای حال حاضر دنیا است و چنانچه فقط یک روز تمامی دولوپرهای دنیا اعتصاب کنند، کار اکثر کسبوکارهای دنیا مختل خواهد شد، اما برخی دولوپرها فقط فکر میکنند که کار ایشان کدنویسی است و لاغیر! یا نافع (ای سوددهنده) یکی دیگر از اسماء خداوند است که شاید به نوعی این نام را بتوان به این شکل تفسیر کرد که خداوند متعال بدون هیچ چشمداشتی به بندگان خود، اعم از مؤمن و کافر، سود میرساند.
ما هم نیاز داریم تا این فرهنگ را در کامیونیتی (جامعه) دولوپرهای ایرانی نهادینه کنیم که سودرسانی به کسانی که تازه پا به این عرصه گذاشتهاند و کمک کردن به کدآموزان مبتدی میتواند تبعات چشمگیری در رونق نرمافزاری مملکت داشته باشد. در واقع، دیری نمیپاید که نیاز به برنامهنویسها از این هم بیشتر شده و این در حالی است که دانشگاهها صرفاً بخش کوچکی از این نیاز رو به رشد جامعه را تأمین میکنند؛ لذا ضرورت برخورداری از صفت یا باسط الیدین بالرحمه (ای گشاده دو دست به رحمت) در جامعه دوچندان میگردد.
همانطور که از عنوان این آیتم مشخص است، یکی دیگر از صفات خداوند یا من فضله عمیم (ای که فضلش عمومی است) میباشد و به نظر هم میرسد که دولوپرهای دیگر نقاط دنیا همچون فعلان اکوسیستم نرمافزاری اروپا و به خصوص آمریکا بیش از دولوپرهای سایر نقاط جهان به این ویژگی متصف هستند چرا که بدون هیچ واهمهای، در جنبشهای اپنسورس مشارکت کرده و دانش خود را با سایرین به اشتراک میگذارند!
یا ذا الحجه و البرهان
خداوند هیچ کاری را بدون دلیل نمیکند و بدون شک خداوند مجهز به تفکر الگوریتمیک است و این در حالی است که یک دولوپر موفق هم می بایست اینگونه باشد. به عبارت دیگر، دولوپرها اساساً نباید کاری که پشت آن دلیل و برهانی منطقی نباشد انجام دهند چرا که ممکن است اثرات سوء بسیاری یا برای خود، یا برای مشتریان و یا برای نرمافزاری که نوشتهاند داشته باشد. به طور مثال، فانکشنی که یک دولوپر مینویسد میبایست اصولی باشد، فریمورکی که یک دولوپر استفاده میکند یا مهمتر از آن، نوع زبان برنامهنویسی که توسعهدهنده استفاده میکند میبایست کاملاً منطبق بر منطق بوده و با نیازهای پروژه همخوانی داشته باشد که برای روشنتر شدن این مسأله، در ادامه مثالی میزنیم.
فرض کنیم که ما یک مشتری داریم که نیاز به یک سایت استاتیک برای شرکتش دارد تا صرفاً به معرفی شرکت و اطلاعات تماسش بپردازد. برای چنین پروژهای، اصلاً نیازی نیست تا با استفاده از زبان برنامهنویسی روبی و فریمورک Ruby on Rails اقدام به کدنویسی کنیم؛ بلکه یک طراح سایت ساده هم میتواند این نیاز را با استفاده از سیستمهای مدیریت محتوایی همچون وردپرس مرتفع گرداند.
یا من هو قادر علی کل شیء / یا مهیمن
پیش از این در مقالهای تحت عنوان معنی و مفهوم Full Stack Developer چیست؟ نکاتی را در مورد توسعهدهندگان به اصطلاح فولاستک بیان کردیم. به طور خلاصه، یک Full Stack Developer کسی است که صفت یا من هو قادر علی کل شیء (ای کسی که بر هر کاری توانا است) در موردش صدق میکند.
آنچه میتوان از این صفت خداوند متعال درس گرفت این است که فقط با دانستن اصول برنامهنویسی نمیتوان کارهای بزرگ کرد! مثلاً اگر کسی صرفاً زبانهای HTML و CSS را بلد باشد، نخواهد توانست برچسب وب دیزاینر را به خود بچسباند! فرض کنیم کسی به کلیهٔ زبانهای سمت کلاینت مثل اچتیامال، سیاساس، جاوااسکریپت، فریمورک آنگولار جیاس، فریمورک بوتاسترپ و … مسلط است اما اصلاً حس زیباییشناسی ندارد. مسلماً چنین فردی همواره لنگ یک طراح گرافیک خواهد بود؛ یا باز هم فرض کنیم که کسی با اصول برنامهنویسی آشنا است اما هیچ چیزی در مورد پروتکلهای اینترنتی نمیداند که باز هم چنین فردی نخواهد توانست تا از خود نام و نشانی به عنوان یک توسعهدهندهٔ حرفهای بر جای بگذارد.
با این تفاسیر، نتیجه میگیریم که برنامهنویسها میبایست دائماً در حال مطالعه و کسب دانش در زمینهٔ علوم جدید مرتبط با حوزهٔ کاری خود بوده و به قول معروف، مَثَل «ز گهواره تا گور دانش بجوی» را سرلوحهٔ کار خود قرار دهند و صفتی همچون یا مهیمن (ای مسلط بر هر چیز) در ایشان بارز باشد.
یا مهون یا مسهل
کدنویسی بکاند و فرانتاند به صورت اصولی یک سوی قضیه است و ایجاد #تجربهٔ کاربری خوب برای کاربران نرمافزار هم چیز دیگری است. دو مورد از القاب خداوند در دعای جوشنکبیر یا مهون (ای آسانکننده) و یا مسهل (ای هموارکنندهٔ راهها) است. امروزه راز موفقیت اکثر نرمافزارهایی که به بازار عرضه میشوند را میتوان در حس خوبی که کاربران آن نرمافزار میگیرند ارزیابی کرد؛ به عبارت دیگر، ما میبایست نرمافزاری در اختیار گروه مخاطب خود قرار دهیم که به سادهترین شکل ممکن نیازهای ایشان را مرتفع گرداند.
این قضیه در مورد فروشگاههای آنلاین کاملاً صادق است. فرض کنید که شما قصد خرید یک کتاب آموزش اصول برنامهنویسی جاوا را از یک کتابفروشی آنلاین دارید؛ زمانی که قصد اضافه کردن کتاب به سبد خرید را دارید، سایت از شما میخواهد که ابتدا ثبتنام کنید اما وقتی که روی لینک ثبتنام کلیک میکنید، با فرمی طولانی مواجه میشوید که در آن اطلاعاتی از قبیل نام و نامخانوادگی، ایمیل، آدرس، شماره همراه، تاریخ تولد، روش آشنایی و … را از شما میخواهد.
در واقع، کاری که دولوپر این فروشگاه کتاب آنلاین به نادرستی تمام انجام داده این است که کار را برای مشتری دشوار ساخته است و این احتمال نیز وجود خواهد داشت که شما از خرید خود منصرف شوید! ما به عنوان یک دولوپر یا بهتر بگوییم، یک طراح نرمافزار، وظیفه داریم تا از صفت بارزی همچون مهون برخوردار گردیم تا از آن پس بتوانیم با سادهترین سبک ممکن، نیازهای کاربران خود را مرتفع سازیم.
یا من لم یهتک الستر
برخی مواقع با گروهی از برنامهنویسها مواجه میشویم که دائماً سعی در تخریب سایر همکاران خود دارند؛ مثلاً اگر دولوپری به زبان برنامهنویسی جاوا مسلط است، به خاطر محبوب بودن و قدرتمند بودن این زبان، به سایر برنامهنویسان به دیدهٔ حقارت مینگرد یا به عنوان مثال دیگری که امروزه به کرات دیده میشود، کُری خواندن دولوپرهای PHP و NET. است که همدیگر را اصلاً قبول ندارند و این در حالی است که هر کدام از این زبانها، میتواند کاربردهای خاص خود را داشته باشد.
اگر با یکی از این دولوپرهایی که در بالا برخی از خصوصیاتشان را برشمردیم مواجه شده باشید، مسلماً تجربه کردهاید که فقط کافی است ایشان کمی از شما تجربهٔ بیشتری در کدنویسی داشته باشد که در این صورت اگر کدنویسی شما را کمی غیراصولی ببینند، شروع به تخریب شما میکند و در همین جا است که میبایست صفتی همچون یا من لم یهتک الستر (ای که پردهٔ کسی را ندری) را در خود نهادینه کنیم (در همین راستا، توصیه میکنیم به مقالهٔ خودگیکپنداری، خودخَفَنپنداری و خودآسپنداری: سندرمی که برخی دولوپرها به آن دچار میشوند! مراجعه نمایید.)
خیلی از مسلمانها دست به گناهان کبیرهای میزنند (که البته نگارندهٔ این مقاله هم اصلاً از این قاعده مستثنی نیست!) که اگر کسی متوجه آن شود، آبروی ما حسابی خواهد ریخت؛ اما خداوند دست ما را رو نمیکند! سعی کنیم به جای آنکه به محض دیدن باگی در یکی از نرمافزارهای یک دولوپر، بلافاصله شروع به تخریب وی کنیم، وی را از وجود باگ مطلع کرده و پیش از آنکه آبروی وی بریزد و اعتبارش زیر سؤال رود، باگ نرمافزارش رفع گردد (شاهد این ادعا هم مشکل امنیت بانک ملت بود که چند سال پیش فضای وب فارسی را تحتالشعاع خود قرار داد. به طور خلاصه، این مشکل از اینجا ناشی شد که سایت بانک ملت یک لینک را در اختیار مشتری قرار میداد که حاوی پارامتری تحت عنوان SaleOrderId بهمعنی «شناسهٔ خرید» بود که اگر کاربری پیدا میشد و مقدار این پارامتر را تغییر میداد، میتوانست به تراکنشهای سایر مشتریان بانک هم دست یابد!)
آیا اگر شما یکی از مشتریان بانک ملت بودید که دارای تراکنشهای میلیونی به صورت روزانه بود، دوست داشتید تا اطلاعات محرمانهٔ شما در معرض دید سایر کاربران قرار گیرد؟ به نظر میرسد اگر کسی که این باگ امنیتی را یافت، به جای فاش کردن آن و گرفتن اسکرینشات و منتشر کردن در فضای وب و بردن آبروی دولوپرهای سایت بانک ملت با دپارتمان انفورماتیک بانک ملت تماس میگرفت و ایشان را به این موضوع واقف میگردانید، صفت «ای که پردهٔ کسی را ندری» کاملاً در مورد وی صدق میکرد.
یا اسمع السامعین
Active Listening مهارتی است که شرکتهای حرفهای در کشورهای جهان اول روی آموزش آن به پرسنل خود سرمایهگذاری میکنند. جملهٔ جالبی وجود دارد با این مضمون که خداوند ما را با یک دهان و دو گوش آفریده است؛ پس به همین میزان میبایست از آنها استفاده کنیم. بهعبارت دیگر، هر چقدر صحبت میکنیم، میبایست دو برابر آن به طرف مقابل خود گوش دهیم!
زمانی که دولوپرها در جلسات توجیهی با مشتریان شرکت میکنند، میبایست از صفتی همچون یا اسمع السامعین (ای شنواترین شنوایان) برخوردار گردند. گاهی اوقات که ما به خوبی به نیازهای مشتریان گوش فرا نمیدهیم، این مسأله منجر به ایجاد سوءتفاهماتی در آینده خواهد شد. برای این منظور، توصیه میکنیم که با گوگل کردن در ارتباط با مهارتهای Active Listening، قابلیت خوب گوش دادن را در خود ارتقاء داده و تحت هیچ عنوان و بدون گوش فرا دادن به نیازهای مشتریان، فرض را بر این نگذاریم که حتماً نیازهای این مشتری هم شبیه به نیازهای مشتری قبلی است (توجه داشته باشیم که واژهٔ Google در زبان انگلیسی به عنوان یک فعل درآمده و به جای اصطلاحاً Search It in Google به معنی «آن را با استفاده از موتور جستجوی گوگل سرچ کن»، از خود تکواژهٔ Google استفاده میشود که دقیقاً دربرگیرندهٔ همین معنی است.)
یا عماد من لا عماد له / یا مرشد من استرشده / یا نعم المجیب / یا دلیل من لا دلیل له
تحت هیچ عنوان نمیبایست فکر کنیم که مخاطبین نرمافزارهای ما تعدادی #گیک هستند که به خوبی با وب، آیتی و دنیای نرمافزار آشنایی دارند؛ بلکه میبایست مبنا را بر این بگذاریم که مخاطبین خدمات و محصولات ما دارای حداقل دانش استفاده از محصولات آیتی هستند. در اینجا است که اهمیت ساپورت مطرح شده و به صفتی از خداوند تحتعنوان یا عماد من لا عماد له (ای پشتیبان کسی که پشتیبان ندارد) نیاز پیدا خواهیم کرد. برای روشنتر شدن اهمیت این موضوع، مثالی از دنیای واقعی میزنیم.
فرض کنیم که در یک شرکت هاستینگ کار میکنیم و یک مشتری داریم حدوداً ۴۵ ساله که تکنوفوب است (به طور کلی، منظور از Phobia ترس است و منظور از Technophobe، کسی است که با فناوری رابطه خوبی نداشته و از آن واهمه دارد!) و این اولین باری است که وی قصد راهاندازی وبسایت شخصیاش را دارا است. رویکردی که معمولاً در جامعه دیده میشود این است که اپراتور این فرد را به آموزشهای قرار گرفته روی سایت، سرچ در گوگل و … سوق میدهد و این در حالی است که وی هرچه بیشتر در این زمینه به جستجو و مطالعه میپردازد، بیشتر سردرگم میشود. در چنین مواردی، میتوان رویکردی همچون خداوند متعال اتخاذ کرد که پشتیبان کسانی است که هیچ پشتیبانی ندارند؛ به عبارت دیگر، تا حد ممکن به راهنمایی وی پرداخته و به جای آنکه کارها را به دوش این فرد میانسال بیندازیم، خود مسئولیت کانفیگ کردن، ست کردن دیاناس و … را برعهده گیریم.
همچنین این قضیه در مورد برخی دولوپرها هم به کَرات دیده میشود به این صورت که به محض دریافت آخرین چک پروژهٔ خود، دست از پشتیبانی مشتری میکشند! توجه داشته باشیم که در حال حاضر، آنچه افراد یا شرکتهای تراز اول را از شرکتهای سطح پایینتر متمایز میسازد، توانایی ایشان در پشتیبانی خدمات یا محصولاتشان است.
ما دولوپرها اگر بتوانیم خود را به یا مرشد من استرشده (ای راهنمای کسی که از او راهنمایی جوید) و یا نعم المجیب (ای نیکو پاسخ ده) و یا دلیل من لا دلیل له (ای راهنمای آن که راهنمایی ندارد) همچون خداوند متعال تجهیز کنیم، مسلماً دارای تأثیرگذاری بیشتری در جامعهٔ آیتی خواهیم بود.
یا لطیف الصنع / یا من فعله لطیف / یا من خلق فسوی
حرفهٔ توسعهٔ نرمافزار جزو مهارتهایی است که دقت بسیار بالایی میطلبد و شاهد این ادعا هم آنکه یک بیدقتی کوچک میتواند هزینههای بسیار بالایی برای محصول، سایر دولوپرها و یا کاربران محصول در پی داشته باشد. خداوند از اسمائی همچون یا لطیف الصنع (ای دقیق صنعت) و یا من لعله لطیف (ای که کارش دقیق است) برخوردار است و بدون شک یک دولوپر حرفهای هم میبایست از چنین صفاتی برخوردار گردد تا بتواند خود را از سایر دولوپرها متمایز سازد.
شاید بتوان گفت یکی از دلایلی که کمتر شاهد نرمافزارهایی بودهایم که در سطح جهانی حرفی برای گفتن داشته باشند، عدم برخورداری از این دو صفت باشد. به عبارت دیگر، به کَرات دیدهایم نرمافزارهایی به بازار عرضه میشوند که نه تنها در بکاند آنها دقت زیادی به کار گرفته نشده، بلکه در ظاهر یا بهتر بگوییم فرانتاند آنها هم وسواس زیادی به خرج داده نشده است و همین مسأله منجر میگردد که یک نرمافزار نتواند سهم بازار قابلتوجهی را به خود اختصاص دهد.
یکی از صفات دیگر خداوند یا من یا خلق فسوی (ای که آفرید و بیاراست) میباشد؛ به عبارت دیگر، خداوند در زمان آفرینش هستی، صرفاً به مقولهٔ آفرینش فکر نکرده بلکه آفرینش باکیفیت ملاک بوده است و شاهد چنین ادعایی هم آفرینش مناظر دلانگیز، انسانهای زیبا، حیوانات حیرتبرانگیز و … است. به طور خلاصه، دولوپری که از صفت یا من خلق فسوی برخوردار باشد، کسی است که کدهایی که مینویسد بسیار خوانا و تمیز هستند، به خوبی کامنتگذاری شدهاند، نامگذاری توابع و متغیرها کاملاً مرتبط است و در عین حال رابط کاربری نرمافزار ایشان نیز بسیار جذاب و کاربرپسند است.
یا جابر
خداوند جابر است یعنی چیزهای مختلف را به هم پیوند میدهد. یک دولوپر موفق هم کسی است که جابر باشد؛ به عبارتی، دولوپرهای موفق کسانی هستند که بتوانند ماژولهای مختلف، اسکریپتهای مختلف، ایپیآیهای مختلف را در جهت خلق یک نرمافزار کارآمد به یکدیگر ارتباط دهند و به جای آنکه به قول معروف «چرخ را از اول اختراع کنند»، از فناوریهای موجود در بازار در جهت منافع خود استفاده کنند (البته حفظ حقوق معنوی و #کپیرایت را هم فراموش نکنیم.)
یا من به یفتخر المحبون
در فرازی از دعای جوشن کبیر آمده یا من به یفتخر المحبون (ای که دوستان به دوستیاش افتخار کنند) و به نظر میرسد که اگر دولوپرها هم از چنین صفتی برخوردار گردند، علاوه بر کار خود، میتوانند از زندگی شخصی خود هم بیش از پیش لذت ببرند. ما به جای آنکه به فردی دنبالهرو دیگران مبدل شویم و سعی کنیم با دولوپرهای حرفهایتر از خود، وبمسترهای باسابقهتر از خود و برنامهنویسان معروفتر از خود به قول معروف طرح رفاقت بریزیم، سعی کنیم خود به کسی مبدل شویم که سایرین به دوستی با ما افتخار کنند که بدون شک، تجربهٔ چنین حسی بسیار خوشایند خواهد بود (در همین راستا، میتوانید به مقالهٔ چرا اکثر افراد به دنبال یک قهرمان، لیدر و اسطوره میگردند تا وی را در زندگی شخصی خود دنبال کنند؟ مراجعه نمایید.)
یا ابصر من کل بصیر/ یا اخبر من کل خبیر / یا حسن البلاء / یا ذا الفعل الرشید
وقتی شما نرمافزاری را منتشر میکنید، به خصوص اگر نرمافزار شما وب اپلیکیشن و یا اپلیکیشنی باشد که بر بستر وب کار میکند، دیگر عنان نرمافزار از دست شما خارج است؛ لذا نیاز است تا فرض را بر این بگذارید که تعدادی هکر حرفهای بیکار نشسته تا وب اپلیکیشن شما را هَک کنند! در اینجا است که صفاتی همچون یا ابصر من کل بصیر (ای بیناتر از هر بینا) و یا اخبر من کل خبیر (ای آگاهتر از هر آگاه) به داد ما میرسند. در واقع، ما میبایست نقش یک هکر کلاه سفید را بازی کرده، حفرههای امنیتی نرمافزار خود را یافته و همواره یک گام جلوتر از هکرهای کلاه سیاه باشیم (در همین راستا، توصیه میکنیم به مقالهٔ آشنایی با مفهوم Defensive Programming در صنعت توسعهٔ نرمافزار مراجعه نمایید.)
تیر خلاص در این راستا، داشتن صفتی همچون یا حسن البلاء (ای نیک آزمایش) است که به ما کمک میکند تا نرمافزار خود را به بهترین شکل آزمایش کرده و این زحمت را به دوش هکرهای باغرض نیندازیم! همانطور که در عنوان این آیتم اشاره شد، یکی دیگر از صفات خداوند یا ذا الفعل الرشید (ای صاحب کار مستحکم) است؛ به عبارت دیگر، دولوپر موفق کسی است که کارش را به حرفهایترین شکل ممکن انجام دهد که خللی در آن ایجاد نشود.
یا رازق المقلین
بسیاری از دولوپرهای سراسر دنیا را میبینیم که دانش خود را به رایگان در اختیار سایرین قرار میدهند. شاید یکی از دلایل این کار ایشان، حس نوعدوستیشان باشد که ممکن است فکر کنند شاید فرد بااستعدادی باشد که به خاطر عدم برخورداری از شرایط مالی خوب، نتواند به دنبال علاقهاش (برنامهنویسی) برود؛ لذا بستری را فراهم میکنند که این گروه از افراد صرفاً با دسترسی به اتصال اینترنت و یک لپتاپ، بتوانند به حوزهٔ برنامهنویسی ورود پیدا کنند.
خداوند هم اینچنین است و صفتی همچون یا رازق المقلین (ای روزی ده ناداران) به خوبی برازنده ذات احدیت است. در واقع، اگر ما دولوپرها هم بتوانیم از چنین صفتی برخوردار گردیم و بدون چشمداشت مالی دانش خود را در اختیار سایر همنوعان خود قرار دهیم، خواهیم توانست تازه همچون کشورهای به قول برخی آقایان بلاد کفر مثل آمریکا شده و حس نوعدوستی را در جامعه ترویج دهیم!
یا من اله المثل الاعلی
اگر ترجمهٔ فارسی قرآن را خوانده باشید، خواهید یافت که در آیات مختلف قرآن مثالها و داستانهای فراوانی آورده شده و این هم به خاطر متصف بودن خداوند متعال به صفت یا من اله المثل الاعلی (ای که از آن اوست عالیترین مثالها) است. اگر شما دولوپری هستید که قصد آموزش اصول برنامهنویسی را به یک فرد مبتدی دارید، به جای استفاده از Jargon یا بهتر بگوییم «اصطلاحات فنی» حوزهٔ برنامهنویسی، بهتر آن است که از مثالهای روزمرهای که افراد با آنها درگیر هستند استفاده کنید که بدون شک افراد مبتدی با این سَبک آموزش، بهتر متوجه اسلوب برنامهنویسی میشوند (به طور مثال، در دورهٔ آموزش زبان برنامهنویسی جاوا در سکان آکادمی، سعی کردهایم چنین سَبک آموزشی را پیادهسازی کنیم.) برای روشنتر شدن این مسأله، مثالی میزنیم.
نیکان پوره، مدرس ۱۳ سالهٔ دورهٔ آموزش زبان اسکرچ به کودکان در سکان آکادمی، زمانی که میخواست دستورات شرطی را به مخاطبین دورهٔ آموزش برنامهنویسی اسکرچ انتقال دهد، سعی کرد وارد زندگی روزمرهٔ بچهها شده و مثالی برای ایشان بیاورد که این مفهوم به خوبی در ذهن ایشان جا بیافتد. مثالی که نیکان زد بدین صورت بود که:
فرض کنید مامانتون بتون میگه اگر در کارنامهات همهٔ نمرههات ۲۰ باشه برات یک تبلت میخرم و در غیر این صورت، خبری از تبلت مَبلت نیست!
و به این شکل بود که نیکان این داستان را به دستورات شرطی if در برنامهنویسی ربط داد که به نظر میرسد منجر به درک بهتر مطالب شده باشد.
یا صبور / یا شدید
در فرازهایی از دعای جوشن کبیر، از خداوند متعال به عنوان یا صبور (ای شکیبا) و یا شدید (ای سخت نیرو) یاد میشود. بدون تعارف بایستی بگوییم که برنامهنویسی کار دشواری است و اگر زمانی که در این حوزه پا میگذاریم صبر و پشت کار نداشته باشیم، بعید به نظر میرسد که بتوان به موفقیتهای چشمگیری در این حوزه دست یابیم.
یا سریع
به نظر میرسد که خداوند هم در کارهایش از متودولوژی Agile (چابک) استفاده میکند که در دعای جوشنکبیر از خداوند به عنوان یا سریع (ای سریع در کارها) یاد میشود؛ در واقع، یکی از قوانین دوازدهگانهٔ اجایل، تحویل سریع پروژه به مشتری است و چنانچه ما، به عنوان دولوپر، از چنین صفتی برخوردار باشیم، همین مسأله منجر به رضایتمندی بیشتر مشتریانمان خواهد شد.
یا ملهم العرب و العجم
زمانی که دوره آموزش زبان برنامهنویسی جاوا را برای انتشار در سایت نردبان تألیف میکردیم، کتابی تحت عنوان Beginning Programming with Java For Dummies نوشته دکتر Barry Burd را به عنوان رِفرنس استفاده میکردیم که ایشان استاد دانشگاه ایلینویز آمریکا بود. پس از آنکه در جایی از درک کتاب به مشکل برخوردیم، یک ایمیل برای ایشان ارسال کردیم و جالب است بدانید که ظرف مدت چند ساعت کاری، ایشان ایمیل را به بهترین شکل ممکن پاسخ داد و این در حالی بود که ایشان به طور حتم میدانست کسی که برایش این ایمیل را ارسال کرده از کشور تحریم شدهٔ ایران است (در همین راستا، توصیه میکنیم به مقالهٔ ارسال نامهٔ تشکرآمیز برای Jeff Atwood (هم بنیاگذار استک اورفلو) و دریافت پاسخ در کمال ناباوری! نیز مراجعه نمایید که تجربهای جالب از نگارندهٔ این مقاله نقل شده است.)
یکی از صفات خداوند متعال یا ملهم العرب و العجم (ای الهامبخش عرب و عجم) است؛ یعنی خداوند فارغ از اینکه عرب باشیم یا نباشیم، لطف خود را به سوی ما سرازیر میکند و این در حالی است که دکتر Barry Burd به خوبی این صفت بارز خداوند را درک کرده و در راه تولید علم، اصلاً برایش فرقی نمیکرد که یک ایرانی به کمک وی نیاز دارد یا یک هموطن آمریکاییاش! اما سؤالی که در اینجا به ذهن میرسد این است که تا به حال چند بار برای مدیران سایتهای معمولی ایرانی ایمیل ارسال کردهاید و پس از گذشت چند ماه، اگر نگوییم چند سال، کماکان منتظر پاسخ ایمیل خود هستید و این در حالی هست که هم ما و هم مدیر آن سایت، هر دو هموطن هستیم؟
یا من جعل لکل شیئ امدا
وقتی میگوییم که خداوند از صفت یا من جعل لکل شیئ امدا برخوردار است، این بدان معنا است که ذات احدیت برای هر کاری و هر چیزی مدت و دورانی یا به عبارتی یک Deadline قرار داده است. در دنیای برنامهنویسی هم قضیه کاملاً به همین صورت است. در واقع، هر پروژه میبایست دارای یک تاریخ شروع و پایان باشد و در صورتی که ما Deadline (ضربالعجل) پروژه را رعایت نکنیم، شاید رقبا ایدهٔ ما را به نوعی بهتر از ما عملی کرده و گوی سبقت را از ما بربایند. روی هم رفته، به نظر میرسد دولوپری را میتوان به عنوان یک دولوپر موفق قلمداد کرد که کارش دارای برنامه باشد، برای کدنویسی بخشهای مختلف پروژهٔ خود زمان تعیین کرده و تمام تلاش خود را به کار میبندد تا پروژهٔ خود را به موقع تحویل دهد.
یا من لا ینقص من خزائنه شیئ
لینوس تروالدز خالق کِرنِل #لینوکس است؛ او هم میتوانست همچون سیاستی که مایکروسافت در پیش گرفته بود، اعتقاد به فلسفهٔ اپنسورس نداشته باشد و کلیهٔ حقوق کِرنِل لینوکس را برای خود محفوظ نگاه دارد اما به نظر میرسد که اعتقاد به فلسفهٔ اپنسورس بود که منجر به موفقیت حیرتبرانگیز سیستمعامل گنو/لینوکس که مبتنی بر کِرنِل است نسبت به رقبا شد (لازم به ذکر است که اکثر سایتهای دنیا، روی هاستهایی با یکی از توزیعهای سیستمعامل گنو/لینوکس میزبانی میشوند.)
یکی از صفات خداوند متعال صفت یا من لا ینقص من خزائنه شیئ (ای که کم نشود از گنجینههایش چیزی) است؛ دولوپرها اصلاً نمیبایست از این بابت واهمه داشته باشند که اگر دانش خود را با دیگران به اشتراک بگذارند، چیزی را از دست خواهند داد؛ بلکه برعکس، با اشتراکگذاری دانش و تواناییهای خود، بستری برای رشد بیشتر خود ما فراهم خواهد شد (البته لازم به ذکر است که در سالهای اخیر غول نرمافزاری دنیا یعنی مایکروسافت هم به حوزهٔ اپنسورس علاقمندتر شده است!)
یا من کتابه محکم
اگر واژهٔ کتاب را در این اسم خداوند به همان کتاب قرآن کریم تفسیر کنیم، نیاز به توضیح ندارد که پایه و اساس کتاب قرآن محکم است؛ یک دولوپر موفق، کسی است که Documentation (مستندات) مرتبط با پروژهای خللناپذیر و قابلاستناد ایجاد کند. به عبارت دیگر، همواره اینگونه فرض کنید که ممکن است شما به دلایل مختلفی، همچون قطع همکاری، مشکلات شخصی، بیماری و غیره دیگر نمیتوانید روی پروژهای کار کنید. حال اگر پروژهٔ شما به خوبی مستند شده باشد و کلیهٔ سورسکدهای شما کامنتگذاری شده باشند، دولوپر دیگری که شروع به توسعهٔ پروژهٔ شما میکند بدون هیچگونه سردرگمی خواهد توانست کار خود را به پیش برد و در غیر این صورت، حتی ممکن است مجبور شود که پروژه را از ابتدا ریفکتور کند!
یا من لا یمنعه فعل عن فعل
خدا دارای صفتی تحت عنوان است؛ در تفسیر این صفت، خیلی ساده میتوان دعا کردن بندگان را مد نظر قرار داد. چگونه میشود که خداوند در آن واحد میتواند به دعای تمامی بندگانش گوش فرا دهد. یک دولوپر خوب هم نمیبایست وقتی در آن واحد روی چندین پروژه کار میکند، سردرگم شده و از مدیریت خوب همهٔ پروژهها ناتوان گردد. اگر ما هم همچون خداوند از چنین صفتی برخوردار گردیم، آن وقت است که خواهیم توانست در آن واحد چندین مشتری را راضی نگاه داشته و به صورت همزمان یا کانکارنت روی چندین پروژه کار کنیم.
یا من لا یبرمه الحاح الملحین
سروکله زدن با مشتریهای پروژههای برنامهنویسی کار بسیار دشواری است و این دشواری زمانی دوچندان میشود که مخاطب شما چیزی از آیتی، توسعهٔ نرمافزار و دیگر حوزههای مربوطه نداند؛ به عبارتی، تکنوفوب باشد. خیلی از مشتریهای پروژههای نرمافزاری هستند که امروز فیچری را سفارش میدهند و ما هم با کلی دردسر آن را پیادهسازی میکنیم اما فردا روزی نظرشان عوض میشود و فیچری که سفارش داده بودند را دستخوش تغییر میسازند!
گرچه چنین رفتاری به نوعی غیرحرفهای است، اما به هر حال به منظور ایجاد یک تجربهٔ کاربری خوب چارهای جز این نیست تا آنقدر نرمافزار را پایین و بالا کرده تا در نهایت به آن چیزی که مطلوب کاربرانش است دست یابیم و اینجا است که باید به صفتی همچون یا من لا یبرمه الحاح الملحین (ای که به ستوهش نیاورد پافشاری اصرار ورزان) چنگ زنیم که در غیر این صورت، با مشتریان خود درگیر خواهیم شد!
سخن پایانی
درست است که این مقاله کمی طولانی شد، اما هدف بیشتر این بود که به اصلاح Out of The Box فکر کردن را بیاموزیم که حتی به ادعیه و مناجات هم میتوان به شکل دیگری نگریست! در صورتی که دیدگاههای مشابهی با موارد مطروحه در این مقاله دارید، در بخش نظرات میتوانید نقطه نظرات خود را با ما و سایر کاربران سکان آکادمی به اشتراک بگذارید.