مرغ همسایه غاز است

گوگل، مایکروسافت، آی‌بی‌ام، دل، اچ‌پی، ادوبی و صدها شرکت کوچک و بزرگ خارجی شرکت‌هایی هستند که وقتی به مجلات، نشریه‌ها، برنامه‌ها و بلاگ‌های فارسی در حوزه فناوری اطلاعات نگاه می‌کنید، نام آن‌ها را بسیار و فراگیر خواهید دید.
بیان نام آن‌ها و بررسی محصولات و خدماتشان از دید این رسانه‌ها اطلاع رسانی محسوب می‌شود؛ هم اینجا و هم در دیگر کشورها. تا اینجا که مساله اطلاع‌رسانی است همه چیز خوب است و ایرادی به آن وارد نیست.

ولی مساله‌ی اصلی این است که این قاعده برای شرکت‌های وطنی برقرار نیست. به بیان دیگر، این کار برای شرکت‌های خارجی «اطلاع‌رسانی» و برای شرکت‌های ایرانی «تبلیغ» محسوب می‌شود.!!!!!!!!
برای نمونه اگر نام یک شرک خارجی در یک برنامه تلویزیونی گفته شود، اطلاع‌رسانی است ولی اگر نام یک شرکت یا محصول ایرانی گفته شود می‌شود «تبلیغات»!!!؟؟؟ و برای همین هم اصلاً گفته نمی‌شود و مساله دقیقا همین است.
البته شاید تک و توک بلاگ‌ها یا دیگر رسانه‌های فارسی را ببینید که چنین نیستند ولی در کل فضا همانی است که می‌دانید.

جالب این است که این مطلب در آن سو برای شرکت‌های آن سویی اینگونه نیست یعنی شما بسیار بلاگ، برنامه و به‌طور کلی رسانه‌ی خارجی (فرضاً آمریکایی) می‌بینید که درباره شرکت‌های آمریکایی  و محصولات و خدمات آن‌ها می‌نویسند و برنامه می‌سازند.

نمی‌دانم چرا و از کی اینجا اینگونه شده است که گفتن از شرکتی وطنی، تبلیغ محسوب می شود؛ همچنین نمی‌دانم برای بهبود یا اصلاح این روند چه باید کرد. ولی می‌دانم خارجی‌ها به این می‌گویند روابط عمومی و اطلاع‌رسانی نه تبلیغ.

اگر می خواهید بار دیگر که  مطلبی نوشته شد، آگاه گردید. عضو خوراک (feed) این بلاگ شوید.

پرسش‌های نابخردانه نپرسیم

تازگی‌ها خیلی غر می‌زنم که نشانه پیری است. ولی باور کنید آدم چیزهایی می‌بیند که گزیری جز گفتن نمی‌بیند.

0- شما نام این نوشته را بخوانید «پرسش‌های احمقانه نپرسیم»

1- پیشگفتار

اریک ریموند مقاله‌ای پرآوازه دارد به نام «چگونه هوشمندانه بپرسیم» (How To Ask Questions The Smart Way) بدبختانه این مقاله بسیار سودمند هنوز به فارسی برگردانده نشده است (به جز خلاصه‌ای بسیار کوتاه). چندی است که در دیدگاه‌های بلاگ‌ها (کامنت) و انجمن‌های اینترنتی (فروم‌ها) پرسش‌هایی می‌بینیم که نه تنها هوشمندانه نیستند، بلکه بسیار هم احمقانه هستند. نمونه این‌ها بسیار است و نمی‌دانم برای آن‌ها چه باید کرد.

بدبختی بزرگ‌تر اینکه – تا آنجا که به ما مربوط است و در فروم‌های کامپیوتری می‌بینیم- بسیاری از این پرسش‌ها را کامپیوتری‌ها (IT را هم بیفزایید) می‌پرسند که زمانی نشانه و نماد بودند برای به‌روز بودن، منطقی بودن و آگاه بودن. (گرچه این بلا گریبانگیر دیگر رشته‌ها نیز هست ولی ما به رشته‌های مرتبط خودمان کار داریم)

جدا از اینکه بسیاری از پرسش‌هایی که پرسیده می‌شود را می‌توان با اندک جستجویی در همان انجمن یا اینترنت بدست آورد، چندی از این پرسش‌ها بسیار نابخردانه هستند. در بخش پسین اندکی از این پرسش‌ها که نمونه خروار آن‌هاست را می‌آورم.

2- درآمد: این چند سناریو را ببینید، این چند سناریوها از انجمن (فروم) های فارسی بدست آمده‌اند. فقط هرچه فکر می‌کنم یادم نمی‌آید یکمی را در کدام فروم دیده‌ام.

سناریو 0 (الگو):

چگونه می‌توانم در مسابقه‌های اتومبیل‌رانی رالی شرکت کنم. البته من هنوز رانندگی بلد نیستم.

سناریو 1:

فرد الف: میخواهم لینوکس سرور نصب کنم که کارهای y،x و z  را انجام دهد.

فرد ب در پاسخ: کارهای 1و 2 و 3 را انجام می‌دهی سپس در ترمینال فلان چیز را می‌نویسی.

الف: ترمینال! ترمینال در لینوکس چیست و چگونه می‌توان به آن دسترسی پیدا کنم.

سناریو 2:

الف: می‌خواهم در  C++ فلان کار را بکنم. «من خیلی C++ بلد نیستم.»

ب: «برای اعداد خیلی بزرگ باید از آرایه استفاده کنی و یه کلاس جدید برای کار با اون بنویسی …. »

الف: «میشه بیشتر توضیح بدید. من چیزی از کلاس نمی دونم . همین طور میشه بگید.»

سناریو 3:

الف: «من میخوام برای یک اداره دولتی سایت طراحی کنم. اما تقریبا اولین کارم در این زمینه هست.
میخواستم بدونم سایتهای ادارات دولتی مثل شهرداریها و وزارت و غیره که میبینیم چطور طراحی میشه و چه امکاناتی داره
آیا بیشترش با CMS های اپن سورس انجام میشه و لطفا بهم معرفی کنید
آیا کسی این سایت ها رو بطور سفارشی و با کدنویسی طراحی میکنه و یا با دریم ویور …»

ب: «دوست عزیز در حال حاضر تقریبا هیج سایتی … نیست که بدون استفاده از سامانه‌های مدیریت محتوی (cms) پیاده‌سازی شده باشد. …»

الف: «… متاسفانه من با این سامانه ها تاحالا کار نکردم و نمیدونم یادگیری اونها چقدر زمان میبره.
هنوز اطلاعات کامل دقیق و رسمی از خصوصیات و محتوای سایت پیدا نکردم و احتمالا در جریان کار متوجه میشم. فعلا خواستم پیشاپیش آماده بشم و اطلاعاتی هم داشته باشم و بدونم اینکار رو قبول بکنم یا نه و بهتره چطور و با چه سیستمی شروع بکنم. … »

سناریو 4:

الف: خوشحالم که با شما آشنا شدم. من همه‌ی نوشته‌های بلاگ شما را بادقت خوانده‌ام. اما سوالی دارم. چگونه می‌توانم کار X را انجام دهم.

ب: نوشته‌ی Y من را با دقت بخوان.

الف: خوانده‌ام. اما جواب پرسش من در آن نیست.

ب: پاراگراف دوم خط سوم …

الف: آها. راست میگید. حالا چطور می‌تونم کار Z را انجام بدم.

ب: همان نوشته پاراگراف سوم.

الف: آها. یه سوال دیگه….

و این داستان ادامه دارد

————–

چیزی که برای من جالب است این است که بسیاری افرادی که پرسش‌های هوشمندانه ندارند این سه صفت را دارند. (به ویژه دوستان جوان‌تر و دانشجو)

  • کم صبر هستند
  • نوشته‌ها را بادقت، درست و کامل نمی‌خوانند
  • جستجو نمی‌کنند

با کمی کار روی این‌ها می‌توان پرسش‌های هوشمندانه‌تری پرسید. چیزی که نمی‌دانم این است این است که با افرادی که پرسش‌های احمقانه می‌پرسند چه باید کرد. به ویژه برای سناریوهای 2،1 و 3.

اگر می خواهید بار دیگر که  مطلبی نوشته شد، آگاه گردید. عضو خوراک (feed) این بلاگ شوید. همچنین می توانید مرا در تویتر دنبال کنید. «فهرست همه نوشته‌ها»ی من را اینجا ببینید.

۱۵ فرد تاثیر گذار در کسب و کار بازمتن

سایت eWeek نام ۱۵ فرد تاثیر‌گذار در کسب و کار بازمتن به همراه شرحی کوتاه آورده است که آنرا برگردانده و در اینجا بازنشر می‌دهم:

۱. لینوس توروالدز (Linus Torvalds): با ساخت سیستم عامل لینوکس و به اشتراک گذاشتن آن با برنامه‌نویسان حرفه‌ای روی اینترنت، در صنعت کامپیوتر انقلابی ایجاد کرد.

