An open letter to oDesk from an Iranian software developer

Dear oDesk managers,

I’m an Iranian software developer living and working in Tehran/Iran. Recently I opened an account in oDesk and started to bid on oDesk projects as a contractor. But unfortunately oDesk has suspended my account just because I’m an Iranian.

I can’t realize why I can’t work in oDesk like many other people all around the world including Pakistan, Latin America, Egypt, Ukraine, India, etc? What is difference between them and us? I know about Iran Sanctions Act (ISA), but we, the people of Iran not the government, do not deserve it. In Iran, a very few software developers work directly for government or government organizations. While American and Iranian politicians hate each other, why we, the people of Iran must be sacrificed? Why we must pay for it?

Please watch software developers of Iran more carefully, we don’t program for nuclear weapons, mass destruction weapons or anything else dangerous for people of world. Main stream of software development in Iran is LOB applications deployed in boring offices manipulating personal data, banking data, accounting data and any none military data. Why you are think these poor and peaceful software developers are dangerous to other people?

I beg you think twice…

Best Regards,
A peaceful Iranian software developer,
Afshar Mohebbi

برون‌سپاری خدمات تخصصی – ۴

یکی دیگر از مشکلات این موضوع، استاندارد نبودن و بی‌نظمی کارها در شرکت‌هاست. این مشکل بیشتر گریبان‌گیر نیروی کار بیرون شرکتی است که قرار است در داخل یک شرکت خدمات تخصصی ارائه دهد.

یکی از مصداق‌های این موضوع وجود سورس کدهای متعدد از یک پروژه‌ی واحد در شرکت است. آقا یا خانم ایکس برای انجام یک کار کوتاه مدت تخصصی به شرکتی دعوت به کار شده ولی کسی نمی‌تواند یک سورس کامل و به روز از فلان پروژه‌ی شرکت به او بدهد!

به عنوان دیگر مصادیق می‌توان به موضوعات دیگری نیز اشاره کرد: نبود مستندات کافی، عدم استفاده‌ی صحیح معماری‌های رایج، استفاده‌ی نامتعارف از فناوری‌ها و روش‌های مرسوم، عدم استفاده از نرم‌افزارهای Source Control، نام‌گذاری‌های نامناسب در سورس کد، استفاده از فناوری‌های متنوع برای یک کار یکسان مثل استفاده هم‌زمان از ADO و EF، NHibernate، SQL Server، MySQL و غیره در یک پروژه‌ی متوسط و…

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

توجه:
این نوشته جز سری نوشته‌های «برون سپاری خدمات تخصصی» می‌باشد.

برون‌سپاری خدمات تخصصی – ۳

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

به عنوان مثال: کارفرما منظورش از Component یک چیز است ولی برنامه‌نویسان شرکت برداشت دیگری از Component دارند. مدیر پروژه منظورش از تست، Integration Test است در حالی که منظور برنامه‌نویس Unit Test است. کارمند داخل شرکتی تفاوت زیادی بین Bug و Feature قائل نمی‌شود در حالی که این دو برای نیروی بیرون شرکتی تفاوت زیادی با هم دارند.

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

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

توجه:
این نوشته جز سری نوشته‌های «برون سپاری خدمات تخصصی» می‌باشد.

برون‌سپاری خدمات تخصصی – ۲

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

در واقع کارفرماها هر چقدر هم که از رزومه‌ی شخصی خوششان بیاید باز هم تا زمانی که مستقیماً با وی کار نکرده باشند نمی‌توانند مطمئن شوند که آن شخص دارای مهارت‌های لازم هست یا نه. ناگفته نماند که بر عکس این موضوع هم صادق است. یعنی یک برنامه‌نویس نمی‌تواند تا زمانی که خودش در یک شرکت جدید کار نکرده باشد نمی‌تواند مطمئن شود که آیا آنجا جای مناسبی برای او هست یا نه.

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

توجه:
این نوشته جز سری نوشته‌های «برون سپاری خدمات تخصصی» می‌باشد.