در این مقاله می خواهم 6 نکته مهم برای برنامه نویسان مطرح کنم
برای
اینکه برنامه ای بنویسیم که قابل استفاده باشد باید ابتدا اهداف استفاده
کاربران را بدانیم ، 6 هدف باید در هر برنامه دنبال کنیم که در این مقاله
به آنها می پردازم
1- ( نرم افزار فعال)
چگونه
نرم افزار می تواند فعال باشید
تعریف فعالیت بودن نرم افزار یعنی
اینکه نرم افزار بتواند انتظارات کاربر را برآورده کند
به عبارتی دیگر
نرم افزار باید آنچیزی که از آن بخواهند و انتظار دارند را بدون کم و زیادی
انجام دهد
بایک مثال قضیه را روشن تر می کنم
یک برنامه حسابداری را
در نظر بگیرید ، خوب این نرم افزار برای اینکه فعال و کارا باشد ، باید در
همان حوزه نیاز کاربر را برآورده کند ، حالا فرض کنید این نرم افزار
امکانات جانبی مانند نقاشی داشته باشد که کاربر بتواند با آن مثلا یک نقاشی
ساده هم طراحی کند ، مشخص است که این نیاز اصلا نباید با برنامه حسابداری
باشد ، چرا که نیازی به آن نیست ، شاید این مثال کمی برای شما باور کردنی
نباشد و شاید هم خنده دار ، اما طبیعت هر انسان این است که دوست دارد
توانمندیهای خود را بروز دهد ، برنامه نویسان هم اینطوری هستند ، یک برنامه
نویس به فرض اینکه به مورد خاصی علاقه و استعداد دارد سعی می کند بیش از
اندازه آن را در نرم افزار خود نشان دهد ، در حالی که نیازی به آن نیست ،
شما همیشه در نرم افزار فقط نیازهای اصلی و مهم را باید برآورده کنید
2-کیفیت
چگونه یک برنامه با کیفیت بنویسیم
تعریف کیفیت خیلی ساده
است ، کیفیت نرم افزار یعنی اینکه نرم افزاری بنویسیم که کاربر بتواند
براحتی کارهای خود را با آن انجام دهد بدون ترس و نگرانی
دقت کنید که
در بحث کیفیت نرم افزار بحث راحتی و آسان بودن استفاده، هم مطرح می شود
مثال
فرض کنید یک سایت اینترنت طراحی و برنامه نویسی می کنید ، کاربر برای
رسیدن به مطلب و یا فهرست سایت باید مثلا 4 مرحله یا همان 4 صفحه را پیمایش
کند تا به فهرست برسد ، خوب این راه زیاد است ، شما باید تلاش کنید که این
مسیر را کوتاهتر کنید
یا مثلا در برنامه حسابداری اگر کاربر فرضا
فاکتوری را اشتباه وارد کند ، شما باید سعی کنید این اجازه را به کاربر
بدهید که در همان جا اشتباه را اصلاح کند نه اینکه صفحه جدیدی را باز کند و
در جای دیگر این عمل را انجام دهد
3- امنیت
امنیت
فقط به معنای محدود کردن سطح دسترسی کاربران نیست
امنیت 2 مقوله دارد ،
یکی همان سطح دسترسی کاربران به داده های نرم افزاری است اما مقوله مهمتر ،
جلوگیری کردن از اشتباه کاربران است ، شما باید در نرم افزار تان فرض کنید
که کاربران کاملا بی سواد هستند و کاری کنید که تا حد امکان جلوی اشتباه
کاربر را بگیرید
مثلا اگر در جایی باید داده عددی وارد شود ، حال ،
کاربر یک متن وارد می کند ، شما باید از ثبت این اطلاعات جلوگیری کنید و به
کاربر هشدار مناسب بدهید
مثال دیگر ، حذف اطلاعات از نرم افزار ، همیشه
باید قبل از آن پیغام هشدار به کاربران بدهید ، چرا که ممکن است کاربر از
روی بی دقتی دکمه حذف را بزند
و از همه مهمتر ، پشیبانی اطلاعات کاربر ،
حیاتی است ، حتی اگر کاربر از اطلاعات خود پشتیبان نگرفت شما بصورت
اتوماتیک باید پشتیبانی امن داشته باشید تا در صورت از بین رفتن اطلاعات
کاربر ، باز گشت پذیر باشد
4-مفید بودن و سود مندی
برنامه
باید مفید و سودمند باشد به این معنا که نرم افزار برای استفاده باید تمام
ابزارهای لازم کاربر را فراهم کند شما در نرم افزار باید این اختیار را به
کاربر بدهید که خود ابزار مناسب خود را انتخاب کند
شما باید تمام
ابزارهای مورد نیاز کاربر را برایش فراهم کنید ،
مثلا در یک برنامه
حسابداری شما نباید کاربر را فقط محدود به استفاده از ماوس بکنید بلکه باید
به کاربر این اختیار را بدهید که از کیبورد هم استفاده کند
انعطاف
پذیر باشد ، کاربر بتواند برخی تنظیمات آن را برحسب نیاز خود تغییر دهد
5-قابل
آموزش
بسیار مهم است که نرم افزار شما بگونه ای باشد که
کاربران بتوانند بسادگی آن را یاد بگیرند ، فراموش نکنید که اکثر کاربران
حوصله خوانده جزوه آموزشی و دیدن فیلم آموزشی را ندارن
لذا سعی کنید
نرم افزار خود را بگونه طراحی کنید که بسادگی بتوان آن را یاد گرفت و این
همان راز موفقیت سیستم عامل ویندوز مایکروسافت است ، چون به سادگی می توان
آن را فرا گرفت
6-یاد آوری
نرم افزار شما
باید بگونه باشد که سلسله مراتب کاری را به کاربر نشان دهد ، مثلا یک کاربر
می خواهد فاکتور فروش صادر کند ، مشخصا باید کالاها و نام فروشنده را وارد
کند ، شما در این حالت باید به کاربر بگویید که کجا و چگونه کالاها و نام
مشتری را تعریف کند ، این بحث جدا از بحث آموزش است ، پیغامهای نرم افزار
باید کاملا روان و قابل فهم و آموزنده باشد.
افشار محبی در یک مطلب انتظارات خودش را به عنوان یک نیروی انسانی برنامه نویس مشخص کرده و از وبلاگ نویسان خواسته تا در این مورد بنویسند.
نیازهای من به عنوان یک نیروی انسانی برنامهنویس:
1-زبان برنامه نویسی مشخص باشد ، اگر من برای دات نت استخدام شده ام از من نخواهند که با جاوا هم برنامه نویسی کنم
2-ابزار لازم برای کار فراهم کنند ، کامپیوتر خوب ، میز کار مناسب ، کتابها و رفرنسهای مورد نیاز برای برنامه نویسی ، یک شرکت باید منابع علمی در اختیار برنامه نویسان خود قرار دهد
3-دادن فرصت به برنامه نویس برای ارتقای علمی خود ، شرکتی که تمام وقت برنامه نویس را بکار می گیرد و اگر قرار باشد اکثر وقت برنامه نویسان در کار باشد ، پس چه وقت می تواند از نظر علمی خود را ارتقا دهد هر برنامه نویس نیاز دارد که کلاسهای آموزشی و از همه مهمتر آخرین مقاله های آموزشی را مطالعه کند
4-لطفا آینده برنامه نویس را مهم تلقی کنید ، اکثر شرکتها برای لیست بیمه برنامه نویسان حقوق حداقلی رد می کنند ، یعنی اگر به برنامه نویس فرضا هفصد هزار تومان حقوق می دهند اما برای بیمه او حق بیمه حداقلی رد می کنند و این امر در آینده برای بازنشستگی مهم است
5-ساعت آغاز و پایان کار نباید اینقدر خشک و مزخرف باشد ، بخاطر چند دقیقه دیر امدن ارزش دعوا نداره در عوض شما میتوانید تا 2 ساعت تاخیر داشته باشید بشرط آنکه آن 2 ساعت را همان روز جبران کنید مثلا اگر قرار است ساعت 8 تا 5 کار کنید و ساعت 10 به محل کار رسیدیم این دوساعت در پایان همان روز جبران می کنیم
6-مدیران شرکت برای ایجاد مسولیت در پرسنل در صد هر چند کم را از مبلغ پروژه را به عنوان حسن انجام کار به برنامه نویسان پرداخت کنند تا برنامه نویسان تشویق شوند برای در یافت این درصد از خود وقت بزارند
7-در همان اول عقد قرار داد همه چیز واضح و شفاف باشد ، از بکار بردن عبارات دو پهلو پرهیز کنید ،
8-اضافه کاری اجباری نباشد ، ما هم آدمیم
9-مرخصی قانونی حق قانونی ماست ، ما هم مریض می شویم ، ما هم زندگی داریم .
10-محیط کار حالت زندان نداشته باشد ، آرامش داشته باشد ، بی سرو صدا باشد .
مطالب دیگری هست که بعدا مفصلا در موردش صحبت خواهم کرد
راستش نمی خواستم در مورد مسایل غیر فنی مطلب بنویسم اما اخیرا بدلیل شرایط کاری مجبور شدم که چند مطلبی بنویسم
حقیقتش هر برنامه نویس برای انتخاب شغل و ورود به بازار کا ر 3 راه در پیش دارد1-دوست و آشنا 2-از طریق آگاهی 3-گرفتن پروژه
برنامه نویسان اگر بتوانند از طریق دوست و آشنا به جاهایی معرفی شوند و کار پیدا کنند ، خیلی بهتر می توانند حق خود را بگیرند . حداقل با اعتبار معرف خود می توانند به جایی برسند . این دسته اگر بخواهند از طریق آگاهی روزنامه یا غیره کار پیدا کنند احتمال رسیدن به حقشون را کم می بینم ، چون هر چقدر حرفه ای باشی ، باز هم طرف استخدام کننده به شما اطمینان ندارد و البته حق دارد ، چون نمی تواند ریسک کند . اما اگر شما پروژه ای را گرفتید تازه مشکل شما شروع میشه
متاسفانه قشر برنامه نویس ، بدلیل نوع کار ، مجبور است که فقط فنی فکر کند ، در حالی که فعالیت در بازار کسب و کار ایران ذهنیتی دیگر می طلبد . اکثر برنامه نویسان به هنگام گرفتن پروژه غافل از یک مور حیاتی می شوند و آن هم ، چگونه حق خود را دریافت کنند .
حقیقتش پاسخ این سوال را بنده بعد از چند سال هنوز نتوانستم پیدا کنم ، اما اگر بی ادبی نباشد ، با عرض شرمندگی باید بگویم که باید از روشهای ش ر خ ر ی استفاده کرد . و این خود جای تاسف است .
مشکلی دیگری که اکثر برنامه نویسان در این حالت با آن مواجه می شوند نحوه قرار داد پشتیبانی است . متاسفانه امروزه بدلیل نبود فرهنگ استفاده از نرم افزار ، مشتریان تصور می کنند که پشتیبانی یعنی خدمات نوکری رایگان ، علاوه بر این اکثر مشتریان تصور می کنند که نرم افزار تحت هیچ شرایط نباید دچار مشکل شود ، علاوه بر آن اگر هم نرم افزار دچار مشکل شد ، پس حتما اشکال از شرکت است که باید رایگان برطرف کند .
مثلا موردی که بنده با آن مواجه شدم خرابی پرینتر یا خرابی مانیتور یک مشتری بود که خرابی سخت افزار را بخاطر استفاده از نرم افزار فلان شرکت می دانست . خوب این یک واقعیت است و متاسفانه بدلیل نبود سواد از این اتفاقات زیاد دیده ام
چیزی که امروز بهش رسیدم ، آن است که بد نیست دوستان برنامه نویسی که دنبال گرفتن پروژه هستند یه مقداری روانشناسی و از همه مهمتر بازاریابی را فرا بگیرند ، در کنار آن این مثل را فراموش نکنند که با تولید هر نرم افزاری در حقیقتش شما می شوید مادر آن نرم افزار و باید تمام بدبختیهای مربوط به آن را تحمل کنید .
البته در گرفتن پروژه اگر شما گروهی داشته باشید مسلما فشار ، خواهد شکست و شما مجبور نخواهید شد که همه کار را خود انجام دهید
شدیدا توصیه می کنم در گرفتن پروژه ها دور اندیشی کنید و آینده را ببییند ، شاید برخی پروژه ها از نظر مالی نظر شما را جلب کند اما در دراز مدت زمان و وقت شما را تلف کند و جز پشیمانی چیز دیگری عاید شما نخواهد کرد
اما بخش دیگر سخن من با شرکتها و سازمانهایی است که برنامه نویسان را استخدا م می کنند
1-سازمانها و ادرات غیر کامپیوتری : در اینگونه سازمانها معمولا واحدی به نام رایانه و شاید فناوری اطلاعات وجود داشته باشد
اغلب این مکانها از برنامه نویس توقع آچار فرانسه بودن دارند ، مثلا ازشما می خواهند اگر نرم افزار شرکت که از جای دیگری خریده اند دچار مشکل شد حتی با نداشتن سورس و مستندات شما باید بتواند مشکل آن را بر طرف کنید
اگر شبکه یا سرور مشکل دارد باید برطرف کنید و در نهایت سایت شرکت را راه اندازی کنید و پشتیبان باشید
به عبارتی دیگر در این جور مکانها شما تکنیسین سخت افزار و شبکه و پشتیبان نرم افزار و سایت هستید خوب شما تصور کنید شاید هم از شما بخواهند ،آبدارچی هم باشید ، بعید نیست !!!!!!!!!!!!!!!!!!!!!!!!!!
2-شرکتهای کامپیوتری
اغلب این شرکتها خصوصی هستند ، برخی بزرگ و بعضی کوچک ، بستگی به تواناییهای مدیریت و سرمایه و غیره دارد
اما مشکل اکثر این شرکتها مدیریت منابع انسانی است ، این شرکتها اغلب توسط افراد فنی تشکیل شده است که از نظر امور ادرای و مدیریت منابع انسانی دارای ضعف است . مثلا در جایی توقع دارند شما مثل یک دستگاه از صبح تا شب فقط کار کنید ، و اصلا به فکر خانواده ، تفریح ، مرخصی ، استراحت و غیره نباشید ، آنقدر تعامل سخت هست که این شرکتها دایم در حال جذب نیرو هستند علاوه بر این شرایط محیط کار جالب نیست مثلا در یک اتاق کوچک چندین نفر را پشت میزهای کوچک جمع کردن و از طرف دیگر این اتاق حتی پنجره هم نداره که برنامه نویس بدبخت حداقل رنگ آفتاب را ببینه ،
این شرکتها اگرچه فکر می کنند که شرایط خوبی برای برنامه نویس فراهم کرده اند اما در واقع برنامه نویس، خود را در جهنم می بیند لذا در اولین فرصت به فکر فرار کردن است
توصیه من به اکثر دوستانی که شرکت نرم افزاری دارند یا می خواهند شرکت راه اندازی کنند این است ، که خواهشا در مورد مدیریت منابع انسانی و روانشناسی و رفتار شناسی حتما مطالعاتی داشته باشید ، چرا که مهمترین سرمایه شرکتهای نرم افزاری نیروهای انسانی هستند . اکثر شرکتها بدلیل از دست دادن نیروهای خود دایما در حال جذب نیرو هستند که اینکار باعث تاخیر پروژه ها می شود ، علاوه برآن هر نیروی جدیدی که به شرکت می آید تا بخواهد خود را با شرایط و نحوه کار آن شرکت تطبیق دهد حداقل 2 ماه زمان لازم دارد.
با تشکر