۲. میشل بیکر (Mitchell Baker): وی رییس بنیاد موزیلا، مدیر عامل پیشین و رییس شرکت موزیلا است، موسسه‌ای که مرورگر فایرفاکس آن ۱۵۰ میلیون کاربر دارد و مرورگر اینترنت اکسپلورر مایکروسافت را به چالش کشیده است.

۳. مایک میلینکویچ(Mike Milinkovich): مدیر عامل بنیاد اکلیپس است، کنسرسیومی غیرانتفاعی از شرکت‌های نرم‌افزاری که پشتیبان «بستر باز نرم‌افزارسازی اکلیپس» هستند، پروژه‌ای که یکی از موفق‌ترین جوامع کاربری بازمتن دنیا گردیده است.

۴. تیم گولدن (Tim Golden): معاون «Bank of America» یک مدافع شرکتی رده‌بالای بازمتن است و در موسسه‌های چندین میلیون دلاری لینوکس و نرم‌افزار‌های بازمتن را بکار گرفته است.

۵. جیم زملین (Jim Zemlin): وی مدیر بنیاد لینوکس است در آنجا وی با سهام‌داران لینوکس کار می‌کند تا رشد این بستر را شتاب بخشد.

۶ و ۷: پیتر فنتون (Peter Fenton) و لری آگوستین (Larry Augustin): آنها دو سرمایه‌گذار مخاطره‌پذیر برجسته هستند که به شکل تخصصی روی بازمتن کار می‌کنند. فنتون سال ۲۰۰۶ به شرکت سرمایه‌گذاری « Benchmark Capital» پیوست، پس از هفت سال کار در شرکت سرمایه‌گذاری «Accel Partners» جایی که روی شرکت هایی چون «JBoss»،«XenSource» و «Zimbra» سرمایه‌گذاری کرده بود. آگوستین از افراد گروهی بود که واژه «بازمتن» را رواج دادند وی شرکت «VA Linux» را تاسیس کرد، سایت SourceForge.net را راه انداخت، اکنون یک سرمایه‌گذار و مشاور برای شرکت‌های فناور تازه‌کار است.

۸. جیم جاگیلسکی (Jim Jagielski): از موسسان، رییس و عضو بنیاد نرم‌افزاری آپاچی است. آپاچی روی قدرت جامعه کاربری خود و افراد در این جامعه تمرکز کرده است و اعضای آپاچی محور این جامعه هستند.

۹. مایکل تیمان(Michael Tiemann): تیمان رییس بنیاد بازمتن است، موسسه‌ای که تصمیم دارد نرم‌افزارهای بازمتن را ترویج دهد.

۱۰. مارتن میکوس(Marten Mickos): خرید MySQL توسط سان، مدیر عامل MySQL مارتن میکوس را در جایگاهی قرار داده تا تجربه‌های اداره یک شرکت موفق بازمتن را به آنجا نیز نفوذ دهد.

۱۱. مارک فلوری (Marc Fleury): اکنون بازنشته شده است، فلوری شرکت خود J‌‌‌‌‌Boss را به مبلغ ۳۵۰ میلیون دلار به ردهت فروخت و مسئول چیزی است که به آن «ضریب Jboss» می‌گویند و در ارزش‌گذاری شرکت‌های برجسته بازمتن تاثیر دارد.

۱۲. راد جانسون(Rod Johnson): او مدیر عامل SpringSource است، سازنده چارچوب Spring، چارچوبی برای سرعت بخشیدن به ساخت برنامه‌های جاوا برای سرور‌های سازمانی. این شرکت در ژانویه شرکت Covalent را خرید، شرکتی که محصولات و خدماتش پروژه‌های بنیاد نرم‌افزاری آپاچی را هدف قرارداده بود، پروژه‌هایی چون:سرورهای برنامه‌های کاربردی Tomcat و Geronimo

۱۳. جاناتان شوارتز(Jonathan Schwartz): مدیر عامل سان و حامی بازمتن درون سان و برای مشتریان بیرون از سان، وی بازمتن کردن چندین فناوری سان از جمله جاوا را سرپرستی کرد.

۱۴. مارک شاتل‌ورث(Mark Shuttleworth): موسس کانونیکال و بنیاد اوبونتو و مسئول توزیع لینوکس محبوب اوبونتو.

۱۵. جان رابرتز(John Roberts): از موسسان، رییس و مدیرعامل ،SugarCRM شرکتی که نرم‌افزار بازمتن CRM‌ (مدیریت ارتباط با مشتری) را وارد بازار کرد. رابرتز مدل کسب و کار تجاری این شرکت را تدوین کرد، در هدایت ساخت محصولات این شرکت همکاری کرد و کمک کرد تا جامعه‌کاربری این شرکت ساخته شده و یکی از بزرگترین جوامع کاربری روی وب گردد.

پ.ن: پیشتر هم چند تن از این افراد را در پست «مدیران عامل شرکت های آزاد/باز‌متن: آشنایی، تجربه‌ها و توصیه‌ها» نام برده بودم، با پیگیری پیوندهای آنجا می‌توانید اطلاعات بیشتری بدست آورید.

اگر می خواهید بار دیگری که  مطلبی نوشته شد، آگاه گردید. عضو خوراک (feed) این بلاگ شوید.

Balatarinاین نوشته را به بالاترین بفرستید:

ریاضی و رشته کامپیوتر

windowslivewritercba-engineer.jpgتاریخ پر است از حرف‌ها و عقاید یک عده آدم که بعدها معلوم شده این دیدگاه‌ها و عقاید نادرست بوده‌اند. بدبختانه گاهی این حرف‌ها را آدم‌های معروفی زده‌اند، بنابراین عده‌ای بدون فکر و همچون کاسه داغ‌تر از آش، سنگ حرف‌های نادرست آن آدم‌ها را به سینه زده‌اند. به ویژه در تاریخ فناوری از این کارها زیاد رخ داده‌است.

داستان از آنجا آغاز شد که زمانی چند نفر آدم نادان در خارج گفتند که کامپیوتر چه ربطی به ریاضی دارد؟ یا اینکه: چرا کامپیوتری‌ها اینقدر باید ریاضی بخوانند؟ (بعدها ثابت شد که حرفشان نادرست است، گرچه همان زمان هم طرفداران چندانی پیدا نکردند)

آنگاه چندین آدم ناآگاه در داخل که دل خوشی از ریاضی (یا استادان ریاضی) نداشتند، داد و بیداد راه انداختند که ریاضی به کامپیوتر ربط ندارد و چرا ما اینقدر ریاضی می‌خوانیم؟ ریاضی که کاربرد ندارد و از اینگونه حرف‌ها

با پیدایش گوگل و مزیت رقابتی آن که همانا «الگوریتم جستجو»ی آن بود، جنگ الگوریتم‌ها دوباره آغاز گردید و توجه به الگوریتم‌ها و ریاضی بسیار بیش از گذشته شد.

حجم داده‌ها و اطلاعات جهانی بسیار زیاد شده و نیاز به زیرساخت‌های ریاضی، داده‌کاوی و … حس گردید وگرایش بیشتری به ریاضی به وجود آمد.

اما من هنوز هم همان حرف‌های کهنه را می‌شنوم. بدون رو دربایستی بگویم من اگر بخواهم کسی را استخدام کنم نمره‌های ریاضی او را می‌پرسم و قصد دارم از این پس روی این کار تاکید بیشتری بکنم، کما اینکه چند روز پیش این کار را کردم، حتا از کسی هم که می‌خواهد برای کارآموزی پیش ما بیاید یک‌سری نمره پرسیده‌ام که ریاضی جزو آنها بوده است.

اما فواید ریاضی برای کامپیوتری‌ها:

– ذهن آنها را منطقی و منظم نگه می‌دارد و در کار بسیار به آنها کمک می‌کند

– ریاضی یکی از بهترین ورزش‌های ذهنی است و باعث می‌گردد ذهن دیرتر پیر گردد.

– آنهایی که می‌خواهند ادامه تحصیل دهند در دوره کارشناسی ارشد و دکترا به شدت به آن نیاز خواهند داشت.

– اگر ریاضی شما خوب باشد در درس‌هایی چون ساختمان گسسته و رشته درس‌های پس از آن از جمله ساختمان داده‌ها، طراحی الگوریتم‌ها و هوش‌مصنوعی مساله‌ای نخواهید داشت.

– نمره بهتر از ریاضی (گرچه یادگیری مهم‌تر از نمره است) دست کم معدل کل شما را بالاتر می‌برد.

– پاس نکردن درس‌های ریاضی به‌ویژه در آغاز کار (ریاضی 1 یا 2) به شدت انگیزه درس خواندن شما را پایین می‌آورد.

پی‌نوشت: نوشته «پی‌نوشتی بر نوشته ریاضی و رشته کامپیوتر» را بخوانید. پیش ار آن به عکس بالا توجه کنید و درآن تامل کنید. شرکتی مهندس کامپیوتر می‌خواهد و شماره تلفن خود را به شکل فرمولی ریاضی می نویسد. چرا؟

