Web Developer Recruitment in Faraconesh Corporation

Faraconesh Logo

I hardly ever use my blog to publish unrelated subjects to programming. This is one of them.

Our company Faraconesh Corporation is bound to hire new talented and professional .NET developers. If you like working with me in person in a small-growing company which offer good salary, insurance, flexitime working beside experts which are pioneers in Iran in their skills and you meet the following needs

At least 3 years of relevant experiences.

Deep knowledge of .NET, C#, SQL Server and NHibernate

Also ability to work in team and using issue trackers, source controls and the rest of teamwork tools

Ability to work with WPF, WCF, WF and REST count as advantages

You can send your resume to jobs@faraconesh.com or to me at n.hajloo@gmail.com.

Faraconesh Corporation appreciates in advance your kind request to join and will arrange a meeting with you in next few days.

This is the Persian text for this advertisement.

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

حداقل سه سال سابقه کار مرتبط

درک و تسلط کافی و عمیق از ‫.NET, C#, SQL Server و  NHibernate

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

توانایی کار با WPF, WCF, WF و REST مزیت به شمار می‌آید

را دارید

می‌توانید رزومه کاری خودتان را به آدرس jobs@faraconesh.com و یا برای من به آدرس n.hajloo@gmail.com ارسال نمایید.

شرکت فراکنش از درخواست همکاری محبت آمیز شما از قبل قدردانی کرده و در چند روز آینده یک قرار ملاقات با شما تنظیم خواهد کرد

A Letter to Atlassian Team

Atlassian JIRA

Recently I’m upgrading JIRA from 3.x to 4.x version for my company. During this upgrade procedure, I learnt a lot from Atlassian. When I was using Jira 3.x, I just using Jira as a simple (but) powerful issue tracking system. I was always content with it. I never felt that I have to upgrade to a newer version. It was good enough to ignore ordering a newer version. I used (a cracked version of) Jira about 3 to 4 years; because my company wasn’t able to afford it.

Jira used a simple UI in 3.x version, honestly I should say that I never impressed by it. By the way, I changed my career and in the new company they are using a licensed Jira 4.x version. After two weeks of using new Jira, I wondered that, how much changes happened on Jira. I couln’t believe that they redesigned UI completely, in a way that amazed me. Almost everything relocated and new menu works great. New Plug-ins, especially Green Hopper, forced me to confess that all in all, Jira is the best web application I’ve ever used.

Jira Project Browser
Jira Project Browser

One of the things that is really special to me, is that new version has a really affordable price. 10$ for 10 users! Most of the small companies don’t have more than 10 active users (developers) so that they can easily afford it. I have to mention that Atlassian give all of these (10$) prices to RoomToRead charity organization and they are going to raise it to 1,000,000$.

Here I want to appreciate Atlassian team because of their good software and their effort for education. I also obliged to ask for an excuse from Atlassian, because of my unfair usages at past. I write this to say that this is the first time that I really have a shame of using a cracked version of a software. I wish they forgive me for this.

How to Localize JDK for fa-IR

Java

Atlassian is an Australlian corporation which has some cool products like JIRA, Confluence, Fish Eye, Green Hopper, JIRA Studio and etc. For last 5 years I’m using Jira as an Issue Tracker and I’m really content with it. Attlasian helps Open Source and Free Software and give its software free to the open community. They also help some charities and let their customer help charities by their hand. Actually they pay total price of Standard verions of their products to charity so thatif you buy one, you help charity too. Because of all these good things and these useful application I decided to localize Jira totaly free a year ago.

I was trying to localize Atlassian JIRA because it is really a good issue tracker system. I had started translating it to Persian a year ago. After a while I contacted to JIRA team to include my resource file into JIRA and make it available for the next possible version. It took a month that I get a wondering answer from JIRA team.

Hi Nasser,

There is a problem with Persian (fa_IR), it is not supported by JDK. There is no support for the fa_IR locale.

Do we have the wrong locale? It sounds like we may.

Alternatively, if the locale is correct we will have to postpone the implementation. There are two solutions we can explore, but neither in the short term:

 try to force java to support fa_IR

 refactor TAC so having locale is optional

Thank you Nasser, I appreciate your patience,

Nick

I really amazed that JDK doesn’t support fa-IR locale! I’m not a Java man, but if a java geek is reading this, I kindly ask him do a favor to Iranian people. Start localizing JDK for Persian. To start you can go to this page and follow the manual to add Persian to JDK.

I use this blog to thanks Jira team, You guys really rock. I wish you keep on your nice job.

Essential Tools for Software Developing Companies

