سلام دوستان ویرگولی! من سبحان هستم، دانشجوی ترم آخر مهندسی کامپیوتر که این پروژه، اولین تجربه واقعیام خارج از محیط دانشگاهی بود. میخوام تجربیاتم رو از ساخت یک اپ موبایل برای شرکتمون در حوزه تبرید (سیستمهای سرمایشی مثل یونیتها و اواپراتورها) با شما به اشتراک بذارم. این پروژه نه تنها پر از چالشهای فنی بود، بلکه بیشتر از هر چیز، مهارتهای نرم شغلیام رو به چالش کشید – چیزهایی مثل ارتباطات، مذاکره، حل تعارض، و خودتنظیمی تحت فشار. اگر شما هم دانشجو هستید یا در حال شروع یک پروژه نرمافزاری، امیدوارم این مطلب مفید باشه و مسیر واقعی یک پروژه رو نشون بده. بیایم قدمبهقدم مرور کنیم، از تعریف پروژه تا انتشار در گوگل پلی.
پروژه وقتی به من سپرده شد، وبسایتش تقریباً آماده بود. یکی از همکارهای خفنم (که واقعاً کاربلد بود) سایت رو طراحی کرده بود و کدهای Visual Basic رو به JS تبدیل کرده بود. حالا نوبت من بود که این سایت رو بررسی کنم و بر اساسش اپ موبایل بسازم. مدیر بهم گفت: "سایت رو نگاه کن و اپ رو طراحی کن." ساده به نظر میرسه، اما واقعیت این بود که خیلی چیزها گنگ بود. مثلاً، حتی کدهای JS رو باید تغییر میدادم تا با اپ موبایل سازگار بشه، و از روی کدهای سایت میفهمیدم ساختار چطوره – چی به چی مرتبطه، فرمولها چطور کار میکنن، و غیره. این کار مثل پازل بود؛ باید خودم کشف میکردم و تغییر بدم.
از همون اول، مسئولیت فرانتاند (با فلاتر) و بکاند (Node.js) رو بر عهده داشتم، که برای یک دانشجوی ترم آخر مثل من، فشار زیادی بود. بحث امنیت مهم بود – باید مطمئن میشدم دادهها امن باشن. مدیریت کاربران هم چالش داشت؛ چطور اسکیل کنیم برای تعداد زیاد کاربر؟ با تیم IT صحبت کردم در مورد سرور و دامنه. سرورمون داخل ایران بود، پس سرعت اینترنت ممکن بود مشکلساز بشه، و بعداً مجبور شدیم به سرور خارجی منتقل کنیم.
یکی از چالشهای اولیه، طراحی UI بود. از طراح رابط کاربریمون خواستم یک صفحه و شماتیک اولیه طراحی کنه، اما بعدش خودم مجبور بودم تغییرات رو مدیریت کنم. خیلی از درخواستها گفتاری بود و هیچ طراحی آمادهای نداشت، پس خودم تصور میکردم و طراحی میکردم، که باید با سبک سایت تطبیق میداشت. این کار خلاقیت میخواست، اما گاهی خستهکننده بود.
در این مرحله، صحبت با مدیر و تیمها شروع شد. مدیر اصلی فنی بود و بحثها رو علمی پیش میبرد، اما مدیر تیم فروش بیشتر روی جنبههای کاربری تمرکز داشت. هر کسی از زاویه خودش نگاه میکرد، پس باید زبان مشترکی پیدا میکردم. این تعاملها به من یاد داد چطور با آدمهای مختلف حرف بزنم – یکی رو با دادههای فنی قانع کنم، یکی رو با مثالهای عملی.
با شروع توسعه، چالشها بیشتر شد. اپ باید بر اساس سایت باشه، اما خیلی چیزها مبهم بود. مثلاً، فیلترهای انتخاب محصول چطور کار کنه؟ فرمولهای محاسباتی رو چطور پیاده کنم؟ خودم شروع کردم به کدنویسی، اما مسئولیت فرانت و بک همزمان، فشار میآورد. بحث اسکیل هم بود؛ اپ قراره عمومی منتشر بشه یا فقط برای مشتریان خاص؟ تصمیم گرفتیم عمومی باشه، پس باید سرور رو برای تعداد زیاد کاربر آماده میکردیم. با تیم IT بحث کردیم در مورد ظرفیت سرور – داخل ایران بود، پس سرعت اینترنت ممکن بود اذیت کنه. این بحثها گاهی تنشزا میشد، اما با مذاکره، به توافق رسیدیم که بعداً به سرور خارجی منتقل کنیم.
جدا از فنی، تغییرات اغلب گفتاری بود. مثلاً، تیم فروش میگفت "این ویژگی رو اضافه کن"، بدون طراحی UI. مجبور بودم خودم تصور کنم و طراحی کنم، که باید با سبک قبلی تطبیق میداشت. این کار خلاقیت میخواست، اما گاهی گیجکننده بود. برای تست، اپ رو به افراد غیرفنی نشون میدادم – مثل خانواده یا دوستان – تا ببینم آیا بدون توضیح متوجه میشن یا نه. این کمک بزرگی بود؛ مثلاً، اگر صفحه لاگین گیجکننده بود، تغییرش میدادم. این روش به من یاد داد همدلی با کاربر نهایی چقدر مهمه – کاربرها ممکنه فنی باشن یا نه، پس اپ باید برای همه ساده باشه.
در این فاز، چالشهای غیرفنی بیشتر شد. صحبت با مدیرها و واحدهای دیگه، جنبههای مختلفی داشت. یکی فنی بود، یکی علمی، یکی کاربری. باید ایدههاشون رو ادغام میکردم، که گاهی تعارض ایجاد میکرد. مثلاً، مدیر فروش میخواست ویژگیهای بیشتری، اما من توضیح میدادم که ممکنه اپ رو کند کنه. این مذاکرهها به من یاد داد چطور با فکرهای مختلف کنار بیام.
پروژه که به جای خوبی رسید، بحرانها شروع شد. اول، سیستمهای شرکت هک شد و سرورها یک ماه قطع بود. دسترسی به کدها صفر شد، و من احساس بیاستفاده بودن میکردم. راهحلم، استفاده از نسخههای محلی بود که پیشتر پشتیبان گرفته بودم. اما این تأخیر، پروژه رو عقب انداخت و انگیزهام رو کم کرد. شبها مجبور بودم کد بزنم و بررسی کنم، چون روزها پر از هماهنگی بود. این کار خستهکننده بود، اما به من کمک کرد خودتنظیمی رو تمرین کنم – استرس رو مدیریت کنم و ادامه بدم.
بعد، جنگ ۱۲ روزه و قطعی اینترنت. اینترنت ملی شد، و تسترهای خارجی (مثل دبی) نمیتونستن تست کنن. امید و انگیزهام گرفته شد؛ احساس میکردم پروژه متوقف شده. این لحظات سخت بودند، و من مجبور بودم خودم رو آرام کنم و راهحل پیدا کنم، مانند انتقال بکاند به سرور خارجی. با تیم IT بحث کردم، بودجه و امنیت رو هماهنگ کردیم، و دامنه رو تنظیم کردم. این کار شبانهروزی بود، و گاهی تا نیمهشب کار میکردم. گرمای تابستان و قطعی برق هم اضافه شد؛ میتینگها قطع میشد، لپتاپ خاموش میشد. راهحل من، کار در ساعات خنکتر شب و استفاده از باتریهای اضافی بود. این چالشها، مهارت حل مسئله رو تقویت کرد – مثلاً، تست آفلاین انجام بدم تا زمان از دست نره.
در نهایت، انتشار اپ در گوگل پلی. چون ایرانی هستیم، تحریمها مشکل ایجاد کرد. باید از شماره و حساب غیرایرانی استفاده میکردم، و این یعنی هیچ نامی از من در اپ نیست. این خیلی ناراحتکننده بود – احساس میکردم زحماتم دیده نمیشه. نسخه اولیه رد شد به دلیل اسکرینشاتهای نامنطبق (مثل صفحه لاگین)، اما اصلاح کردم و موفق شدم. مکاتبات برای شماره DUNS یک هفته طول کشید، و با مدیر بحث کردم تا بودجه تأمین بشه.
در این مرحله، تغییرات زیادی از تیم فروش آمد – گاهی بیش از توانم. با سیاستهایی مثل توضیح محدودیتها، رد میکردم. مثلاً، میگفتم "این تغییر اپ رو کند میکنه" و با دادههای تست، قانع میکردم. دورکاری فشار رو بیشتر کرد؛ گاهی تا نیمهشب کار میکردم تا شکایت نشه. اما این تجربیات، رشد داد – یاد گرفتم چطور چطور با فشار کنار بیام.
این پروژه اولین تجربه رسمیام بود، و چالشهای غیرفنی جالبتر بودند. تعامل با آدمهای مختلف – مدیر فنی، فروش کاربری – به من یاد داد چطور زبان مشترکی پیدا کنم. اختلافنظرها رو با مذاکره حل کردم، و بحرانها رو با خودتنظیمی مدیریت کردم. مثلاً، جنگ و قطعی اینترنت امیدم رو گرفت، اما با تمرکز روی هدف، ادامه دادم. تست با خانواده، همدلی با کاربر رو یاد داد. خلاصه، پروژه نشون داد مهارتهای نرم مثل ارتباطات و صبر، قلب موفقیت هستن.
در نهایت، اپ منتشر شد و چتبات اولیه آماده. پروژه ۵ ماهه تموم شد، اما تجربیاتش موندگار شد. اگر شما هم در پروژهای هستید، یادتون باشه چالشها فرصتن – با مهارتهای نرم، همه چیز ممکنه. خوشحال میشم نظراتتون رو بشنوم! اگر سؤالی داشتید، کامنت بذارید.
(این مطلب بر اساس تجربیات شخصیمه و امیدوارم مفید باشه. اگر دوست داشتید، اپ رو در گوگل پلی چک کنید!)
کنار بیام.ک