اگر می خواهید بار دیگری که  مطلبی نوشته شد، آگاه گردید. عضو خوراک (feed) این بلاگ شوید.

پندهایی به دانشجویان کامپیوتر- بخش سوم

این سومین بخش از مقاله‌ای در سه بخش است. برای خواندن بخش نخست به اینجا و بخش دوم به اینجا بروید.

دیگر نگران فرصتهای شغلی که نصیب هندی‌ها می شود نباشید

اگر در هند هستید هیچگاه چنین نگرانی نداشته‌اید، پس دیگر هم نگران شغل‌هایی که به هندیان داده می‌شود نباشید! در هند شغل‌های جالبی وجود دارد، از آنها لذت ببرید.
مرتب می‌شنوم که از تعداد افرادی که به رشته کامپیوتر می‌روند کم می‌شود و دلیلی که می‌شنوم این است که دانشجویان از این می‌ترسند به رشته‌ای بروند که کارهایش به هندی‌ها داده می شود. این حرف به دلایل بسیاری نادرست است. نخست اینکه انتخاب شغل بر اساس گرایش روز (حال) کاری نابخردانه است. دوم اینکه حتا اگر تمام کارهای برنامه‌نویسی به هند و چین داده‌شوند، برنامه نویسی به گونه‌ای شگفت انگیز مهارت خوبی برای همه گونه کارهای جالب و خیال‌انگیز است، کارهایی چون مهندسی فرآیندهای تجاری. سوم: این را از من بپذیرید که هنوز هم برنامه‌نویس به‌راستی خوب کیمیا است هم اینجا و هم هند. بله بسیار از افراد کامپیوتر و آی‌تی خوانده هستند که بیکارند و درباره اینکه مدت بسیاری است که بیکارند گلایه‌ می‌کنند، می‌دانید چرا؟ ناراحت کردن آنها را به جان می‌خرم و می‌گویم برنامه‌نویسان واقعا خوب حتما سر کار هستند. چهارم: ایده بهتری دارید؟ می‌خواهید چه کار کنید، تاریخ بخوانید؟ بعد هم راه دیگری ندارید جز اینکه ادامه تحصیل بدهید و به رشته دیگری چون حقوق بروید. چیزی هست که از آن مطمئن هستم: ٪99 وکلا از کارشان متنفرند، از تک‌تک دقایق کارشان متنفرند و هفته‌ای 90 ساعت کار می‌کنند. همانگونه که گفته‌ام: اگر از برنامه نویسی لذت می برید خدا را شکر کنید زیرا از جمله محدود افراد بسیار خوش شانسی هستید که با انجام دادن کاری که دوستش دارید می توانید زندگی خوبی بسازید.
بگذریم، فکر نمی‌کنم داشجویان به‌راستی اینگونه فکر کنند. کم شدن دانشجویان کامپیوتر به این خاطر است که پس از یک دوره جو‌گیری هم‌اکنون تعداد به حد طبیعی خود رسیده است. جو‌گیری باعث شده بود کسانی که به‌راستی برنامه‌نویسی را دوست نداشتند فکر کنند این کار کار پر درآمدی است و به سوی آن هجوم بیاورند. خوشبختانه چنین افرادی دیگر به کامپیوتر نمی‌آیند.

مهم نیست که چه می کنید دوره کارآموزی خوبی بردارید

استخدام کننده‌های هوشمند می‌دانند که عشاق برنامه‌نویسی در کلاس سوم راهنمایی برای دندانپزشک خود پایگاه داده نوشته‌اند، سه سال پیش از ورود به دانشگاه در آموزشگاه‌های کامپیوتر درس داده‌اند، برای نشریه دانشجویی سیستم مدیریت محتوا ساخته‌اند و کارآموزی آنها در شرکتی (خوب) نرم‌افزاری بوده است. این چیزی است که آنها در رزومه شما جستجو می‌کنند.
اگر از برنامه‌نویس لذت می‌برید، بزرگ‌ترین اشتباهی که ممکن است بکنید این است که به کاری نیمه‌وقت یا چیزی شبیه آن در کاری جز برنامه‌نویسی بروید. می‌دانم که هر فرد 19 ساله‌ی دیگر می‌خواهد که کاری در یک لباس فروشی پیدا کند، اما شما مهارتی دارید که بسیار باارزش است حتا اگر 19 سال داشته باشید پس نابخردانه است که وقتتان را در تا کردن پیراهن تلف کنید. پیش از آنکه فارغ‌التحصیل شوید باید رزومه‌ای داشته باشید پر از کارهای برنامه‌نویسی.

این نوشته برگردانی است از:

Spolsky, Joel. “Advice for Computer Science College Students

در این رابطه می‌توانید نوشته «چرا دانشجویان ایرانی باید در پروژه های آزاد/بازمتن مشارکت کنند!؟» را نیز بخوانید.

اگر می خواهید بار دیگری که  مطلبی نوشته شد، آگاه گردید. عضو خوراک (feed) این بلاگ شوید.

این نوشته را به بالاترین بفرستید: Balatarin

پندهایی به دانشجویان کامپیوتر- بخش دوم

این دومین بخش از مقاله‌ای در سه بخش است. برای خواندن بخش نخست به اینجا و بخش سوم به اینجا بروید.

زبان C را پیش از تمام شدن درستان یاد بگیرید. دقت کنید که گفتم C و نه C++. گرچه C به شکلی چشم‌گیر کمتر استفاده می شود ، هنوز برای کسانی که هم‌اکنون برنامه‌نویسی می کنند زبانی بین المللی است. زبانی است که با آن با یکدیگر ارتباط بر قرار می‌کنند و از آن مهمتر از زبان های جدیدی مثل Ruby,Python,Java که در دانشگاه یاد میگیرید (البته نه اینجا) به زبان ماشین نزدیک‌تر است (یا از هر زبان جدیدتر دیگری که درس می دهند). نیاز است که شما دست کم یک ترم به زبان ماشین نزدیک شوید وگرنه هیچگاه نخواهید توانست که کُدهایی کارا به زبانهای سطح بالاتر بنویسید. نخواهید توانست روی کامپایلرها و سیستم‌های عامل، که از بهترین کارهای برنامه‌نویسی بازار هستند، کار کنید. هیچگاه به شما برای خلق معماری پروژه های بزرگ اعتماد نمی‌شود. برای من مهم نیست که چقدر در مورد کنترل‌ها، بستارها و مدیریت استثناها می دانید: اگر نتوانید توضیح دهید که چرا while (*s++ = *t++); یک رشته را کپی می کند یا برایتان طبیعی‌ترین چیز در دنیا نباشد، آنگاه شما بر اساس خرافات و موهومات برنامه نویسی می کنید، اهمیت این مساله برای من مثل پزشکی است که اصول آناتومی را نمی‌داند و بر اساس گفته یک آدم ساده لوح، که گفته این دارو جواب میدهد، نسخه می‌نویسد. اقتصاد خُرد را پیش از فراقت از تحصیل فرا بگیرید. اگر تا حالا هیچ درس اقتصادی نگذرانده‌اید، باید بگویم اقتصاد از آن دسته رشته‌هایی است که با یک شاهکار انفجاری آغاز میشود،با آن بسیار نظریه‌ها و اصول بامفهومش، که اثبات‌پذیر هستند و پس از آن نشیب و رو به افول است. این شاهکارِ آغازین اقتصاد خرد است، که به گونه‌ای پایه‌ی هر نظریه‌ی مهمی در تجارت و کسب‌و‌کار است. از آن پس چیزها بدتر می شوند: به اقتصاد کلان می رسید (اگر می خواهید می توانید از ادامه این پاراگراف بگذرید) با آن نظریه های جالبش درباره چیزهایی مثل ارتباط نرخ بهره و بیکاری که بیشتر ثابت نشده به نظر می آیند تا ثابت شده، و پس از آن بدتر و بدتر می‌شود و بیشتر گرایشهای اقتصاد به فیزیک مبدل می شوند، که به درد پیدا کردن کاری بهتر در بازار وال‌استریت می خورد. ولی حتما اقتصاد خرد را بگیرید، زیرا شما باید درباره عرضه و تقاضا بدانید، شما باید درباره مزیت‌های رقابتی بدانید و باید مفاهیم سود ویژه، کاهش قیمت و مطلوبیت حاشیه‌ای را درک کنید پیش از آنکه بخواهید بدانید چرا شرکت با این روش کاری سود ده است. چرا کامپیوتری‌ها باید اقتصاد یاد بگیرند؟ زیرا برنامه نویسی که اصول کسب و کار رابداند برای شرکت از آنکه نمی‌داند، ارزشمندتر است. و این خیلی مهم است. نمی توانم بگویم چند بار کار ما بخاطر ایده‌های احمقانه ای که در برنامه‌نویسی شدنی و در سیستم سرمایه نشدنی هستند، بی‌نتیجه مانده است. بخار چیزهایی که در اقتصاد خرد یاد می گیرید برنامه نویسی ارزشمند‌تر خواهید بود، و بخاطرش پاداش خواهید شد.

