یکی از مشکلات برنامه نویس بودن این است که شما همیشه نیاز به سرهم بندی دارید. یک برنامه جدید، یک پروژه جانبی جدید یا، در این مورد خاص، یک نیاز تحریک آمیز برای اختراع مجدد چرخ با یک چارچوب دیگر ایجاد کنید. وقتی شما یک برنامه نویس و یک کارآفرین هستید، اوضاع خیلی بدتر می شود زیرا توانایی ایجاد تقریباً هر چیزی را در دنیایی دارید که تأکید زیادی بر فناوری دارد.
اگر با دنیای برنامه نویسی آشنایی ندارید، می توانید یک فریم ورک را به عنوان مجموعه ای از کدها یا سیستمی در نظر بگیرید که نیاز به ایجاد مجدد ابزارهای رایج را کاهش می دهد تا بتوانید چیزهای سردتر را سریعتر بسازید. به جای اینکه تمام وقت خود را صرف نوشتن کد کنید تا مثلاً هر بار که به یک دکمه آبی نیاز دارید، یک دکمه آبی بسازید، می توانید، کم و بیش، دکمه آبی خود را کپی و چسبانده و دوباره از آن استفاده کنید.
در مورد من، من از اینکه مدام مجبور به حل چند مشکل مربوط به CSS (کدی که یک وب سایت را زیبا می کند) را حل کنم خسته و خسته شده بودم. یکی از موارد مهم پاسخگویی بود. ایجاد سایت یا برنامه ای که در اندازه های مختلف صفحه نمایش (به عنوان مثال موبایل، تبلت، دسکتاپ) عالی به نظر برسد، یک کار تکراری دائمی است که بر اساس انتخاب فونت، چیدمان وب سایت و ده ها عامل دیگر تغییر می کند.
دهها، اگر نگوییم صدها، فریمورکهای CSS در حال حاضر وجود دارند که این مشکلات را به روش خود حل میکنند، اما من از یادگیری فریمورکهای جدید خسته و خسته شده بودم یا مجبور بودم دائماً کد فریمورک را تغییر دهم تا «درست» کار کند. طراحی منحصر به فردی که ما سعی در پیاده سازی آن داشتیم. من “سیستم من” را می خواستم.
پروژه ساده شروع شد، اما به سرعت برای مدیریت آنقدر پیچیده شد
در ابتدا ایده کاملاً واضحی از آنچه میخواستم داشتم: مجموعهای کوچک از استانداردها که میتوانم آنها را در یک طرح جدید قرار دهم، کمی برای آنچه نیاز داشتم اصلاح کنم و تقریباً بدون اینکه شبیه هر طرح دیگری به نظر برسد کار کند. بیرون آنجا .
کار به اندازه کافی آسان به نظر می رسید. میتوان آن را طی چند روز انجام داد و پیادهسازی کرد و من برای همیشه سیستم از پیش تعیینشدهام را برای کار کردن و ساختن آن دارم. اما بیش از ساعت اول طول نکشید تا من به جزئیات طاقتفرسا درباره جزئیترین جنبههای سیستم منحرف شوم.
فونت ها و تایپوگرافی بخش بزرگی از هر طراحی هستند. میخواستم پیادهسازی «بینقص» اندازهها را در هر نوع دستگاهی و برای اینکه کد بهطور خودکار اندازهها را مجدداً قالببندی کند، بدانم. من روزها را گذراندم که از سوراخ خرگوش تایپوگرافی و همه چیزهای زیر و بم، از پیکسل گرفته تا پیکا و نقطه پایین می رفتم. همانطور که مشخص است، تقریباً هر سیستم اندازه فونت اساساً اندازه گیری های دلخواه را انجام می دهد که قابلیت ترجمه بسیار کمی بین آنها دارد و همه آنها در مورد “اندازه گیری” ایده آل نظر دارند.
اما به همین جا ختم نشد، به عرض محتوا، اندازههای بینهایت صفحه، مقیاسهای تایپوگرافی و نقاط شکست عالی رفت.
تمرکز بر روی میکرو به جای تصویر بزرگ به این معنی بود که پروژه به جایی نرسید.
من یک راهحل را پیادهسازی میکردم، متوجه میشدم که به معنای واقعی کلمه در همه سناریوها کار نمیکند و سعی میکردم راهحلهای «در همه موقعیتها کار بینقص» را کشف کنم. سپس، با پیشرفت سیستم، ویژگیهای بیشتر و بیشتری اضافه میشوند، که برای “کارکرد آن در همه شرایط” دشوارتر است.
ادامه پیدا کرد: بازنشانی کامل مرورگر چه بود؟ آیا میتوانم کاری کنم که همه آنها با شبکههای در حال تغییر پویا و بدون درخواست رسانه کار کنند؟ آیا این راه کارآمدترین بود؟ تصور من این بود که هفته ها وقت تلف شده و نزدیک نبودن به “سیستم کامل” بود.
در پایان، ما از یک نسخه بسیار کوتاه شده آن استفاده کردیم و همانطور که مشخص شد، تقریباً آنچه را که از ابتدا میخواستم انجام دادیم، بدون نیاز به مهندسی بیش از حدی که در آن انجام داده بودم. آی تی.
چیزی که کارساز بود به جای انتظار برای “کمال” بودن، ساده ترین نسخه پروژه را به مرحله اجرا درآورد.
بهجای ایجاد چارچوب «عالی»، چیزی که کار میکرد داشتن یک سیستم از چند پیشفرض معقول بود که میتوانستیم به راحتی آنها را نادیده بگیریم و در صورت نیاز بدون تنظیم هر بیت کد، آن را تنظیم کنیم. با تمرکز بر روی مشکل “عمومی”، کار بر روی مشکل “خاص” را آسان کردیم، بدون این که همه پیچیدگی های تلاش برای “هرگز دوباره کد را دوباره ننویسیم” در “چارچوب کامل”.
نکته خنده دار این است که راه حل نهایی به هدف اصلی نزدیک تر بود. در اصل هرگز در نظر گرفته نشده بود که “سیستم کامل در همه موقعیت ها” باشد، فقط به نوعی منحرف شد و به این شکل تبدیل شد زیرا من بسیار در جزئیات کوچک پیچیده شده بودم و چشمانم را از تصویر بزرگ گم می کردم.
این باعث شد متوجه شوم که زمینه های زیادی در رشد کسب و کار من وجود دارد که در آن اشتباهات مشابهی انجام می دهم. موقعیتهایی که در آنها آنقدر در جزئیات کوچک غرق میشدم که هدف اصلی کاری را که میخواستم انجام دهم، اجرا یا بهبود بخشم فراموش کردم.
سه نکته ای که من را به یک کارآفرین بهتر تبدیل کرد:
- تمرکز را روی تصویر بزرگ نگه دارید. شما هرگز کامل نخواهید بود یا برای هر موقعیت ممکن پاسخگو نیستید.
- احتمالاً با درگیر شدن در جزئیات، مشکلی را که روی آن کار می کنید، پیچیده تر می کنید.
- ابتدا ساده ترین نسخه ممکن از چیزی را ایجاد و منتشر کنید و با گذشت زمان آن را تنظیم کنید. انتظار برای کمال به این معنی است که زمان و پول بیشتری نسبت به ارزش کار تلف خواهید کرد.