برنامهنویس فولاستک کیست و کِی واقعاً به او نیاز داری؟
فولاستک یعنی کسی که هم سمت سرور و هم سمت کاربر را میسازد. ولی سؤال مهمتر این است: برای پروژهٔ تو یک فولاستک درستتر است یا یک تیم تخصصی؟ این نوشته تفاوت را بدون اغراق توضیح میدهد.
«فولاستک» عنوان شلوغی است و هر کسی یک چیزی ازش میفهمد. تعریف سادهاش این است: برنامهنویس فولاستک کسی است که هم آن قسمتی را میسازد که کاربر میبیند و با آن کار میکند، و هم آن قسمتی را که پشتصحنه داده را نگه میدارد و منطق کسبوکار را اجرا میکند.
دو نیمهٔ کار
- فرانتاند همان چیزی است که در مرورگر یا موبایل میبینی: صفحهها، فرمها، سرعت باز شدن، اینکه روی گوشی هم درست کار کند.
- بکاند چیزی است که نمیبینی: پایگاه داده، حسابوکتابها، دسترسیها، اتصال به درگاه پرداخت یا پیامک، و اینکه وقتی صد نفر همزمان آمدند سیستم نخوابد.
فولاستک یعنی یک نفر هر دو طرف را میفهمد و میتواند یک قابلیت را از دیتابیس تا دکمه کامل تحویل بدهد.
چرا این برای یک پروژهٔ کوچک اهمیت دارد
وقتی دو نفر جدا این دو نیمه را میسازند، بخش زیادی از زمان صرف هماهنگی بینشان میشود: چه دادهای با چه شکلی رد و بدل شود، چه کسی این حالت خطا را مدیریت کند، چرا این عدد اینجا فرق دارد. در تیم بزرگ این هزینه ارزشش را دارد، چون کار موازی پیش میرود. در پروژهٔ کوچک معمولاً ندارد — همان هماهنگی میشود بیشترِ پروژه.
یک فولاستک این هزینه را حذف میکند، چون هماهنگی داخل سر خودش اتفاق میافتد. در عوض، کار موازی پیش نمیرود: یک نفر است و یک صف کار.
کِی فولاستک انتخاب درستی است
- محصول در ابتدای راه است و هنوز معلوم نیست چه چیزی میماند و چه چیزی عوض میشود.
- دامنهٔ کار متوسط است و میشود یک نفر همهاش را در ذهن نگه دارد.
- سرعت تصمیم مهمتر از سرعت تولید است؛ یعنی بیشترِ وقت صرف فهمیدن میشود نه تایپ کردن.
- بودجه اجازهٔ تشکیل تیم چندنفره را نمیدهد و به یک نسخهٔ کارکننده احتیاج داری.
کِی فولاستک انتخاب درستی نیست
- کار آنقدر بزرگ است که یک نفر گلوگاه میشود — هرچقدر هم توانا باشد، روزی هشت ساعت بیشتر ندارد.
- یک تخصص خیلی عمیق لازم داری: مثلاً بهینهسازی پایگاه دادهٔ بسیار بزرگ، امنیت تخصصی، یا کار سنگین روی موبایل نیتیو.
- کیفیت بصری و تجربهٔ کاربری، خودش نیمی از محصول است؛ آنجا یک طراح واقعی لازم است، نه برنامهنویسی که طراحی هم بلد است.
چطور یک فولاستک را ارزیابی کنی
چون ادعای دو طرفه است، ارزیابی هم باید دو طرفه باشد. از او بخواه یک قابلیت واقعی از پروژهٔ قبلیاش را توضیح بدهد: داده کجا ذخیره میشد، چطور به صفحه میرسید، و اگر کند میشد اول کجا را نگاه میکرد. کسی که واقعاً هر دو طرف را ساخته باشد، این مسیر را روان تعریف میکند. کسی که فقط یک طرف را بلد است، وسط راه مبهم میشود.
نکتهٔ دیگر: بپرس چه چیزی را بلد نیست. جواب صادقانه به این سؤال بیشتر از هر فهرست مهارتی ارزش دارد.
جمعبندی
فولاستک نه یک درجهٔ بالاتر است نه پایینتر؛ یک شکل دیگر از کار است که در پروژههای متوسط و در ابتدای راه معمولاً بهصرفهتر درمیآید، و در مقیاس بزرگ جایش را به تخصص میدهد.
اگر میخواهی ببینی در عمل یعنی چه، این سایت خودش نمونه است: دسکتاپ، ۵۳ برنامهٔ داخلش، پنل مدیریت و زیرساختش را یک نفر نوشته. شرح کارها و مدلهای همکاری در صفحهٔ همکاری است و سوابق در رزومه.