درسهایی که کامپیوتری نیستند را تنها به این خاطر که کسل‌کننده هستند سرسری نگیرید. سرسری گرفتن درس‌هایی که تخصصی نیستند راه بسیارخوبی است برای که معدل کل پایین‌تری داشته باشید. هیچگاه معدل خود را دست کم نگیرید، بسیاری از استخدام کنندگان و مدیران، از جمله خودم، هنگام مطالعه رزومه، مستقیم سراغ معدل می رویم، و البته از این کار هم پشیمان نیستیم. چرا؟ زیرا معدل شما نشان می‌دهد که استادان شما در دراز مدت و در شرایط مختلف در باره عملکرد شما چه می‌اندیشیده‌اند. رتبه کنکور چطور؟ آزمونی است که تنها در چند ساعت برگزار شده‌است. اما معدل نشان دهنده‌ی صدها کار و پژوهش کلاسی و میان ترم در چهار سال است. البته مشکلات خاص خودش را هم دارد. معدل نمی‌گوید که فلان درس گلابی را در بهمان دانشگاه گلابی‌تر گذرانده‌اید یا مکانیک کوانتومی را در یک دانشگاه سخت‌گیر. البته من وقتی معدل متوسطی را از آن دانشگاه آسان‌گیر می‌بینم از آنها توصیه نامه و مدارک دیگری هم می‌خواهم و دنبال افرادی با معدل بالاتر از این دانشگاه‌ها می گردم. چرا مدیری که به دنبال مهندسان نرم افزار است، باید به نمره درس تاریخ شما اهمیت می دهد؟ چراکه تاریخ کسل کننده است. آهان، پس شما دارید می گویید باید شما را استخدام کنم زیرا شما هنگامیکه کار کسل‌کننده می‌شود، درست کار نمی کنید؟ بله، در برنامه نویسی هم چیزهای کسل‌کننده هست. هر کاری بخش‌های کسل کننده دارد. من یکی که افرادی را استخدام نمی‌کنم که به دنبال کار‌های جالب هستن و فقط آنها را انجام می‌دهند. من در دانشگاه درس مردم‌شناسی فرهنگی را گرفتنم زیرا خوب دریافته بودم که باید چیزهایی راجب به مردم‌شناسی بیاموزم، و از دید من درس بدرد بخوری بود. جالب است؟ نه آنقدرها! مجبور بودم کتابهای واقعا خسته کننده‌ای در مورد سرخ پوستان در جنگل‌های بارانی برزیل و ساکنان جزیره تروبریاند بخوانم، که با وجود همه احترامی که برایشان قایل هستم برای من چندان جالب نبود. در واقع کلاس آنچنان خسته‌کننده بود که چیزی مثل تماشای رشدچمن ها برایم هیجان انگیز‌تر بود و من آرزویش را می کردم. کاملا علاقه ام را راجع به موضوع از دست داده بودم. گریه‌ام در آمده بود و از بحث‌های بی پایان در باره جمع‌کردن سیب‌زمینی شیرین بسیار خسته شده بودم. نمی دانم مردم جزیره تروبریاند چرا اینقدر وقت صرف جمع‌آوری سیب‌زمینی شیرین می کردند، چیز دیگری یادم نمی آید، بسیار کسل کننده بود، اما زمان میان ترم که رسید حسابی درس را شخم زدم. کم‌کم به این رسیدم که مردم‌شناسی فرهنگی دارد برایم شگنجه و ملالت می شود و کسالت سد راه من است. اگر در کلاسی بیست می‌گرفتم که در امتحانش باید همه چیز را درباره پوشش سرخپوستان در فلان جشن می‌دانستم، می‌توانستم از پس هرچیزی برآیم هرچقدر هم که خسته‌کننده باشد. بار بعد که از اتفاق جایی گیر کردم و مجبور بودم برای یک چرخه کاری 18 ساعت منتظر بمانم از مطالعه آن قبیله سپاسگذار بودم چون در مقایسه بسیار خوشایندتر بود. من بیست گرفتم. خوب، اگر من توانستم پس شما هم می‌توانید.

برای خواندن ادامه این نوشته (بخش سوم) به اینجا بروید.

اگر می خواهید بار دیگری که  مطلبی نوشته شد، آگاه گردید. عضو خوراک (feed) این بلاگ شوید.

این نوشته را به بالاترین بفرستید: Balatarin

پندهایی به دانشجویان کامپیوتر- بخش نخست

یکی از نویسندگان و متفکران کامپیوتری محبوب من جول اسپالسکی است، پیشتر در دو پست از او یاد کرده‌ام. او مقاله معروفی دارد که آغاز سال 2005 یعنی 3 سال پیش نوشته. مدت‌ها پیش بخشی از آنرا به فارسی برگردانده بودم. اکنون همه آنرا در سه بخش تقدیم می‌کنم:

برای خواندن بخش دوم به اینجا بروید.

پندهایی به دانشجویان کامپیوتر

گذشته از اینکه تنها یک یا دو سال پیش بود که من در مورد اینکه چگونه رابط کاربری توانمند ویندوز موج آینده را می سازد،گزافه گویی می کردم، دانشجویان کامپیوتر گهگاه به من ایمیل می زدند که به آنها پندهایی برای شغل (آینده) شان بدهم. از آنجا که اکنون فصل استخدام است بر آن شدم که پند های استاندارد خود را بنویسم تا که آنرا بخوانند، به آن بخندند و بیخیالش شوند.
خوشبختانه بیشتر دانشجویان کامپیوتر آنقدر زرنگ! هستند که به خودشان زحمت نمی دهند که از پیران و پیشگامان خود بخواهند که آنها را نصیحت کنند، امری که در کامپیوتر کار خوبی است. زیرا بزرگترهایشان آماده اند تا به آنها حرفهایی احمقانه و فسیل شده بزنند مثل ” تقاضا برای کاربران وارد کننده کارت پانچها تا سال 2010 به 100000000(صد میلیون) نفر خواهد رسید” یا ” بازار کارهای مرتبط با زبان Lisp امروزه بسیار داغ است”.

خود من هم هنگامی که دانشجویان کامپیوتر را نصیحت می کنم، نمی فهمم چه می گویم. به من امیدی نیست و دیگر به روز نیستم، از چیزهایی مثل Yahoo Messenger سر در نمی آورم (وحشتناک است نه؟) و هنوز هم از چیز قدیمی و عجیبی که به آن Email میگویند استفاده می کنم چیزی که زمانی همه گیر بود،زمانی که آهنگ‌ها بر روی صفحه صاف و گردی که به آن CD می گفتند به بازار آمد.
پس بهتر است که از این چیزهایی که اینجا می گویم چشم پوشی کنید و بجای آن از آن چیزهای آنلاینی درست کنید که می توان با آن دیگر مردم را پیدا کرد و قرار گذاشت و بیرون رفت.
با این وجود:
اگر از برنامه نویسی لذت می برید خدا را شکر کنید زیرا از جمله محدود افراد بسیار خوش شانسی هستید که با انجام دادن کاری که دوستش دارید می توانید زندگی خوبی بسازید. بیشتر مردم اینقدر خوش شانس نیستند. این ایده که “عاشق کارتان باشید” مفهومی کاملا نو است. در گذشته مردم فکر می کردند که کار چیزی ناگوار است که انجامش می دهید که پول در بیاورید تا با آن کاری را که واقعا دوست دارید انجام دهید ، آنهم پس از بازنشستگی در سن 65 سالگی به این شرط که پول لازم را داشتید و بیش از حد پیر و ناتوان نشده بودید و زانوها و چشم سالن داشتید و می توانستید بدون اینکه نفستان بند آید بیست قدم را بروید و هزار اما و اگر دیگر.
کجا بودیم؟ آهان. نصیحت.
بدون حرف پیش من 6 نصیحت رایگان برای دانشجویان کامپیوتر دارم:

1. نوشتن را پیش از فارغ التحصیلی یاد بگیرید .
2. زبان C را پیش از تمام شدن درستان یاد بگیرید.
3. اقتصاد خُرد را پیش از فراقت از تحصیل فرا بگیرید.
4. درسهایی که کامپیوتری نیستند را تنها به این خاطر که کسل کننده هستند سرسری نگیرید.
5. دیگر نگران فرصتهای شغلی که نصیب هندی ها می شود نباشید.
6. مهم نیست که چه می کنید دوره کارآموزی خوبی بردارید.

حالا اگر توضیح بیشتر میخواهید- به شرط آنکه آنقدر زود باور نباشید که این حرفها را تنها چون من گفته ام باور کنید- این را هم اضافه کنید: 7. بدنبال راهنمایی و کمکِ حرفه ای بگردید تا عزت نفس پیدا کنید.

