اقتصاددان در شرکت کامپیوتری!؟

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

حدس بزنید چه شرکتی؟
گوگل
و سمتش؟
اقتصاددان ارشد – Chief Economist

فکر می کنید چرا یک شرکت کامپیوتری باید اقتصاددان داشته باشد؟

راستی می دانید نام آخرین کتابش چیست؟

The Economics of Information Technology

اندر نکوهش ویژوال بیسیک 2

در پست اندر نکوهش ویژوال بیسیک گفتم که به نظر من ویژوال بیسیک نه تنها زبان بدی است، بلکه بدترین زبان برای شروع و کسانی است که تاکنون برنامه نویسی نکرده اند.حال دلیل دیگر بر مدعای خود می آورم:

اریک ریموند از برنامه نویسان بسیار حرفه ای و یکی از پایه گذاران جنبش باز متن است. مقاله بسیار مفید و معروفی دارد با نام “چگونه هکر شویم؟” (هکر در اینجا به معنی برنامه نویس حرفه ای است) درباره برنامه نویسی و راه های حرفه ای شدن در آن. متن انگلیسی را در اینجا و ترجمه ای فارسی از آن را می توانید اینجا ببینید.

در انتهای متن در بخش پرسش های بسیار پرسیده شده به سوال ” آيا ويژوال بيسيک زبان برنامه‌نويسی خوبی برای شروع است؟ ” پاسخ می دهد که ترجمه آن را نقل می کنم. با توجه به این نکته که نسخه متن انگلیسی از نسخه ترجمه شده جدیدتر است، آنرا با اندکی تغییر بر اساس متن جدید اینجا می آورم:

پرسش: آيا ويژوال بيسيک زبان برنامه‌نويسی خوبی برای شروع است؟

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

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

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

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

يکی از عادت‌های بد وابسته شدن به ابزار کتابخانه‌ای و ابزار توسعه‌ی يک شرکت خاص است. به طور کلی هر زبانی که به طور کامل حداقل توسط لينوکس يا يکی از BSD ها پشتيبانی نشود و يا حداقل تحت سيستم‌عامل‌های سه شرکت متفاوت کار نکند، يک زبان ضعيف برای هکری است.

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

اندکی صبر سحر نزدیک است

دوست عزیزی برای پست پیشین من نظری گذاشته که مرا برا آن داشت تا نوشته ای نو بنویسم. اول بخشی از نظر این دوست عزیز:

“همه ی مدل ها جواب میدن اما نه در ایران. در ایران حتی نمی توان از نرم افزار تجاری درآمد کسب کرد چه برسه به نرم افزار آزاد.”

می پذیرم که در ایران کسب و کار کمی سخت تر است (هر کسب و کاری جز دلالی) اما بهتر است کمی جدی تر به فرآیند شکل گیری و مدیریت شرکت های نرم افزاری در ایران نگاه کنیم. من در مورد مسایل فنی نرم افزار صحبت نمی کنم و فرضم این است که همه کسانی که شرکت نرم افزاری راه اندازی می کنند، نرم افزار نویسانی ماهر و حرفه ای هستند!؟ (بگذریم که بیشتر ما با روش (متدولوژی) های نو طراحی و تولید نرم افزار آشنایی نداریم):

متاسفانه بیشتر ما شرکت برپا می کنیم، چون کار دیگری نداریم بکنیم.
در کشورهای دیگر فرد یا افرادی که ایده ای دارند و می خواهند کسب و کاری برپاکنند، در آغاز طرح کسب و کار (Business Plan) آنرا تهیه می کنند. خوب در اینجا چه درصدی از شرکت های نرم افزاری و وبی نوپا این کار را می کنند؟