It’s a long time which I’m working as a software developer for some Persian companies. In these years I face with some issues and also feel some happiness because of available tools in different companies. So I decided to provide a list of essential tools which every software company should have and without them, there would be some problem.

—————————————————————-

GNU Logo
GNU Logo

‪Title : Essential Tools for Software Developing Companies

‪Publish Date : 05/05/2010

‪Version : 1.0

‪Author : Nasser Hadjloo

‪Author Mail : n.hajloo@gmail.com

‪Copyright (c) 2010 Nasser Hadjloo.

‪Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation;

‪with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License”.

—————————————————————-

subversion
subversion

Source Control – It is the most important tool which a software developer companies should have. It is no matter you have only ONE or two developer, you have to own a source control, I wrote an article on how to select a source control before. (I prefer Team Foundation Server)

Test Tool – these tools help you to create robust codes.

Cruise Control .Net
Cruise Control .Net

Continuous Integration (CI) – A CI is a set of tools which let you create nightly build. (I prefer Cruise Control (.net))

In-House Framework – There are always many same classes in rest of your applications, so try to make an in-house framework and put those over there.

Clear and Complete Documentation – this help you and your new developers to easily join the team and know that what’s happen before? Or How to use a method?

JIRA
JIRA

Issue Tracker – It is another good tool which helps managers to manage their developers. These types of tools, give you a completely clear view of your current status of your applications. (I prefer JIRA)

Service Desk – This software separate Developers from Support team and let them work with free mind. They are only responsible for the issues which included in Issue Trackers and this let your developers be sure that those are not supporter but a real developer. (I prefer OTRS)

Monthly Calendar – A monthly calendar help developers to be aware of companies worksheet and free their time up when company needs them.

Fast Computer – It is an old famous subject so I don’t talk about it anymore.

Two Monitors – This is the same as fast pc.

Separate File, Domain, SQL, Source Control and Build Server – It is always a good Idea to have separate server for each mentioned servers. Those are really important in a software developing company and any latency in responding will make your developer angry.

Good Work Condition – This is another famous issue to have a good and silent room which has a good air conditioner and blah blah blah.

Weekly Session – This let your developers know about each other and work progress.

You can extend these tools with some others but in my opinion these are essentials and there is no excuse for these Items, if you lose one item you will pay for it ASAP.

Jira Issue Tracker چیست ؟

Atlassian JIRA
Atlassian JIRA

پیش از پرداختن به مطلب جدید لازم است نکاتی را بیان کنم. نخست آنکه چند وقتی بود که وبلاگ بروز نمیشد در حالی که در سال جدید قصد داشتم هر هفته ۲ یا سه مطلب بنویسم. دلیل اصلی آن فیل + تر شدن صفحه ورود به وردپرس بود که با هزار دوز و کلک تونستم دورش بزنم. ولی هنوز راه مناسب و شفافی براش پیدا نکردم. بنابراین ممکنه این بروز نشدن وبلاگ کمی جدی تر بشه. لطفا اگرکسی راه و روش مناسب و بی دردسری برای ورود به وردپرس داره حتما توی قسمت نظرات وبلاگ بنویسه.  نکته دوم اینکه اگر نهایتا ورود به وردپرس کلا منتفی بشه این وبلاگ رو به یک سایت شخصی تبدیل می‌کنم که برای همیشه از شر مشکلات این چنینی راحت شم. نکته بعدی اینکه با توجه به کپی شدن بی رویه مطالب وبلاگ که من اصلا علاقه‌ای به اون ندارم از امروز به بعد مطالب وبلاگ زیر نظر مجوز GNU Free Documentation License یا همون GFDL منتشر میشه. برای آشنایی بیشتر با این مجوز توصیه می‌کنم مطلبی که افشار محبی، در وبلاگ شخصی خودش با عنوان «‫کمی درباره GFDL (‫اجازه‌نامه مستندات آزاد گنو)»، اینجا نوشته  مراجعه کنید.

مطلب امروز در مورد JIRA هست که در واقع یک Issue Tracker به حساب میاد. در مورد Issue Tracker قبلا اینجا یک مطلب نوشتم که توصیه می‌کنم اون رو مطالعه کنید.

—————————————————————-

این مطلب زیر نظر مجوز GFDL منتشر می‌شود. و کلیه حقوق آن برای همگان آزاد است، بدین شرط که به کلیه شرایط موجود در مجوز GFDL ( که یک نسخه از متن انگلیسی مجوز GFDL در این محل  و یک ترجمه غیر رسمی (فارسی) از متن مجوز GFDL که در مرداد ۱۳۸۳ توسط کاوه رنجبر تهیه شده است در این محل ) قرار دارد پایبند باشد.