نوشتن را پیش از فارغ التحصیلی یاد بگیرید
اگر لینوس توروالدز، لینوکس را تبلیغ نمی‌کرد آیا امکان داشت که لینوکس موفق شود؟ همانقدر که وی هکر و برنامه نویس موفقی است، همانقدر توانایی وی در بیان ایده‌هایش با نوشتن به انگلیسی در Email و لیست های پستی بود که باعث شد لینوکس بتواند گروه های داوطلبان را در سراسر جهان به خود جلب کند.
از آخرین روش خبر دارید، Extreme Programming ؟ بدون اینکه بگویم در باره این روش چه فکر می کنم، می گویم که دلیل اینکه شما درباره اش شنیده اید این است که از کسانی شنیده اید که نویسندگان و سخنرانان سرآمدی هستند.
حتا در مقیاس کوچکتر، هنگامیکه به هر شرکت برنامه نویسی دقت کنید، می بینید که توانمند و تاثیرگذار ترین برنامه نویسیان آنهایی هستند که راحت،روان و خوب به انگلیسی صحبت می کنند و می نویسند. اینگونه انگلیسی دانستن به ارتقا کمک می کند، گرچه دست شما نیست.
فرق برنامه‌نویس متوسط و یک برنامه نویس عالی در تعداد زبان‌های برنامه نویسی که می‌دانند و در اینکه پایتون یا جاوا را ترجیح می دهند نیست. بلکه در این است که می توانند ایده‌هایشان را بیان کنند یا نه. آنها با ترغیب مردم، موفق شده و نیرو می گیرند. با نوشتن توضیح و مشخصه‌های فنی واضح و روشن، به دیگر برنامه نویسان این توانایی را می دهند که کُدشان (برنامه) را بفهمند، یعنی دیگر برنامه نویسان بجای اینکه آن کدها را دوباره نویسی کنند با کدهای آنها کار می کنند و از این کدها استفاده می کنند. در غیر اینصورت کدشان بی ارزش است. با نوشتن مستندات فنی روشن برای کاربران نهایی، مردم متوجه می شوند که این کد چه کار می کند و این تنها راهی است که بوسیله آن کاربران ارزش این کدها را می فهمند. جایی در sourceforge تعداد زیادی برنامه‌های عالی و کاربردی مدفون شده‌اند و کسی از آنها استفاده نمی‌کند زیرا این برنامه‌ها را برنامه‌نویسانی نوشته اند که خوب نمی نویسند (یا اصلا نمی نویسند)، بنابراین کسی متوجه نمی‌شود آنها چه کرده‌اند و برنامه درخشانشان از درخشش می افتد.
من برنامه‌نویسی را استخدام نمی کنم،مگر آنکه بتواند واقعا خوب به انگلیسی بنویسد. اگر بتوانید بنویسید، هر جا که استخدام شوید، زود درمیابید که از شما می خواهند تا مشخصه های فنی را بنویسید یعنی اینکه دارید تاثیر خود را می گذارید و مورد توجه مدیران قرار گرفته‌اید.
بیشتر دانشگاهها کلاس‌های مشخصی به نام “نویسندگی حرفه‌ای” دارند، یعنی باید بتوانید خیلی خوب بنویسید تا آنها را پاس کنید. دنبال این کلاس‌ها بگردید و در آنها شرکت کنید. دنبال کلاس‌هایی بگردید که تکالیف هفتگی با روزانه دارند.
نوشتن در یک نشریه یا وبلاگ را آغاز کنید. هر چه بیشتر بنویسید، نوشتن آسانتر خواهد شد و هرچه آسانتر شود بیشتر می توانید بنویسید و به همین ترتیب.

برای خواندن بخش دوم به اینجا بروید.

در این رابطه نوشته «پندهایی به دانشجویان کامپیوتر: چشمان خود را باز کنید» را نیز بخوانید.

اگر می خواهید بار دیگر که  مطلبی نوشته شد، آگاه گردید. عضو خوراک (feed) این بلاگ شوید. همچنین می توانید مرا در تویتر دنبال کنید.

این نوشته را به بالاترین بفرستید:

Balatarin

درسی در بازاریابی نرم‌افزار: مناسب زمان رفتار کنید

این دومین مقاله درباره مدیریت شرکت‌های کوچک نرم‌افزاری است که به فارسی برمی‌گردانم. مقاله نخست در شرکتتان برنامه‌ساز نیاز دارید، نه برنامه‌نویس است.این دومین مقاله از دو سو بسیار مهم است یکی مقاله در جای خود است و دیگر اینکه این مقاله مفهوم گذر از پرتگاه را به سادگی گفته‌است. گذر از پرتگاه مفهومی اساسی در شرکت‌های نرم‌افزاری است که بدبختانه تا به حال هیچ منبع فارسی درباره آن نیافته‌ام و در بسیاری جاها پرکاربردش یافته‌ام. چهار مقاله درباره بازاریابی در شرکت‌های بازمتن در صف ترجمه دارم که همه آنها این مفهوم را بکار گرفته‌اند. لطفا نادرستی‌ها و نابجایی‌های مقاله را گوشزد کنید:
 

چهار گروه

مردم در بخش شما از بازار به چهار گروه تقسیم می‌شوند:

  • پذیرندگان آغازین (Early Adopters) ریسک پذیرانی هستند که آزمودن چیزهای نو را به‌راستی دوست دارند.
  • واقع‌بینان (Pragmatists) کسانی هستند که ممکن است بخواهند فناوری نو را بکارگیرند اگر تنها راهی باشد که مشکلشان با آن حل می‌شود.
  • محافظه‌کاران (Conservatives) از فناوری نو خوششان نمی‌آید و تلاش می‌کنند از آن دوری کنند.
  • واماندگان یا دیرپذیران (Laggards) به خودشان می‌بالند که واپسین کسانی هستند که هر چیز نو را می‌آزمایند.

کتاب‌های بازاریابی معمولا این گروه‌ها را به شکل یک منحنی زنگوله ای نشان می‌دهند، چیزی شبیه این:

Bell Curve

منحنی زنگوله‌ای دو نکته مهم را نشان می‌دهد:

  • دو گروه میانی بیشتر مشتریان باقوه شما را شامل می‌شوند.
  • شما تنها به نوبت و از چپ به راست می‌توانید به این مشتریان دست پیدا کنید.

 
هرکدام از این چهار گروه رفتار ویژه خود را دارند که نشان دهنده هنگامی است که آن گروه محصول شما را خواهد خرید:

  • پذیرنگان آغازین نیاز چندانی به متقاعد کردن ندارند. برخی از آنها محصول شما را می‌آزمایند تنها به این خاطر که نو است. آنها منتظر تایید هیچ‌کس نمی‌مانند. آنها پیشتازانی هستند که ترجیح می‌دهند که بر لبه تیز فناوری باشند.
  • واقع‌بینان تنها هنگامی محصول شما را خواهند خرید که ببیند دیگر واقع‌بینان آنرا می‌خرند. البته این شبیه پارادوکس «نخست مرغ به وجود آمد یا تخم‌مرغ» است. درباره این مساله بیشتر می‌گوییم.
  • محافظه‌کاران تنها پس از آنکه ببینند واقع‌بینان از محصول شما خشنود هستند، آن را می‌خرند.
  • هیچ روشی برای پیش‌بینی رفتار واماندگان نیست. ممکن است که هیچگاه محصول شما را نخرند. به راحتی می‌توانید آنها را نادیده بگیرید. هنگامی‌که محصولتان به جایی برسد که واماندگان آنرا بخرند آنگاه شما دیگر در شرکت مسئول بازاریابی نخواهید بود. شرکت شما بسیار موفق شده‌است. شما هم نیمچه‌بازنشسته شده‌اید. یک مدیر بازاریابی بکار گرفته‌اید و هدف‌های خنده‌دار و دست‌نیافتنی را به او سپرده‌اید، تنها برای اینکه بتوانید سردرگمی و دست‌وپا زدن او را ببینید.

~~~

پرتگاه

برای اینکه موفق شوید به مرور باید محصول خود را به واقع‌بینان و محافظه‌کاران بفروشید، اما رفتار این دو گروه با رفتار آن دو گروه دیگر در دو سر منحنی زنگوله‌ای به کلی متفاوت است و به ویژه اینکه این دو گروه میانی روحیه‌ای پیرو‌-وار دارند. آنها دنباله‌رو هستند. آنها تنها زمانی می‌خرند که ببینند دیگران این کار را می‌کنند.
 
البته محافظه‌کاران مشکل چندانی ندارند. آنها واقع‌بینان را به دقت می‌نگرند. هنگامی‌که بیشتر واقع‌بینان از محصول شما خشنود باشند، آنها محصول شما را خواهند خرید. شما مجبور نیستید برای جذب محافظه‌کاران حرکت خاصی انجام دهید. زمانیکه واقع‌بینان شما را دوست داشته‌باشند آنگاه محافظه‌کاران به دنبال آنها خواهند آمد.
 