متاسفانه بیشتر افراد فکر می کنند داشتن دانش فنی برای برپایی کافی است، پیش تر هم گفته ام این تنها یک سوم نیاز است. چند مهندس کامپیوتر تازه از دانشگاه آمده می شناسید که دانشی هرچند اندک از مدیریت دارند؟
دانش مالی و حسابداری که از شام شب برای چنین فرد/افرادی واجب تر است چطور؟
آیا افرادی که می خواهند شرکتی برپا کنند بازاریابی می دانند و بازار را می شناسند، اگر نه پس برچه اساسی محصولات خود را تولید می کنند!!!!؟؟؟؟

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

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

هدف اصلی من از این بلاگ این بوده و هست که درباره “اقتصاد و مدیریت نرم افزار و وب” بنویسم و بر این تاکید کنم که: همه چیز دانش فنی نیست (گرچه لازم است ولی کافی نیست). صنعت نرم افزار از در ایران از دو سو ضربه می خورد: سیاست های کلان نادرست نرم افزاری و سو مدیریت مدیران شرکت های نرم افزاری.

مدل کسب و کار بازمتن ۱۲

فهرست ۱۲ مدل اپن سورس به همراه شرکت (موسسه)هایی که این مدل ها را بکار می برند آورده شده است:
۱. نرم افزار رایگان است اما ما برای پایایی و ماندگاری به اعانه (Donation) و کمک مالی (subsidy) نیاز دارد: بنیاد نرم افزاری آپاچی، ObjectWeb ،Eclipse
۲. نرم افزار رایگان است اما ما تبلیغ و جایگاه (مثل نوار ابزار) می فروشیم: موزیلا
۳. نرم افزار رایگان است اما اگر می خواهید آنرا در یک نرم افزار بسته متن (closed source) بکار برید، بهتر است که پولش را بپردازی: Trolltech, DB4Objects, Funambol, MySQL
۴. نرم افزار رایگان است اما خدمات رایگان نیستند: Covalent
۵. نرم افزار رایگان است اما پشتیبانی و نظارت مداوم و دسترسی به فایل های اجرایی (باینری)رایگان نیستند: RedHat
۶. نرم افزار رایگان است اما برخی ویژگی های سازمانی (حرفه ایِ شرکتی) رایگان نیستند: SugarCRM, Zimbra, JasperSoft
۷. نرم افزار رایگان است اما ما بر اساس آن مجصولی بسته متن تولید می کنیم. EnterpriseDB, GreenPlum
۸. نرم افزار رایگان است اما سخت افزار (ی که با آن ارایه می شود) نیست. Asterisk/Digium و SUN
۹. نرم افزار رایگان است اما ما هرچیز دیگری روی این سیاره را می فروشیم، از جمله نرم افزارهای بسته متن: IBM
۱۰. نرم افزار رایگان است اما این کار اصلی ما نیست: Ruby on Rails و اشخاصی که در پروژه ها همکاری می کنند
۱۱ . نرم افزار رایگان است زیرا ما آنرا دور انداخته ایم و دیگر به آن نیاز نداریم
۱۲. نرم افزار رایگان است زیرا ما ترافیک (بازدید) وب را می خواهیم: Google GWT, Yahoo YUI

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

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

محاسبه فضای کاری

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

برای کسانی که می خواهند شرکت نرم افراری برپا کنند، مساله ای وجود دارد و آن محاسبه فضای مورد نیاز است. مدتی پیش مطلبی در سایت جوِل اسپالسکی دیدم، آنرا اینجا می آورم:

– دفتر (اتاق)ها :کارکنان تمام وقت بین 6.5 تا 9 متر مربع برای هرنفر. اگر کارآموز بکار می گیرید 13.5 متر برای هر سه نفر کافی است.
– قسمت منشی و انتظار: 22.5 متر
– قفسه های کتاب و کتابخانه: 7 تا 9 متر
– اتاق وسایل و انبار: 9 تا 18 متر
– قفسه و جای سرور ها: 6 متر
– غذا خوری: 2.7 متر به ازای هر نفر
– آشپزخانه: 18 متر
– اتاق نشت/ جلسه: 22.5 متر
– دستشویی و حمام :2-3 عدد به اضافه حمام