GNU Logo
GNU Logo

عنوان مطلب : JIRA Issue Tracker چیست؟

بخش ثانی : ندارد

تاریخ انتشار : 05/02/1387 مطابق با 25/04/2009

شماره نسخه : نسخه یک

نویسنده : ناصر حاجلو

ای-میل نویسنده : n.hajloo@gmail.com

Copyright (c)  2009  Nasser Hajloo.
Permission is granted to copy, distribute and/or modify this document  under the terms of the GNU Free Documentation License, Version 1.2  or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license is included in the section entitled “GNU Free Documentation License”.

—————————————————————-

Atlassian JIRA یک ایشو ترکر هست که با زبان جاوا پیاده سازی شده و یک قسمت از برنامه کلی JIRA Studio هست که شامل چند برنامه دیگر هم هست. سیستم پایگاه داده این برنامه کاملا File base بوده و از این لحاظ مثل SourceSafe است.این برنامه روند انجام کارها رو خیلی خوب هدایت کرده و باعث ایجاد یک گردش کاری منظم در محیط کاری می‌شود.

گزارشات متنوع و فیلترهایی که هر کاربر می‌تونه از این برنامه تهیه کنه کار با برنامه رو بیش از سایر محصولات مشابه راحت کرده. این برنامه رایگان نیست و برای نصب اون شما مجبورید که هزینه‌ای معادل ۴۸۰۰ دلار رو برای نسخه Enterprise اون بپردازید این در حالیست که  اگر شما بخواهید از این برنامه در یک پروژه Open Source استفاده کنید، مجوز Free و کاملا رایگان در اختیار شما میزاره.

JIRA Report
JIRA Report

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

در این برنامه مدیر توانایی ایجاد تعداد نا محدودی کاربر رو (بسته به نوع نسخه برنامه pro – ent …) داره . بعد از مشخص کردن کاربران و سطح دسترسی اونها مدیر سیستم پروژه‌هایی رو که برنامه JIRA  برای track کردن وظایف باید در اون استفاده بشه، ایجاد می‌کنه تعداد این پروژه ها هم کاملا نا محدود هست و بسته به میل شخصیتون می‌تونید پروژه تعیین کنید. البته این تعداد در نسخه رایگانی که به پروژه های کدباز تعلق می‌گیره هرگز از یک فراتر نمی‌ره ( شما می‌تونید بر اساس تعداد پروژه هم این برنامه رو خریداری کنید )

نهایتا پس از تعیین کاربران و پروژه‌ها کاربران سیستم قادر هستند که از برنامه استفاده کنند. به این منظور کاربرانی که مسئول ایجاد وظایف هستند باید از میان انواع مختلف یکی رو برای ایجاد یک وظیفه انتخاب کنند. مثلا اینکه یک وظیفه جدید(new task) هست و یا مربوط به یک bug و یا یک بهبود در عملکرد هست و یا یک امکان تازه (new feature) برای سیستم. در گام بعدی می‌توان یک عنوان برای وظیف و میزان اهمیت و کاربری که مسئول برطرف کردن وظیفه است و یک سری توضیحات مربوط به این وظیف خاص و در صورت لزوم فایل‌هایی برای پیوست به وظیفه اضافه کرد.

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

start progress : آغاز به کار

in pogress : در حال انجام

resolve : هنگامی که کاربر کار را انجام می‌دهد. ( در این هنگام باید یکی از انواع خاتمه کار را به این صورت مشخص کند – fixed : با موفقیت خاتمه پذیرفت – not fixed : مشکل حل نشد – unreproduce : کاربر نتوانست مشکل را ملاحظه کند بنابراین این کار نمی‌تواند انجام شود )

close : هنگامی که مسئول خاتمه کار را تایید می کند

reopen : هنگامیکه مسئول تشخیص می‌دهد که به هر دلیلی این کار باید مجددا انجام شود.

نمودار وضعیت انجام کارها در برنامه JIRA
نمودار وضعیت انجام کارها در برنامه JIRA

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

 لینک‌های مرتبط

            کمی درباره GFDL (‫اجازه‌نامه مستندات آزاد گنو)  که به کوشش افشار محبی تهیه شده

            متن کامل مجوز GFDL به زبان انگلیسی 

            ایشو ترکر ( Issue Tracker ) چیست ؟ که به کوشش ناصر حاجلو ( پیش از این در همین وبلاگ منتشر شده )

پایان نوشته

ایشو ترکر ( Issue Tracker ) چیست

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