مشکل اصلی واقع‌بینان هستند. آنها دنباله‌رو هستند، اما دوست دارند تنها از همدیگر دنباله‌روی بکنند. اینکه آنها به‌سادگی منتظر گروه پیشین خود خواهند ماند که محصول شما را دوست بدارند فکری وسوسه کننده اما نادرست است. پذیرش پذیرندگان آغازین کافی نیست. این‌کار مانند آغاز رقص در یک جشن است، همه به همدیگر نگاه می‌کنند و منتظر می‌مانند تا کسی دیگر نخستین حرکت را بکند.
 
جفری مور (Geoffrey Moore) به خوبی این رفتار را در کتاب برجسته خود «گذر از پرتگاه» (Crossing the Chasm) شرح داده است. مور بیان می‌دارد که منحنی بازاریابی زنگوله‌ای کلاسیک نادرست است و درواقع باید بیشتر شبیه این شکل نمایش داده شود:

bell2_1.gif

این طرح نشانگر این واقعیت است که بین پذیرندگان آغازین و واقع‌بینان گذاری پیوسته یا منطقی وجود ندارد. بین پذیرندگان آغازین و واقع‌بینان یک پرتگاه (chasm)هست. برای اینکه محصول خود را با موفقیت به واقع بینان بفروشید باید از این پرتگاه گذر کنید.
 
اما اگر واقع‌بینان نمی‌خرند مگر زمانیکه همدیگر را در حال خریداری بینند، چگونه به آن‌سو برویم؟
 
کلید کار یافتن واقع‌بینی است که نیازمند و ناچار است، یا آنگونه که مور می‌گوید، واقع‌بین گرفتار. آنها مشکلی دارند و به شدت نیاز دارند که مشکلشان حل شود. در واقع، آنها آنچنان نیازمند راهکار هستند که می‌پذیرند از رده هم‌قطاران واقع‌بین خود جدا شده و نخستین کسی از گونه خود باشند که محصول شما را می‌آزماید.
 
شما به روابطی بسیار ویژه با این واقع‌بینان گرفتار نیاز دارید. آنها همکاری با شرکت‌های کوچک نرم‌افزاری را دوست ندارند. ترجیح می‌دهند با شرکت‌های بزرگ و جا افتاده تر کار کنند.آنها با گزیدن محصول شما برای خرید به شما کمک می کنند که از پرتگاه گذر کنید. شما به واقع مستحق اینکه آنسو باشید نیستید و آنها این را می‌دانند.
 
بنابراین باید به‌گونه‌ای ویژه با آنها رفتار کنید. هرچه می‌خواهند به آنها بدهید، کمابیش مثل اینکه آنها برنامه‌ای سفارشی درخواست داده‌اند. ممکن است که نیاز باشد شما ویژگی‌های خاصی را تنها برای آنها پیاده‌سازی کنید. ممکن است مجبور شوید تخفیف زیادی به آنها بدهید. باید سایت آنها را ببینید و به‌شخصه با آنها دیدار کنید. شاید مجبور شوید محصولتان را برای آنها نصب کنید. به احتمال زیاد از دید مالی، این ضرری خالص خواهد بود. اشکالی ندارد. تا زمانیکه آنها خشنود نشده‌اند دست بر ندارید. سپس آنها را خشنود نگه دارید، تا جاییکه شرکت شما کم و بیش دایم در کنار شرکت آنها دیده شود.
 
از آنجا که گذر از پرتگاه سخت است، ممکن است وسوسه شوید که تنها در سمت چپ آن باقی بمانید (و از آن گذر نکنید). شاید پذیرندگان آغازین بازاری داشته‌باشند که به اندازه کافی برای محصول شما بزرگ باشد. متاسفم انا این جواب نخواهد داد. پذیرندگان آغازین چیزهای نو را دوست دارند و محصول شما هر روز کهنه‌تر می شود. اگر تلاش کنید که عمر محصول خود را برای پذیرندگان آغازین بسازید، خطر این را پذیرفته‌اید که شما را رها کنند و به سراغ کس دیگری بروند که مدعی داشتن محصولی با آخرین فناوری عالی است.در بلند مدت، ماندن در سمت چپ پرتگاه کاری ایمن و خردمندانه نیست.
 
~~~

چند نمونه

چند نمونه را ببینید (توجه کنید که این مقاله سال ۲۰۰۳ نوشته شده):

  • SourceOffSite از پرتگاه گذر کرده است. زندگی در آنسو خیلی خوب است. بیشتر شرکت های فرچون ۵۰۰ در فهرست مشتریان ما هستند. محصول بسیار سودده است.
  • اما SourceGear Vault هنوز پیش از پرتگاه است. ما نسخه ۱.۰ خود را بیرون داده‌ایم و پذیرندگان آغازین عاشقش هستند. ما در حل پایان کار نسخه ۱.۱ هستیم که شامل بهبودهایی است ولی این نسخه هم ما را گذر نخواهد داد. خوشبختانه دنیای SourceSafe پر از واقع‌بینان نزار است. همزمان که داریم روی نسخه ۲.۰ کار می‌کنیم در حال مذاکره با چندتایی از آنها هستیم.
  • ویندوز مایکروسافت بسیار آنسوتر از پرتگاه رفته است.
  • روشن است که CRM مایکروسافت هنوز در سرزمین پذیرندگان آغازین است. غول ردموند بسیار راحت‌تر از من و شما می‌تواند از پرتگاه گذر کند، اکا او هم مجبور است گذر کند. و درست مانند دیگران، بیشتر محصولات نو مایکروسافت تا نسخه ۳.۰ گذر نخواهد کرد.
  • برخی از دوستان من و دوست‌داران NET. با من مخالفند اما من هنوز NET. را پیش از پرتگاه می‌دانم. آیا NET 2.0 . به آنسوی پرتگاه خواهد رسید، یک نسخه زودتر از همیشه؟ شاید.
  • به‌قطع Java پس از پرتگاه است.
  • دستگاه پخش DVD آنسوی پرتگاه است. راستش پدر و مادرم تازگی یک دستگاه گرفته‌اند و این بازار آرام‌آرام دارد واماندگان را جذب می‌کند.☺
  • وبلاگ‌ها چطور؟ پیش یا پس از پرتگاه؟ با وجود رشد بسیار محبوبیت آنها در چند سال گذشته باید بگویم که وبلاگ‌ها هنوز پیش از پرتگاه هستند و هنوز بسیاری از توانایی‌های آنها باید شناخته شود.
  • دوربین دیجیتال در همین چندساله از پرتگاه گذر کرده است.
  • PDA ها از پرتگاه گذر کردند، آنگاه تعادل خود را از دست دادند و به درون افتادند.☺

~~~

مناسب زمان رفتار کنید

زیاد شتاب نکنید. گذر زمان در این منحنی زنگوله‌ای معمولا با سالیان سنجیده می‌شود نه با هفته‌ها و ماه‌ها. این چهار گروه و گذر بین آنها نشانگر مراحل مختلف از عمر محصول شماست. هرکدام از این مراحل بسیار متفاوت هستند. اگر مناسب هرکدام از این مراحل عمر محصولتان رفتار کنید، کارها بسیار بهتر پیش خواهد رفت.
 
دختران نه‌ساله آرایش غلیظ نمی‌کنند. شصت و پنج ساله‌ها آغاز به دانشگاه رفتن نمی‌کنند. سی و دو ساله‌ها آنگونه که ده سال پیش می‌کردند تمام شب را بیدار نمی‌مانند.(البته روشن است برای هرکدام از این‌ها استثناهایی هم هست)☺
 
به همین شکل محصولات نیاز دارند که مناسب عمرشان رفتار کنند. گزیدن ویژگی‌ها(ی محصول) بخشی از بازاریابی است. هنگامی‌که تصمیم می‌گیرید چه ویژگی‌هایی در نسخه بعد گنجانده شوند باید مرحله کنونی از عمر محصولتان را در نظر داشته باشید. چند نمونه برای روشن‌تر شدن:

  • برای جذب پذیرندگان آغازین محصول شما باید نو و هیجان‌انگیز باشد. برای جذب محافظه‌کاران باید خسته‌کننده و معروف باشد.
  • اگر به دنبال پذیرندگان آغازین هستید، وقت خود را برای افزودن ویژگی‌هایی که تنها محافظه‌کاران دوست دارند، هدر ندهید.
  • همانگونه که پیشتر گفتم، برای اینکه واقع‌بینان حمایت کننده خود را خشنود نگه دارید، مجبور خواهید بود که کمابیش هرچه می‌خواهند انجام دهید. اما احتمالا با هرکسی که سوی دیگر پرتگاه قرار دارد این‌گونه رفتار نمی‌کنید. واقع‌بینان و محافظه‌کاران بسیار زیادی هستند که تمام نیازهایشان را یکجا می‌خواهند.
  • در مرحله پذیرندگان آغازین، دقت کنید چه می‌گویم. بسیاری از این افراد، افرادی چون شما فناور هستند. آنها هوشمندند، آنها به محصول شما علاقه‌مندند، به زبان شما سخن می‌گویند و ایده‌های خوبی دارند. با آنان سخن بگویید و به پیشنهادهایشان توجه کنید.
  • در مرحله واقع‌بینان و محافظه‌کاران، با دقت بیشتر گوش فرا دهید. آنها اصلا شبیه شما نیستند. شما یک خوره (geek) هستید و فناوری را به خاطر خودش دوست دارید. آنها تنها می‌خواهند مشکلشان حل شود و جنگ‌های عقیدتی که ما بین خودمان داریم برای آنها کوچکترین اهمیتی ندارد. فرض نکنید که درباره مشکلاتی که با آن درگیر هستند همه‌چیز را می‌دانید. و راستی، ما آدم‌هایی غیر عادی هستیم نه آنها.
  • به یاد داشته باشید، واقع‌بینان کاربردگرا هستند. آنها راهکارهایی غیرهجو(درست و حسابی) برای مشکلات خودششان می‌خواهند. اگر ویژگی‌ای را نشان آنها دهید تنها به این خاطر که یکی از برنامه‌سازان شما فکر می‌کند عالیست، واقع‌بینان اصلا تاثیر نمی‌پذیرند.
  • اگر به محافظه‌کاران می‌فروشید، در محصولتان تغییرات بیجا انجام ندهید. محافظه‌کاران چون گربه هستند، اگر سریع حرکت کنید می‌ترسند.☺