هنگامیکه همه اینها را جمع بندی کردید. %30 به اضافه کنید. (راهرو ها، حال و فضای رفت و آمد و …)
اگر می توانید جا را برای 5 سال اجاره کنید و پیش بینی رشد تا آن هنگان را هم بکنید.
این را هم میدانم که این برآورد کمی زیاد است و ما عادت به گرفتن دفتر کار به این بزرگی (و پولش را هم) نداریم. ولی به هر حال نیروهای انسانی در شرکت های نرم افزاری مهمترین فاکتور هستند.

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

مدل کسب و کار

یکی از مفاهیم پایه ای و بسیار مهم در هر کسب و کاری، به ویژه در کسب و کارهای مبتنی بروب و نرم افزاری مدل کسب و کار یا Business Model است. به زبان ساده، این مفهوم بیان می کند که چگونه می خواهید از کسب و کارتان پول در بیاورید.

شاید برخی بگویند “این که واضح است؟ ” اما همیشه اینگونه نیست وبه ویژه در کسب وکارهای اینترنتی و نرم افزاری راههای بسیاری برای در آوردن پول وجود دارد.

برای نمونه در صنعت نرم افزار های آزاد و باز متن (Open Source) در حدود بیست مدل کسب و کار ساده و مرکب وجود دارد. مدل کسب و کار شرکت کانونیکال (سازنده توزیع لینوکس اوبونتو) تا مدت ها مشخص نبود و هنوز هم کاملا مشخص نیست. این مساله آنچنان اهمیت دارد که سال گذشته انتشارات دانشکده بازرگانی هاروارد (Harvard Business School) -بزرگترین و معروف ترین دانشکده کسب و کار دنیا- کتابی به نام “مدل های کسب و کار باز” (Open Business Models) منتشر نمود.

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

اگر از تعریف گذر کنیم، مدل کسب و کار دو کار اصلی انجام می دهد: ارزش می آفریند و سهم بدست آمده از آن ارزش را جمع آوری می کند.

در چند پست آینده در مورد مدل کسب و کار بیشتر می گویم و جداگانه برای کسب و کارهای اینترنتی (وب) و نرم افزار های آزاد و باز متن مدل های معروف را بیان می کنم.

در این رابطه می‌توانید نوشته «۱۲ مدل کسب و کار بازمتن» را نیز بخوانید.

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

دیدگاه های یک مدیر

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

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

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

راستی چرا مدیران نرم افزاری کم داریم؟چرا مدیران پروژه های نرم افزاری کم داریم؟ چرا برنامه نویسیان به مسایلی چون مدیریت، اقتصاد و بازاریابی اهمیت نمی دهند؟

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

My life as a Code Economist

Succeeding as a developer in today’s economy

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

کامپیوتر و اقتصاد

فرصتی دست داد تا از نزدیک با دوست عزیزم محمد رضا فرهادی پور عزیز از نزدیک آشنا شوم، وی در یک پست در این باره نوشته است.
چیزی که وی از آن در عجب بود علاقه یک کامپیوتری به اقتصاد بود. راستش مثل اینکه تازگی ها اقتصادی ها هم به کامپیوتر علاقه مند شده اند. برای نمونه اگر شماره سپتامبر 2007 مجله اکونومیست را نگاهی بیندازید موضوع اصلی (Cover Story) خود را به گوگل اختصاص داده است.