کانفلیکت ( برخورد ) کارهای مختلف با هم، زیاد بودن وظایف یک شغص ، فراموش کردن وظایف ، انجام دادن تکراری بخش های مختلف یک پروژه و … برای جلوگیری از این مشکلات و البته بهینه تر کردن انجام کارها در قالب یک نظام هماهنگ که همه درخواستها از طریق ان داده می شود وظیفه اصلییک برنامه ایشو ترکر است .

ایشو ترکر Issue Tracker یک برنامه، برای ایجاد ، تخصیص، پیگیری و منظم تر کردن کارهاست. این برنامه ها گرچه در مواردی محدودیت ایجاد می کنند ، اما در نهایت بهره وری یک شرکت را بالاتر خواهند برد . اصولا یک ایشو ترکر از هر کسی با هر سمتی می خواهد تا هر درخواستی را از هر شخصی در شرکت دارد از طریق همین برنامه ایجاد و پیگیری کند. ( شاید بتواندر یک دسته بندی غیر معقول ایشو ترکر ها را یک زیر گروه از برناه های Help Desk خواند که صرفا برای موارد داخلی کاربرد دارند )

در یک ایشو ترکر یک کار جدید به چند دسته بندی مانند task یا Bug یا New feature و یا هر چیز دیگری تقیم می شود و مسلما برای جلوگیری از تداخل این کارها با هم باید برای هر وظیفه جدید یک پروژه هم مشخص کرد، به این مفهوم که در هنگام ایجاد یک وظیفه باید نوع و پروژه مخصوص به آن را مشخص کرد، سایر قسمت های یک وظیفه جدید کاملا مانند سایر وظیفه هاست و معمولا از نظر فیلدهای مورد استفاده تفاوتی ندارد . ایشو ترکرها معمولا برای استفاده احتیاج به یک بستر مناسب دارد به این مفهوم که طی جلساتی که در شرکت باید برگزار شود، کارمندان و افراد مرتبط باید همگی توافق کنند که برای جلوگیری از بروز مشکلات اختصاص کار معمولی، از یک ایشو ترکر استفاده کنند. اینکه به چه میزان افراد یک شرکت برای استفاده از یک ایشو ترکر متقاعد می شوند، ارتباط کاملا مستقیم دارد با میزان موفقیت و نتیجه بخشی آن.

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

یکی از نکات بسیار مهم و کلیدی ایشو ترکر آن است که شخصی که کاری را در دست دارد، براحتی می تواند زمان تحویل یک وظیفه خاص را مشخص کند و شخص متقاضی می تواند بدون پیگیری های مکرر و ایجاد استرس و … از میزان پیشرفت وظیفه محوله اش باخبر شود و در صورت نیاز تغییراتی را در وظیفه اعمال کند . توجه کنید که حالات ( state های ) مختلف انجام یک کار بسته به قابلیت های برنامه مورد استفاده، قابل تعیین است، برای مثال اگرشما از سیستم Agile برای انجام کارها استفاده می کنید اگر ایشو ترکر شما قابلیت اضافه کردن یک Template را داشته باشد، احتمالا شما قادر خواهید بود از حالات Agile و یا RUP ویا هر متودولوژی دیگری نیز استفاده کنید ( این امر بخصوص در TFS نمود دارد )

برنامه های بیشماری برای ترک کردن ایشوها وجود دارند ( هم کد باز و هم بامجوز ) شاید برنامهTeam Foundation Server که یک بخش بسیار کوچک از آن یک ایشو ترکر است را بتوان یک ایشو ترکر بسیار خوب هم دانست ( توجه داشته باشید که TFS صرفا ایشو ترکر نیست ) و یا برنامه JIRA که خود ما در حال حاضر از آن در شرکت استفاده می کنیم.

یکی از بخشهای برنامه جیرا JIRA
یکی از بخشهای برنامه جیرا JIRA

شاید میزان موفقیت یک ایشو ترکر در میزان یکپارچگی آن با سایر تکنولوژی های تولید نرم افزار که در یک شرکت استفاده می شوند هم بی اهمیت نباشد. در این میان TFS با یکپارچگی فوق العاده ای که با محصولات تولید نرم افزار مبتنی بر دات نت مایکروسافت ( Visual Studio و MSBuild و … ) دارد را بتوان یکپارچه ترین ایشو ترکر حال حاضر دانست. گرچه این برنامه بخاطر موارد جانبی که دارد ( بخصوص در ایران ) مورداستفاده قرار نمی گیرد .

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

لینکهای مرتبط

شرکت فراکنش

Jira Issue Tracker

Team Foundation Server