~~~

پی‌نوشت

از دوستداران جفری مور که فکر می‌کنند چیزها را زیادی ساده‌کرده‌ام پوزش می‌خواهم. من خوره‌ای هستم که تلاش می‌کند بازاریابی را برای دیگر خوره‌ها شرح دهد. پس دوراندیشی است اگر بیشتر از این موشکافی نکنم.☺
 
خوانندگانی که جزییات بسیار بیشتری می‌خواهند قویا کتاب‌های «گذر از پرتگاه» (Crossing the Chasm) و کتاب بعدیش «درون گردباد» (Inside the Tornado) که آنهم کتاب بسیارخوبی است را توصیه می‌کنم.
 
این نوشته برگردانی است از:

Sink, Eric. “Act Your Age

اگر می خواهید بار دیگری که  مطلبی نوشته شد، آگاه گردید. عضو خوراک (feed) این بلاگ شوید.

در شرکتتان برنامه‌ساز نیاز دارید، نه برنامه‌نویس

پیشتر در پستی درباره واژگان برنامه‌سازی و برنامه نویسی سخن گفتم.
اینک مقاله‌ای بسیار مفید برای کسانی‌که در فکر راه‌اندازی شرکتی نرم‌افزاری هستند به فارسی برگردانده‌ام. گرچه ازدید خودم ترجمه‌اش خوب در نیامد و نیاز به بازبینی و ویرایش دارد:

در شرکتتان برنامه‌ساز نیاز دارید، نه برنامه‌نویس

موقعیت بسیار مهم است. پند یک مدیر ممکن است بی‌ارزش یا بدتر باشند اگر مناسب وضعیت شما نباشد. تصمیمی درست برای شرکتی بزرگ ممکن است برای کوچک‌تر کشنده باشد. پیش از آنکه پیشنهاد‌های مدیریتی هرکسی از جمله من را بشنوید‍ ☺، مطمئن شوید که موقعیت خودتان را مدنظر دارید.
من یک شرکت نرم‌افزاری کوچک را می‌گردانم بدون هیچ کمک مالی بیرونی. شرکت ما (SourceGear) حدود ۶ سال سن و ۲۵ کارمند (در زمان نوشته شدن این مقاله: سال ۲۰۰۳) دارد.

در این مدت درس‌های بسیار جالبی فرا گرفته‌ام. یکی از چیزهایی که یادگرفته‌ام این است که شرکت‌های نرم‌افزاری کوچک نباید هیچ برنامه‌نویسی داشته باشند.

در این مقاله منظور از برنامه‌نویس (Programmer) فردی است که کاری جز نوشتن کُدهای نو و (اگر خوش‌شانس باشید) اشکال‌زدایی، نمی‌کند. او مشخصه‌ها(Specifications) را نمی‌نویسد. او تست‌کیس‌های خودکار را نمی‌نویسد. کمکی برای اینکه سیستم ساخت خودکار بروز باشد، نمی‌کند. به مشتریان کمک نمی‌کند تا مشکلات جدی‌شان را حل کنند. در نوشتن مستندات کمک نمی‌کند. او حتا کُد را هم نمی‌خواند. تنها کاری که او می‌کند نوشتن کد جدید است.

در شرکت‌های کوچک نرم‌افزاری شما یک چنین آدم‌هایی را نمی‌خواهید.

به‌جای برنامه‌نویسان (کسانی متخصص نوشتن کد هستند) آنچه شما نیاز دارید برنامه‌سازان (Developer) هستند (کسانیکه به روش‌های مختلف تلاش می‌کنند تا محصولی موفق ساخته شود).

اگر در تعریفم از واژه‌ها کمی گستاخ هستم، پوزش مرا بپذیرید، ولی اینکه من چه واژگانی را بکار می‌برم زیاد مهم نیست. در شرکت نرم‌افزاری کوچک شما توانایی مالی داشتن افرادی را که فکرمی‌کنند تنها کارشان نوشتن کُد است را ندارید. کارهای بسیار دیگری برای انجام‌دادن هستند و انجام همه آنها برای محصولی موفق داشتن، اهمیت دارد. اگر شرکتی بزرگ بودید، می‌توانستید برای هرکاری متخصصان آن کار را بگیرید. اما چون کوچک هستید، افراد کمتری نیاز دارید اما کسانی که همه‌فن‌حریف‌تر باشند.

~~~

حدود (وظایف و اختیارات) در برابر انعطاف‌پذیری

این تفاوت‌ به‌راستی مهم بین شرکت‌های کوچک و بزرگ است:

  • در شرکت کوچک بیشتر افراد نقش‌های مختلف دارند. امکان‌پذیر نیست که فردی داشته‌باشید که تنها روی یک زمینه تمرکز می‌کند. شرکت‌های کوچک افراد همه‌فن‌حریف‌ی را نیاز دارند که به شرکت اهمیت می‌دهند و برای هرکاری که به شرکت کمک کند، پیش‌قدم می شوند. حسابدار یا کتابدار هرکاری را سر-و-سامان می‌دهند. معمولا کسانی وجود دارند که همه کارها را انجام می‌دهند و سرشان همیشه شلوغ است و هیچ‌کس هم نمی‌داند که آنها چه می‌کنند. در اینجا مفهوم کلیدی انعطاف‌پذیری است.
  • شرکت شرکت‌های بزرگ متخصصان بیشتری دارند. دستمزدها با «حساب‌های دریافتنی» فرق‌ می‌کند که آن‌هم از «حساب‌های پرداختنی» جداست. معماران نرم‌افزار، طراحی می‌کنند. برنامه‌نویسان کُد می‌نویسند. مدیران فنی برنامه‌نویسان را مدیریت می‌کنند. مدیران پروژه (برنامه) ها مشخصه و زمانبندی را پیگیری می‌کنند. مدیران محصول جایگاه‌سازی و پیام‌رسانی می‌کنند. مبلغان، خوب، کسی به راستی نمی‌داند که آنها چه می‌کنند.☺ به هرحال هرکسی کاری مشخص و تعریف‌شده دارد. مفهوم کلیدی اینجا احترام به حدود (وظایف و اختیارات) است.

راستی‌که این دو، فرهنگ‌هایی به‌کلی متفاوت هستند و اگر این دو با هم تداخل داشته باشند ممکن است چیزهای زشتی رخ‌دهد. انعطاف‌پذیری و حدود با هم جور درنمی‌آیند. کسی‌که در یکی از این فرهنگ‌ها موفق بوده، اغلب هنگامی‌که به دیگری گذار می‌کند، کارش بیخ پیدا می‌کند.

~~~

برنامه‌سازان

در شرکت کوچک نرم‌افزاری هر برنامه‌سازی پیش و بیش از هر چیز برنامه‌نویس است. بخش اصلی وقتش باید صرف نوشتن کُد و اشکال‌زدایی گردد. اما نیاز است که برنامه‌سازان در دیگر زمینه‌ها هم کمک کنند، زمینه‌هایی چون:

  • مستندات مشخصه‌ها
  • مدیریت پیکربندی
  • بازبینی کُد
  • تست کردن
  • تست‌های خودکار
  • مستندسازی
  • حل مشکلات جدی مشتریان

در واژگان من، این کارها برای برنامه‌ساز و برنامه‌نویس فرق می‌کنند. برنامه‌ساز بینش و چشم‌اندازی بزرگتر دارد و توانایی آنرا دارد که دیدی بزرگتر (از موضوع) داشته باشد. برنامه‌نویس کُد می‌نویسد، آنرا به تست‌کننده‌ها می‌سپارد و منتظر می‌ماند تا آنها اشکال‌ها را بیابند. برنامه‌ساز می‌داند که بهتر است هم‌اکنون اشکال‌زدایی کند، زیرا ممکن است او در آینده همان کسی باشد که با مشتری درباره آن محصول صحبت می‌کند.