اما اندر علاقه کامپیوتری ها به اقتصاد، مثل اینکه این نیز فراگیر شده است، علتش البته واضح است، پس از آنکه تعداد زیادی شرکت کامپیوتری ( به ویژه در سال های 1999-2000) ورشکست شدند (شرکت هایی که بیشترشان از فناوری های پیشرفته استفاده می کردند)، به این نتیجه رسیدند که فناوری تنها نمی تواند عامل موفقیت در کسب و کار شود و یکی از چیزهایی که شرکت های کامپیوتری ( حتا برنامه نویسان) باید بدانند اقتصاد است.
یک نمونه: بیشتر کامپیوتری ها انتشارات بزرگ و پیشرو اورایلی را می شناسند( البته بسیار فراتر از آن چیزی است که ما از یک ناشر می شناسیم) اگر به بلاگ این ناشر نگاهی بیندازیم، چیزی که با آن زیاد یرخورد می کنیم واژه های مرتبط با اقتصادهستند. در بلاگ های دیگر معروف کامپیوتری ( به ویژه آنها که گروهی هستند) با این جریان بسیار برخورد می کنیم.
نتیجه گیری: آهای کامپیوتری ها! اقتصاد بخوانید.


نوشتن، خواندن و نوشتن

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

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

عنایت کلایی عزیز نیز در پستی در این باره نوشته است.

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

یکی از دلایلی که نویسندگان را مایوس می کند تعداد بسیار کم کامنت نویسان نسبت به بازدیدکنندگان است، و از این نتیجه می گیرند که خوانندگان به نوشته یا موضوع بی علاقه هستند. اما مطلب دیگری نیز در این میان هست:

فرهنگ دیگری نیز وجود دارد و آن “نگریستن و نگاه گردن است” یعنی افراد ترجیح می دهند، بیننده باشند تا مشارکت کننده. خود من هم گاه و بی گاه اینگونه ام. این تنها برای اقتصاد نیست، ما گروهی فعال در کامپیوتر داریم، این گروه 20-30 عضو فعال دارد. اما در لیست پستی (Mailing List) این گروه پیوسته 4-5 نفر نویسنده ثابت هستند و دیگران بیشتر خواننده (من نیز خود جزو گروه دوم هستم)

به هر حال نوشتن کاری شده سخت، و انگیزه نیز یافت می نشود. خواننده وجود دارد ولی نویسنده چه پست چه کامنت…

اندر نکوهش ویژوال بیسیک

نمی دانم این همه افراد چرا می روند ویژوال بیسیک یاد می گیرند، در حالیکه روز به روز تقاضا برای آنها و NET. کار (به نسبت افرادی که وارد این دوره ها می شوند) کم تر می شود. از این بگذریم. سخن من چیز دیگری است:

پس از چند دوره تدریس ویژوال بیسیک دانستم که کسانی که برنامه نویسی را با این زبان آغاز می کنند- تاکید می کنم با ویژوال بیسیک آغاز می کنند- به ندرت تبدیل به یک برنامه نویس حرفه ای می شوند. چرا؟

– ویژوال بیسیک آدم را عادت می دهد به تنبلی و تنبل بار می آورد. چون بیشتر کار کشیدن و رها کردن است. این باعث می شود درک جریان برنامه و داده ها بسیار کم گردد.

– زبان بسیار مزخرفی است. (گرچه گهگاه کار راه انداز است) به خاطر ساختار زبان
– کلی عادت های بد برنامه نویسی دیگر مثل فرق نگذاشتن بین حروف بزرگ و کوچک- شی گرایی ناقص (در نسخه های مختلف متفاوت است) و …

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

از همه این ها بگذریم اگر این زبان بهترین زبان دنیا هم باشد، هنگامیکه این همه سرگرم فراگیری آن هستند، زنگ خطری است برای خراب شدن بازار و بهتر است سراغ زبان دیگری برویم.

پیشنهاد من این است که اگر می خواهیم برنامه نویس شویم (به معنای واقعی) بهار است با زبان های جدید و بهتر برای یادگیری مثل پایتون آغاز کنیم. هم اکنون این زبان یکی از بهترین ها برای آغاز است. پس از آن می توان با جاوا یا ++C ادامه داد. در ضمن تا می توانید در آغاز کار از IDE دوری کنید، نتیجه شگفت انگیزش را خواهید دید.

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