زمانیکه تیم برنامه‌نویسان شما به مرور برنامه‌ساز می‌شوند، شاید سلسله مراتب کاری شما تغییر کند. ممکن است که بهترین برنامه‌ساز شما همان کسی نباشد که مشکلات به‌راستی سخت را برطرف می‌سازد. یک برنامه‌نویس با استعداد فراوان می‌تواند برنامه‌سازی بسیار بد باشد.کُدنویسی بخشی لازم اما ناکافی برای برنامه‌ساز بودن است. همینگونه، افراد با استعداد کمتر در تیم شما هنوز می‌توانند خودشان را به عنوان برنامه‌سازانی عالی نشان دهند با مشارکتی که در بخش‌های غیرکُد نویسی محصول می‌کنند.

~~~

پرسشهای پُربسامد (متداول)

می‌توانیم برنامه‌نویسانِ خود را فقط به کُدنویسی بگماریم و برای همه دیگر کارها گروهی دیگر را بکاربگیریم؟

شاید، شرکت ما پیش‌تر این کار را کرده‌است و گاهی خوب جواب داده است. اما در درازمدت شما، از این تصمیم که برنامه‌نویسانتان را از همه‌چیز جز برنامه‌نویسی دور نگه‌داشته‌اید، پشیمان می‌شوید. برنامه‌نویسان در یک شرکت نرم‌افزاری کوچک بیشتر از آن موثر هستند که به آنها چشم‌اندازی باریک بدهیم. به آنها اجازه بدهید که چشم‌انداز کاربر را ببینند. برنامه‌نویسانتان را پشت تلفن بگذارید تا به مشتریان در رفع مشکلی جدی کمک کنند. همینطور که برنامه‌نویسان را مجبور می‌سازید اشکال‌هایی را که خود ایجاد کرده‌اند را رفع کنند، کیفیت محصول شما بهبود پیدا خواهد کرد.

برنامه‌نویسان ما نمی‌دانند که چگونه همه این کارهای دیگر را انجام‌دهند؟

راستی؟ مطمئن هستم که دانشکده‌های کامپیوتر ابزارهای مدیریت زنجیره تامین (SCM) و مهارت‌های پشتیبانی فنی را درس می‌دهند، درست؟☺

گرچه دانشکده من این چیزها را یاد نمی‌داد. روشن است که برنامه‌نویسان شما نمی‌دانند که چگونه جنبه‌های جز-کُدنویسی ساخت محصول را انجام‌ دهند. به آنها آموزش دهید.

آموزش رسمی ممکن است نقشی ایفا کند، اما بهترین یادگیری از تجربه می‌آید. برنامه‌سازان شما باید پند شرکت نایکی (Nike) «انجامش بده» را بکار بندید. مطمئن شوید که آنها فرصت اشتباه داده‌اید. به آنها اجازه دهید از اشتباهاتشان یادگیرند.

برنامه‌نویسان ما نمی‌خواهند همه این کارها را انجام دهند

بعضی آدمها نمی‌خواهند برنامه‌ساز باشند، آنها می‌‌خواهند برنامه‌نویس باشند. اشکالی ندارد. برنامه‌نویس می‌تواند کار خوبی پیدا کند. اما شما و آن برنامه‌نویس می‌توانید بنشینید و درباره اینکه آیا شرکت شما محیط مناسبی برای کار او هست یا نه، بی‌پرده سخن بگویید.

سرانجام با توجه به موقعیت خود می‌توانید تصمیم بگیرید که در این باره چه کنید. پیشنهاد من این است که هر برنامه‌نویسی در شرکت نرم‌افزاری کوچک نیاز دارد که در چیزی فراتر از کُدنویسی دخالت داشته باشد، البته تمام قاعده‌ها استثنا هم دارند.

آیا یافتن برنامه‌سازی که مهارت‌هایی اینچنین گوناگون دارد، سخت نیست؟

بله هست. برنامه‌سازان واقعی و راستین ارزشمند هستند. احتمالا شما نمی‌توانید آنها را از بیرون بکارگیرید. مجبور هستید که به برنامه‌نویسان کمک کنید که برنامه‌ساز شوند.

زمانیکه شدند، باید بسیار تلاش کنید که آنها را نگه‌دارید. هنگامیکه برنامه‌نویسی از شرکت جدا می شود یا در شرکتی بزرگ شغل مدیریتی می‌گیرد یا شرکت خو را برپا می‌کند.

چگونه برنامه‌سازان کُد بنویسند در حالیکه پیوسته با کارهای دیگر در کارشان وقفه می‌اندازند؟

بله، این مساله‌ای است. از این فرصت بهره می‌جویم تا از اصل اریک (خودم) در مدیریت نرم‌افزار یاد کنم:

نمی‌توانید مسایل را حذف کنید،
اما می‌توانید بده-بستانی انجام‌دهید
مسایلی که هم‌اکنون دارید را بدهید
در برابر آنها مسایلی را که ترجیح می‌دهید، بستانید.

برنامه‌سازان وقت آزاد بیشتری نیاز دارند وگرنه هیچ کُدی نخواهند نوشت. خوب این مساله‌ای است که ترجیح دارد برمسایلی که برایتان پیش خواهد آمد هنگامی‌که با افرادی با چشم‌انداز باریکِ «تنها کُد» سروکار پیدا می‌کنید. تلاش کنید زمان خود را ساماندهی کنید. برای نمونه در یک روز همزمان کُدنویسی و پشتیبانی فنی را انجام‌ ندهید.

پس شما می‌گویید که برنامه‌سازان ما مجبورند همه دیگر کارها را انجم دهند؟

خیر. بهتر این است که برنامه‌سازان هنوز بیشتر(اما نه همه) وقتشان را صرف نوشتن کُد کنند. اگر بودجه شما اجازه می‌دهد دسته‌های گوناگونی از متخصصان هستند که می‌توانید بکار بگیرید:

پشتیبانی فنی «سطح یک»

بیشتر کار پشتیبانی فنی شامل پاسخگویی پیاپی به پرسشهای یکسان است.احتمالا اینکار بهترین کاربری از وقت یک برنامه‌ساز نیست. برنامه‌ساز را در پشتیبانی فنی «سطح دو» درگیر کنید؛ تشخیص و حل مشکلات سخت و پیچیده مشتریان. اما اینکه یک یا دو متخصص برای رسیدگی به کارهای ساده‌تر داشته باشید، ایده خوبی است. برای اینکار دنبال فردی بگردید که مهارت‌های ارتباطی خوبی دارد و پیش‌زمینه‌ای هم در مسایل فنی.

تستِ دستی، بازبینی اشکال‌زدایی و …

همینطور که یک تیم پشتیبانی فنی سطح یک می‌سازید، برای این تیم کمی بیش از نیازتان کارمند بگیرید. به آنها کمی هم وقت آزاد بدهید تا بتوانند با مقداری مشخص از کارهای پرسش/پاسخ درگیر شوند. بگذارید آنها مقداری از کار تستِ دستی و بازبینی اشکال‌زدایی را انجام‌دهند. این کار از بارِکاری برنامه‌سازان شما خواهد کاست و نرخ ازپای درآمدن افرادی که در جایگاه پشتیبانی فنی محض هستند را کاهش می‌دهد.

مستندسازی

برنامه‌سازانتان را مجبور کنید که مشخصه‌ها یا پیش‌نویس نخست محتوا را بنویسند، اما آماده‌سازی و ویرایش نهایی و ویرایش مستندات شما کاری است که برای کسیکه می‌تواند بنویسد مناسب است.

مدیر سیستم (System Administration)

احتمالا برنامه‌سازان شما می‌توانند کار یک مدیر سیستم را انجام‌دهند، اما هیچ دلیل خاصی مرتبط با محصول برای اینکه آنها این کار را بکنند وجود ندارد. بکارگیری یک مدیر سیستم روشی است برای کاستن از دقدقه‌های برنامه‌سازان.

این نوشته برگردانی است از:

Sink, Eric. “Small ISVs: You need Developers, not Programmers

اگر می خواهید بار دیگری که  مطلبی نوشته شد، آگاه گردید. عضو خوراک (feed) این بلاگ شوید.

Balatarinاین نوشته را به بالاترین بفرستید:

نظريه بازی‌ها – راه برنده شدن

داشتم در آرشیوم از ماهنامه خوب شبکه جستجو می‌کردم، در شماره 39 به مقاله‌ نظريه بازی‌ها – راه برنده شدن که درآمد و تاریخچه‌ای بر نظریه بازی‌ها است برخوردم، پس از جستجو دریافتم که خوشبختانه این مقاله در سایت مجله موجود است: برای دیدن صفحه به اینجا و برای گرفتن متن کامل مقاله (PDF) به اینجا نگاه کنید.

اگر می خواهید بار دیگری که  مطلبی نوشته شد، آگاه گردید. عضو خوراک (feed) این بلاگ شوید.