<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های علیرضا یارمحمدی</title>
        <link>https://virgool.io/feed/@alirezaymd</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-10 12:47:23</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/2623017/avatar/ZWC0RJ.png?height=120&amp;width=120</url>
            <title>علیرضا یارمحمدی</title>
            <link>https://virgool.io/@alirezaymd</link>
        </image>

                    <item>
                <title>تحلیل داده برای تیم جذب و استخدام - قسمت چهارم - پایانی (بصری سازی داده ها)</title>
                <link>https://virgool.io/@alirezaymd/hr4-si4vlnini2br</link>
                <description>در سه پست قبلی به مراحلی که برای تحلیل داده های منابع انسانی استفاده کردم پرداختم و از ETL گفتم.اگر اون مقاله ها رو ندیدی پیشنهاد می کنم از طریق لینک های زیر ابتدا اون مقاله ها رو ببینید:کشف داده‌ها (Discovery of data)دگرگونی داده‌ها (Transformation of data)بارگذاری داده‌ها (Loading of data)توی این مقاله که قسمت پایانی این مقاله هاست از بصری سازه داده ها (Visualization of data) میگم.بصری سازی داده ها به ما کمک می کنه تا داده ها رو به &quot;حرف&quot; بیاریم و تمام جزییات پنهانی که توی اون ها نهفته هست رو پیدا کنیم. نمودارها باعث میشن ما بتونیم روی داده هامون به سرعت تجزیه و تحلیل انجام بدیم و با استفاده از اون ها تصمیم گیری کنیم.می گن مغز انسان تصویر رو 60000 برابر سریع تر از متن پردازش می کنه. تجسم داده ها به ما کمک می کنه تا داده ها رو &quot;ببینیم&quot;، با اون ها &quot;تعامل&quot; داشته باشیم و بهتر &quot;درک&quot;شون کنیم. تجسم داده ها-چه داده ساده باشه چه پیچیده- باعث میشه ما بتونیم با یک زبان مشترک با همه ی افراد بدون توجه به سطح تخصصشون ارتباط برقرار کنیم.برای اینکه داده ها رو بتونیم بصری کنیم در ابتدا باید داده های درست رو جمع آوری کرده باشیم (قسمت اول)، داده ها رو تمیز و ساختاریافته کرده باشیم (قسمت دوم) و داده ها رو در یک دیتابیس به صورت صحیح بارگذاری کرده باشیم (قسمت سوم).پس برای بصری سازی داده ها باید به تمامی مراحل قبلی توجه کنیم. حالا که داده های درست و تمیز و ساختاریافته رو در یک دیتابیس بارگذاری کردیم، با یک ابزار باید این داده ها رو بصری کنیم. ابزراهای معروف زیادی برای این کار وجود داره که معروف ترین هاش Power BI و Tableau هست. پاور بی آی و تبلو برای کارهای بیزنسی یا نیاز به اشتراک دارن و یا نیاز به سرور. این مساله برای تیم های دیتا و یا تیم های دیگری که ساپورت از تیم دیتا میگیرن توجیه داره ولی برای تیم های منابع انسانی سازمان های کوچیک خیلی منطقی نیست. دقیقا به دلایلی که در مقاله قبلی در مورد انتخاب گوگل شیت به عنوان دیتابیس گفتم.Google Looker Studioگوگل ابزاری داره با عنوان Looker Studio که قبل تر با عنوان Google Data Studio شناخته می شد. لوکر استودیو یک ابزار رایگان برای بصری سازی داده ها هست که به اکثر دیتابیس های معروف وصل میشه و قابلیت به اشتراک گذاری رو داره و برای اجراش نیاز به هیچ گونه اشتراک یا سروری نداره و هرکسی از هرجا فقط با یک آدرس جیمیل میتونه از این ابزار رایگان استفاده کنه. به خاطر همین دلایل برای بصری سازی داده ها من از Looker Studio استفاده کردم.در ادامه با قسمت های مختلف Looker Studio آشنا میشیم:با باز کردن آدرس Lookerstudio.google.com شما با صفحه زیر مواجه می شین:توی این صفحه شما تمپلیت های نمونه، گزارش های قبلی و گزارش هایی رو که با شما به اشتراک گذاشته شده میتونید ببینید.برای درست کردن گزارش جدید روی Blank Report کلیک کنید.بعد از کلیک روی Blank Report با صفحه ی زیر مواجه میشید:توی این قسمت شما باید Databaseی رو که میخواید لوکر استودیو بهش متصل بشه رو انتخاب کنید. همونطور که توی مقاله قبلی خوندید، من از گوگل شیت به عنوان دیتابیس استفاده کردم، پس اینجا گوگل شیت رو انتخاب می کنم.بعد از انتخاب گوگل شیت به شما تمام شیت هاتون رو نشون میده:در قسمت Spreadsheet فایلی که داده هاتون اونجا هست رو انتخاب کنید و در قسمت Worksheet، شیتی که جدولی که میخواید ازش استفاده کنید توی اون شیت هست رو انتخاب کنید. میتونید بعدا هم جدول های دیگه رو اضافه کنید. توجه کنید همونطور که در قسمت بارگذاری داده ها گفتم، توی شیت های گوگل حتما باید جدولتون از ردیف اول شروع بشه و عناوین ستون ها به عنوان Attribute های جدول هاتون شناخته میشه و باید عناوین غیر تکراری داشته باشه.بعد از کلیک رو Add با صفحه زیر مواجه میشید:1: اسم گزارش2: ابزراهایی که میشه ازشون برای ساخت گزارش استفاده کرد3: محل اصلی گزارش4: قسمت تعیین متریک ها و دیمنشن ها و تنظیمات داده ها و تنظیمات نحوه نمایش داده ها و جدول ها5: قسمت دیتابیس ها و تعیین پارامترها و فیلدهابرای اینکه بتونیم دیتابیس های دیگرمون رو اضافه کنیم میتونیم از قسمت شماره 2، روی Add Data کلیک کنیم و جدول های دیگه مون رو توی گزارشمون برای استفاده اضافه کنیم:از منوی Resources/Manage added data sources میتونیم دیتابیس هامون رو ببینیم و ویرایش کنیم.جلوی هر جدول چند گزینه داره. روی Edit کلیک کنید:اگر تایپ داده ها درست تعیین نشده باشه یا بخواید تایپ داده ها رو ویرایش کنید از اینجا میتونید این تغییرات رو انجام بدید و چک کنید که حتما تایپ داده ها درست وارد شده باشه. (برای مثال اگر تایپ تاریخ، Date انتخاب نشده باشه، شما از قابلیت های فیلتر تاریخ نمیتونید استفاده کنید)بعد از ویرایش هاتون روی Done کلیک کنید.خیلی وقت ها پیش میاد که نیاز هست تغییری توی ستون ها بدیم، و یا ستونی رو به دیتابیس اضافه کنیم (تا حد امکان این کار رو نکنید چون ممکن هست جدول هاتون به هم بریزه ولی اگر ادیتی روی سورس اصلی انجام دادیم از این طریق دیتابیستون رو Reconnect کنید.مثل حالت قبل مسیر زیر رو طی کنیدResources/Manage added data sources/editبعد از باز شدن صفحه تنظیمات تایپ داده ها روی Edit Connection در قسمت بالا سمت چپ کلیک کنیدتوی صفحه ای که میبینید روی Reconnect کلیک کنیدمیبینید که تغییراتی که دادید نمایش داده میشه:اگر تغییرات درست بود روی Apply کلیک کنیدتوی لوکر استودیو شما به نمودارهای متنوعی دسترسی دارید که از گزینه ی Add chart میتونید اون ها رو اضافه کنید:روی اولین نمودار میله ای کلیک کنید و به صفحه ای اصلی اضافه ش کنید:لوکر استودیو به صورت پیشفرض با داده های ما یک نمودار می کشه. برای ویرایشش از این قسمت میتونیم تغییرات رو انجام بدیم.اگر با Pivot Table توی اکسل کار کرده باشید این قسمت هم براتون آشنا خواهد بود.فرض کنید میخوایم از جدول Interviews تعداد مصاحبه هایی که برای هر دپارتمان داشتیم رو روی نمودار میله ای به ترتیب از بزرگ به کوچیک بکشیم. برای این کار در قسمت بالا، Data Source رو روی جدول Interview میذاریم. Date Range، فیلد تاریخمون هست. از این فیلد بعدا میتونیم برای فیلتر تاریخ استفاده کنیم. مطمئن میشیم که این فیلد روی فیلد تاریخمون انتخاب شده.قسمت Dimension، بُعد نمودار ما هست. در این نمودار ما میخوایم دپارتمان ها از هم تفکیک بشم پس Dimension رو روی Dept میذاریم.قسمت Metric، مقداری هست که هر بعد میخواد نشون بده. در این قسمت ما &quot;تعداد&quot; مصاحبه ها رو میخوایم. پس متریک رو روی Recor Count میذاریم. این فیلد همیشه وجود داره و تعداد اون بُعد رو میشمره.در قسمت Sort، تعیین می کنیم که ترتیب بُعدمون با چه متغییری میخوایم مرتب بشه. اینجا ترتیبمون تعداد هست پس Sort هم روی Record Count میذاریمبا انتخاب موارد بالا به نمودار پایین میرسیم:روی Style در قسمت بالا سمت راست، کلیک کنید.فکر کنید میخوایم نمودارمون رو به نمودار میله ای افقی تبدیل کنیم و روی هر میله تعدادش نوشته بشه و رنگش هم تغییر بدیم:با استفاده از گزینه هایی که در اختیارمون میذاره می تونیم ویرایش هایی که میخوایم رو انجام بدیم. کمی با گزینه هاش کار کنید تا ببینید چه ویرایش هایی میشه انجام داد.روی Add a control در قسمت ابزارهای کلیک کنید. از این قسمت میتونید کنترلر های مختلفی رو برای دشبوردتون اضافه کنید. اگر با Slicer های اکسل کار کرده باشید با این قسمت هم آشنا هستید.میخوایم توی گزارشمون قابلیت این رو داشته باشیم که تعیین کنیم در یک مقطع زمانی خاص چه تعداد مصاحبه هایی برای هر دپارتمان انجام شده. از قسمت کنترلر ها روی Date range control کلیک کنید.روی قسمت خالی گزارش کلیک کنید تا کنترلر تاریخ اضافه بشهاین کنترلر به صورت اتومات روی تمام متغیرهایی که تایپ Date دارن اعمال می شه. مقطع تاریخ مورد نظرتون رو انتخاب کنید:گزارشتون با توجه به تاریخ سلکت شده فیلتر میشهبا استفاده از سایر کنترلرها میتونید فیلترهای پیچیده تری اعمال کنید و دشبوردتون رو کاربردی تر کنیداگر گزارشتون چند صفحه ای باشه از گزینه Page میتونید صفحات رو اضافه کنید:فکر کنید نیاز دارید داده های چند جدول با استفاده از Primary Key و Foreing Key که تعیین کردیم به هم مرتبط بشن. برای این کار از قابلیت Blend Data لوکر استودیو میتونیم استفاده کنیم. برای این کار مسیر زیر رو برید:Resource/Manage blends/Add a blendدر صفحه ای که باز میشه میتونید تا 5 جدول رو به هم متصل کنید و از شیوه های مختلف Join استفاده کنید:تنظیم نوع Join:بعد از اینکه داده ها رو Blend کردید جدول جدید با عنوانی که انتخاب کردید به این شکل در دیتا سورس هاتون اضافه می شه:فکر کنید محاسبه ای داریم که توی جدول اصلیمون انجامش ندادیم. برای مثال توی سنجش NPS کاندیدها داده ها رو از پرسش نامه جمع آوری کردیم و توی دیتابیس آوردیم ولی نیاز داریم تا با فرمول هامون این مقدار محاسبه بشه.برای این کار میتونیم از قابلیت تعریف Field استفاده کنیم. مسیر زیر رو دنبال کنید:Resources/Manage added data sourcesروی جدولی که میخواید فیلد جدید تعریف کنید edit رو بزنیدبعد از نشون دادن داده هاتون روی Add a field کلیک کنید:توی این قسمت فیلد جدیدتون رو میتونید تعریف کنید:فرمول های لوکر استودیو مخصوص به خودش هست ولی خیلی مشابه با گوگل شیت هست و آموزش هم داره. اگر فرمولی که میخواستید رو پیدا نکردید به راحتی توی گوگل میتونید سرچ کنید و فرمولش رو پیدا کنید. برای مثال فرمول sumif توی لوکر استودیو موجود نیست ولی از ترکیب فرمول Sum و Case میشه برای این کار استفاده کرد.فیلدهای جدید رو توی جدولها به رنگ آبی نشون میده:در قسمت دیتاسورس:نمونه ی دیگه ای از فیلد با شرط های بیشتر. تعداد رکورد هایی که هم تایپ اینترویو HR هست و هم ریکروتر Alireza هست:برای اینکه نمودارهامون حرفه ای باشن میتونیم از Color Palette برای تعیین رنگ هامون انتخاب کنیممن برای نمودارهایی که درست کردم از طریق این سایت Color Palette رو انتخاب کردم:برای شیر کردن گزارشتون میتونید مثل گوگل شیت از گزینه Share استفاده کنید:در نهایت با کمی ویرایش تنظیمات و رنگ ها میتونید داشبوردتون رو زیبا کنید:برای اینکه با قابلیت های دشبورد هم آشنا بشید و ببینید چقدر میتونه استفاده از فیلتر ها و کنترل ها کاربردی باشه، دشبوردی که با دیتای فرضی ساختم رو به صورت پابلیک گذاشتم و از طریق این لینک میتونید دشبورد رو ببینید.توی مسیر تحلیل داده های تیم جذب و استخدام با کشف داده‌ها (Discovery of data)، داده‌ها رو با توجه به مورد استفاده‌ی خودم در جذب و استخدام بررسی کردم و یک طرح برای ساختاربندی و سازماندهی و مَپ کردن داده‌ها ایجاد کردم. با دگرگونی داده‌ها (Transformation of data)، داده‌ها رو با استفاده از تکنیک‌ها و ابزارهای مختلف ساختاربندی، نرمال‌سازی و تمیز کردم. با بارگذاری داده‌ها (Loading of data)، داده‌های تمیز، ساختاریافته و نرمال شده رو در یک دیتابیس بارگذاری کردم و با بصری‌سازی داده‌ها (Visualization of data) گزارش‌ها و داشبوردهایی برای نشون دادن شاخص‌های کلیدی عملکرد در فعالیت‌های جذب و استخدام ایجاد کردم.امیدوارم مطالب مقاله های گذشته به تیم ها منابع انسانی برای هرچه بیشتر Data-driven بودن کمک کنه.خوشحال میشم اگر سوالی یا نظری داشتین اینجا برام بنویسید و با به اشتراک گذاشتن این مطلب به کسانی که میتونه براشون این مباحث مفید باشه کمک کنید.</description>
                <category>علیرضا یارمحمدی</category>
                <author>علیرضا یارمحمدی</author>
                <pubDate>Thu, 27 Jul 2023 21:05:45 +0330</pubDate>
            </item>
                    <item>
                <title>تحلیل داده برای تیم جذب و استخدام - قسمت سوم (بارگذاری داده ها)</title>
                <link>https://virgool.io/@alirezaymd/hr3-aagefgtlvwss</link>
                <description>توی قسمت اول و دوم مقاله در مورد کشف داده ها و دگرگونی داده ها توضیح دادم که اگر اون مقاله ها رو ندیدین پیشنهاد می کنم اول اون مقاله ها رو بخونید و بعد ادامه ی این مقاله رو ببینید. توی این قسمت در مورد بارگذاری داده ها (Loading of data) که سومین مرحله از چهار مرحله ای هست که برای تحلیل داده در نظر دارم، توضیح می دم.توی قسمت اول مقاله ها (کشف داده ها)، نمودار موجودیت-رابطه (ERD) رو به صورت زیر کشیدیم:طرح واره های رابطه ای - Relational Schemasنمودارهای ER معمولا به طرح واره های رابطه ای (Relational Schemas) تبدیل می شن تا داده ها رو بهتر نشون بدن. این به این دلیله که نمودارهای ER یک نمودار تصویری از مدل داده هست و برای پیاده سازی در پایگاه داده مناسب نیست. از طرف دیگه، طرحواره های رابطه ای به طور خاص برای پیاده سازی در پایگاه داده طراحی شدن و برای کوئری (سرچ) در داده ها کارآمدتر هستن. تبدیل یک نمودار ER به یک طرح رابطه ای شامل شناسایی موجودیت ها (Entity)، ویژگی ها (Attribute) و روابط (Relationship) موجود در نمودار و نگاشت اونها به جداول، ستون ها و کلیدهای خارجی (Foreign key) در طرح هست.قبل از اینکه نمودارمون رو به طرح واره ی رابطه ای تبدیل کنیم بیاید با ساختارهایی که توی دیتابیس وجود داره و تعاریف اون ها آشنا بشیم:- مدل رابطه ای، داده ها رو به صورت &quot;مجموعه از جداول (Collection of tables)&quot; نشون می ده- به جدول، &quot;رابطه (Relation)&quot; و یا موجودیت (Entity) هم گفته می شه- توی این جدول، &quot;Interviews&quot;، رابطه یا موجودیت یا Entity تعریف میشه- به هر ردیف در جدول، Tuple میگیم. (برای مثال توی این جدول ما 3 تاپِل داریم)- به هر ستون در جدول، Attribute یا ویژگی میگیم. (برای مثال توی این جدول ما 5 اَتریبیوت داریم)- به مقادیر مجازی که هر ردیف میتونه داشته باشه، Domain میگیم. (برای مثال، توی این جدل، برای ستون ID فقط مقادیر عددی مجاز هست. برای ستون تاریخ، فقط فرمت درست تاریخ مجاز هست و برای ستون استتوس فقط 2 مقدار ثابت مجاز هست). دامین های مرسومی که وجود داره:برای اینکه بیشتر از دامین ها و مثال هاشون بدونید می تونید به این لینک مراجعه کنید.کاردینالیتی (Cardinality) به صورت خیلی ساده، مشخص می کنه که در ارتباط هایی که جداول مختلف با هم دارن، عناصرشون(tuples) به چه تعداد حداقل و حداکثر میتونن با هم در ارتباط باشن. برای مثال توی فرایند استخدام، هر آفر شغلی که داده می شه مربوط به 1 و فقط 1 کاندید هست. یک آفر مربوط به چند کاندید نیست و همینطور آفری وجود نداره که مربوط به کاندیدی نباشه. پس اینجا ارتباط 1 به 1 یا one to one وجود داره. یا برای یک پوزیشن میتونیم هیچ مصاحبه ای برای کاندیدی نداشته باشیم و یا برای همون پوزیشن به خصوص مصاحبه برای چندین کاندید داشته باشیم. پس اینجا ارتباطیم 0 به چند یا zero to many خواهد بود.توی نمودارهای رابطه ای کاردینالیتی رو با خط هایی بین موجودیت ها (جدول ها) به صورت زیر نشون می دیم:تعیین مدل کاردینالیتی برای تعریف جداول توی دیتابیس هایی مثل mySQL کاربرد داره و برای تحلیل هایی که در ادامه می خوایم انجام بدیم در حال حاضر کاربرد نداره ولی دونستنش خیلی خوبه که اگر خواستین این دیتابیس رو روی دیتابیس هایی مثل mySQL ببرید بتونید این موارد رو در نظر بگیرید.حالا که با تعاریف و اصطلاحات اولیه ی دیتابیس آشنا شدیم بیاید با چارچوب طرح واره ی رابطه ای (Relational schema) آشنا بشیم:توی Relational schema اسم جدول (موجودیت/Entity) بالا نوشته میشه و هر ردیف یکی از ویژگی های (َAttribute) اون جدول هستن که توی جدول اصلی مون به جای ستون ها قرار می گیرن.کلید کنار متغیر اول در این جدول به معنی Primary Key هست که توی بعضی فرم ها به صورت PK کنار اون متغیر نوشته می شهتایپ داده یا Domain جلوی هر ویژگی به صورت کمرنگ تر نوشته شده.بعد از کشیدن جداولمون با استفاده از ERD و با استفاده از چارچوب بالا، ارتباط هر ویژگی جدول های مختلف با هم رو با خط مشخص می کنیم که در نهایت به نمودار زیر می رسیم:ابزارهای مختلفی برای طراحی Relational schema وجود داره که لینک چندتاشون رو در ادامه میذارم:LucidchartDrawSQLDBDiagramبعضی از این ابزارها کد SQL رو برای ایجاد جداول در دیتابیس بهتون میدن که اگر بخواید از دیتابیس های SQL استفاده کنید خیلی کارتون رو راحت می کنه:تعیین ارتباطات:کدهای بالا برای ایجاد دیتابیس در دیتابیس MySQL هست و ما ازش برای تحلیلی که در ادامه خواهیم داشت استفاده نمی کنیم.تعیین دیتابیس - Databaseحالا که چارچوب جداولمون رو فهمیدیم چطوریه، میخوایم جدول ها رو روی دیتابیس ایجاد کنیم. ولی چه دیتابیسی برای کار ما مناسب هست؟اگر از یک نفر توی دپارتمان دیتا بپرسید که دیتابیس برای کار با دیتا چی انتخاب کنیم احتمالا MySQL رو میگه. خوب MySQL و سایر دیتابیس ها امکانات بسیار زیادی رو در اختیار ما قرار میدن ولی آیا این امکانات برای تیم جذب و استخدام نیاز هست؟ راه اندازی دیتابیس MySQL یا سایر دیتابیس ها نیازمند دانش Data Engineering هست. علاوه بر اون اگر بخوایم این دیتابیس رو به اشتراک بذاریم و به جز سیستم خودمون، از سیستم های دیگه ای هم بهش دسترسی داشته باشیم، به سرور برای راه اندازیش نیاز داریم. همینطور برای استفاده ازش و Maintain کردنش باید دانش SQL داشت وارد کردن دیتا و استخراج دیتا ازش نیازمند دانش مربوط به خودش و همین طور یک تیم جداگانه هست.تمامی این ها باعث میشه که با وجود خوب بودن این دیتابیس، استفاده ازش توسط تیم جذب و استخدام که قرار نیست به صورت خیلی تخصصی کار دیتا انجام بده، کار دشواری بشه. پس باید از یک راه حل ساده تر برای مدیریت داده ها استفاده کرد.استفاده از Google Sheet به عنوان دیتابیساگرچه گوگل شیت به عنوان دیتابیس طراحی نشده ولی به دلایل زیر میشه ازش این استفاده رو کرد:مدیریت راحتبرای مدیریت گوگل شیت به یک تیم آی تی جدا برای مدیریت کردن داده ها نیاز نیست. راه اندازیش بسیار ساده هست و برای داده ها با اندازه کوچیک خیلی خوب جواب میده. هر تغییری توش رو خودتون میتونید ایجاد کنید در صورتی که در دیتابیس mySQL، تغییراتی که نیاز دارید نیازمند ارتباط با تیم دیتا هست که خیلی وقت ها انجام پروسه ها رو کند میکنه و تغییرات با تاخیر انجام میشه و یا اصلا تیم دیتا این ریسورس رو نداره که بتونه وقت برای تیم منابع انسانی بذاره.یکپارچه سازی راحت با سایر ابزارهای گوگلییکی از مزایای گوگل شیت اینه که چون متعلق به گوگل هست با سایر نرم افزارهای اکوسیستم گوگل یکپارچه هست و به راحتی میشه داده ها رو از این پلتفرم به پلتفرم دیگه بردراحتی کار به صورت تیمییکی از مزایای اصلی گوگل شیت، امکان کار تیمی روی یک شیت هست. با استفاده از این قابلیت تیم ها میتونن به صورت همزمان روی یک شیت کار کنن بدون اینکه نیاز به جا به جایی داده به صورت سنتی داشته باشن و به راحتی میشه این فایل رو با سایر اعضای تیم به اشتراک گذاشتبنابراین با وجود اینکه گوگل شیت به عنوان دیتابیس ساخته نشده ولی ما برای اندازه ی گزارش های خودمون میتونیم از گوگل شیت به عنوان دیتابیس اصلی اطلاعات استفاده کنیم.معایب:گوگل شیت فقط برای تعداد کم جداول و تعداد کم ارتباط و همینطور حجم کم داده خوب جواب میدهامکان دستکاری داده ها زیاد وجود داره (با روش هایی میشه به حداقل رسوندش)مدل ارتباطی که جداول به هم ارتباط پیدا میکنن در واقع ارتباط واقعی نیست و با فرمول ها اینکار انجام میشه که امکانات کوئری زدن MySQL رو در اختیار ما قرار نمیدهیکی دیگه از معایب گوگل شیت برای سازمان، داخلی نبودن این پلتفرم هست که ممکنه خیلی سازمان ها برای مدیریت اطلاعاتشون اجازه ی استفاده از ابزارهای خارج از اکوسیستم شرکت رو نداشته باشن. ولی MySQl رو میشه روی یک سرور داخلی بالا آورد و به زیرساخت گوگل نیاز نداریم.در مجموع اگر تیم دیتایی دارید که میتونه توی maintain کردن دیتابیس همراهیتون کنه و این ریسورس رو دارن که بتونن برای تیم جذب و استخدام وقت بذارن خیلی عالیه که از MySQL استفاده کنید ولی اگر میخواید فقط خودتون بدون وابستگی به تیم دیگری کارهای تحلیلیتون رو انجام بدید، بهترین گزینه Google Sheets هست.بارگذاری جداول در گوگل شیتبرای این کار من یک فایل اصلی Recruitment ایجاد کردم و هر جدولم رو توی یک sheet جدا به صورت زیر گذاشتم:طبق جداولی که کشیدیم ستون های شیت ها رو ایجاد کردمتوجه کنید که باید به هر شیت دقیقا مثل یک جدول نگاه کنیم و هیچ چیز اضافه ای توی اون شیت وارد نکنیم. حتما ردیف اول هر شیت باید اسم ستون ها باشه و از ردیف دیگری نباید شروع کنیددر دیتابیس، اسم ستون ها نمیتونه یکسان باشه پس اسم های یکتا برای هر ستون انتخاب کنیدکلید اصلی ردیف ها نمیتونه مقداری نداشته باشه، همین طور نمیتونه مقدار تکراری باشه و باید برای هر ردیف  نوشته بشهمفهوم SSOTدر طراحی سیستم های اطلاعاتی و پایگاه داده، یکی از مواردی که اهمیت بسیار زیادی داره &quot;منبع واحد حقیقت&quot; یا SSOT - Single Source of Truth هست.منبع واحد حقیقت به یک مجموعه رویه برای طراحی یک ساختار و مدل اطلاعاتی می گن که هر قسمت از اطلاعات فقط (و تنها فقط) از یک نقطه وارد و یا ویرایش میشن. هر گونه استفاده از این اطلاعات فقط باید با لینک دهی به منبع اصلی باشه. به این ترتیب، در قسمت های مختلف سیستم، چون تمامی اطلاعات به منبع اصلی ورود آن اطلاعات لینک شده، در صورت نیاز به تغییر و یا استفاده مجدد از اطلاعات، دیگه نیاز به اصلاح تمامی قسمت های سیستم نیست و فقط اصلاح در مبدا صورت می گیره. با این طراحی، تمامی ساختار سیستم به هم مرتبط می شن و از دوگانگی اطلاعات، تضاد در اطلاعات، اصلاح و ورود چند باره ی اطلاعات تکراری جلوگیری می شه.تعیین ارتباطات جداول - Relationshipsچطور ارتباطات جداول رو با هم مدیریت کردم؟همونطور که بالاتر گفتم یکی از معایب انتخاب گوگل شیت به عنوان دیتابیس، عدم امکان ایجاد ارتباط واقعی مثل MySQL هست. ولی به روش هایی میشه این مورد رو مدیریت کرد. خوب ما برای هر جدول Primary key تعیین کردیم و برای استفاده از متغیر در اون جدول از این Primary key استفاده می کنیم. اگر بخوایم متغیر دیگه ای رو از جدولی که از کلید اصلیش توی جدول دیگه استفاده کردیم میتونیم از فرمول vlookup و یا xlookup برای ایجاد ارتباط بین جداول استفاده کنیم.برای مثال میخوایم توی جدول مربوط به مصاحبه، به جای اینکه هربار اطلاعات کامل مربوط به یک شغل مثل دپارتمان، مدیر استخدام، و ریکروتر رو وارد کنیم؛ با ایجاد یک رابطه و با وارد کردن primary key جدول positions در جدول interview به عنوان foreign key، تمام اطلاعات مورد نظرمون از جدول positions خود به خود توی جدول interview وارد بشه و همونطور که توی مقاله ی دگرگونی داده ها توضیح دادم، جدولمون برای راحتی گزارش گیری Denormalize بشه و در عین حال هم اون ارتباط وجود داشته باشه تا اگه دیتای اصلیمون در جدول مرجع تغییر کرد، تمام دیتاهای قبلی هم تغییر کنه و update anomaly پیش نیاد.توی جداول زیر تمامی ستون هایی که خاکستری هستند با فرمول به جدول دیگر مرتبط شدند و با وارد کردن ID اتوماتیک مقادیر مربوط به اون جدول خونده و جایگذاری می شه. با این روش ما بین جدول ها ارتباط ایجاد کردیم.قبل از فرمول ها:استفاده از vlookupچون داده های جدید همیشه در حال وارد شدن در جداولمون هستن، نیاز داریم که فرمول vlookup رو برای تمامی ردیف ها استفاده کنیم. ولی در اون صورت ردیف هایی که داده ای ندارن، فرمول vlookup براشون ارور میده:برای حل این مشکل میتونیم از فرمول iferror قبل از vlookup استفاده کنیماین روش خوبه ولی بازم باید فرمول رو تا یه جایی پایین بکشیم و اگر ردیف هامون زیاد باشه دیتامون حجمش خیلی بالا میره و بعد باز با رسیدن داده به اون فرمول باز هم حواسمون به وجود فرمول در هر ردیف باشه و اگر نبود دوباره ایجادش کنیم.برای حل این مشکل میتونیم از فرمول arrayformula استفاده کنیم که قابلیتش اینه که شما فقط در ردیف اول ستونتون فرمول رو وارد می کنید و نیازی به وارد کردن فرمول در تک تک سلول ها ندارید و حجم شیتتون بالا نمیره و دیگه نیازی به وارد کردن فرمول در ردیف های بعدی نیست. به عبارتی با 1 فرمول شما کار چندین فرمول رو برای 1 ردیف انجام میدین. همینطور اگر نیاز باشه فرمولتون رو تغییر بدید، دیگه نیازی نیست توی تک تک ردیف ها فرمول تغییر کنه و شما فقط فرمول رو در ردیف اول تغییر میدید و توی تمام ردیف ها اعمال می شه.=arrayformula(iferror(vlookup(C2:C,&#039;Candidate DB&#039;!$A$2:$E,2,false),&amp;quot&amp;quot))*توجه کنید که توی این جدوال فقط ردیف اول ستون های خاکستری که با رنگ زرد مشخصشون کردم فرمول دارن و دیگه نیازی به وارد کردن فرمول در ردیف های بعدی نیست و اتومات با وارد کردن دیتا، فرمول روی اونها اعمال می شه. توضیحات بیشتر و مثال های دیگه در مورد arrayformula رو توی این لینک می تونید ببینید.مساله تاریخ شمسی در گوگل شیتاکسل این قابلیت رو داره که تاریخ میلادی رو به صورت تاریخ شمسی &quot;نشون&quot; بده ولی گوگل شیت این قابلیت رو نداره و اگر بخوایم گزارش هامون رو با تاریخ های شمسی بگیریم به مشکل می خوریم. یا باید از ابتدا تاریخ هامون رو به صورت شمسی و با ستون ها جدا برای ماه و سال و روز وارد کنیم (چون گوگل شیت تاریخ شمسی رو به عنوان تاریخ نمیشناسه) و یا گزارش هامون رو با تاریخ میلادی بگیریم که خیلی وقت ها از ما این گزارش رو نمیخوان.روشی که معمولا این مورد رو در پلتفرمهایی که ساپورت تاریخ فارسی ندارن به این صورت هست که یک جدول جدا برای تاریخ تشکیل میدن و ستون اول رو فرمت صحیح تاریخ میلادی میذارن که Primary Key تعریف میشه. ستون های بعدی، فرمت های تاریخ متناظری هست که اون تاریخ میلادی داره. برای مثال تاریخ شمسی، هفته ی شمسی، روز شمسی و … . به این صورت با یک Relationship ما تاریخ متناظر هر تاریخ میلادی رو میتونیم به دست بیاریم. این دیتاست ها در اینترنت موجود هست و میتونید با سرچ پیداشون کنید.بارگذاری فرم ها در گوگل شیتاکثر فرم ها این قابلیت رو دارن که به گوگل شیت کانکت بشن. به این صورت که وقتی فردی فرم رو پر کرد، دیتا به صورت اتوماتیک توی شیتی که شما تعیین می کنید بشینه و نیازی به وارد کردن داده ها به صورت دستی نباشه. قسمت هایی که این کار رو میشه انجام داد توی فرم ساز های معروف میبینید:گوگل فرمفرمالوپرسلاینتا اینجا در مورد 1. کشف داده ها، 2. دگرگونی داده ها و 3. بارگذاری داده ها صحبت کردم.در مقاله ی بعدی در مورد &quot;بصری سازه داده ها&quot; و &quot;دشبورد سازی&quot; صحبت می کنم که نتیجه ی همه ی قسمت های قبلی هست و میتونیم نتایج کارهای قبلی رو توی اون دشبوردها ببینیم.خوشحال میشم اگر سوالی یا نظری داشتین اینجا برام بنویسید و با به اشتراک گذاشتن این مطلب به کسانی که میتونه براشون این مباحث مفید باشه کمک کنید.</description>
                <category>علیرضا یارمحمدی</category>
                <author>علیرضا یارمحمدی</author>
                <pubDate>Fri, 14 Jul 2023 10:29:57 +0330</pubDate>
            </item>
                    <item>
                <title>تحلیل داده برای تیم جذب و استخدام - قسمت دوم (دگرگونی داده‌ها)</title>
                <link>https://virgool.io/@alirezaymd/hrdata2-ti0inzq6uoyx</link>
                <description>این پست، دومین قسمت از تجربیات من در زمینه تحلیل داده در تیم جذب و استخدام هست. اگر قسمت اول رو نخوندین پیشنهاد می کنم اول از طریق این لینک اون پست رو بخونید و بعد ادامه‌ی این مقاله رو مطالعه کنید.همون طور که توی مقاله‌ی قبلی توضیح دادم، برای حل مشکلاتی که توی کار با داده بهشون برخورد کردم از 4 مرحله استفاده کردم: کشف داده، دگرگونی داده، بارگذاری داده و بصری‌سازی داده.توی این پست به دومین مرحله از این چهار مرحله می‌پردازم و در مورد دگرگونی داده‌ها صحبت می‌کنم.دگرگونی داده‌ها (Transformation of data)، پروسه‌ی تغییر یا تبدیل داده ها از تایپ، فرمت، یا ساختاری به مدل دیگه ایه. این فرآیند ممکنه با عملیات ریاضی، تغییر مقادیر، یا تمیزسازی و تغییر ساختار داده‌ها انجام بشه. این دگرگونی‌ها به ما کمک می‌کنه تا در نهایت داده‌ها رو بهتر و بهینه تر بتونیم تحلیل کنیم و توی ساختار دیتابیس بیاریم.در ادامه روش‌هایی رو که برای دگرگونی داده‌ها به کار گرفتم رو توضیح می‌دم.ساختاربندی داده‌ها (Data Structure)روش Joins/Unions روش های Joins و Unions دو روش برای یکی کردن داده‌ها از جداول مختلف هست.روش Unions، ردیف‌های دو یا چند جدول رو با همدیگه ادغام می‌کنه. این دو جدول باید تعداد ستون‌های برابر و تایپ‌های داده‌‌ی یک شکل داشته باشن. برای مثال دو جدول از دو ریکروتر داریم که هر کدوم داده‌های مربوط به خودشون رو به صورت زیر وارد کردن. برای اینکه داده‌ها رو یکپارچه داشته باشیم از ادغام به روش Unions استفاده می‌کنیم:روش Union روش Joins، ستون‌های دو یا چند جدول رو با توجه به ستون مرتبط بین اون‌ها، ادغام می‌کنه. برای مثال یک جدول داریم که اطلاعات مصاحبه رو با کد اختصاصی هر کاندید مشخص کرده و یک جدول دیگه هم اطلاعات تماس اون کاندید رو با توجه به همون کد اختصاصی داره. برای اینکه این دو جدول رو به صورت یکپارچه داشته باشیم از ادغام به روش Joins استفاده می‌کنیم: نرمال‌سازی و غیرنرمال سازی داده (Normalizing and Denormalizing data)نرمال‌سازی و غیر نرمال‌سازی، دو تکنیک ساختاربندی داده در دیتابیس هستند.نرمال سازی، به صورت خیلی ساده و کلی، داده‌ها رو به جداول مختلف برای کاهش افزونگی (Redundancy)، ناسازگاری (Inconsistency) و بهبود یکپارچگی داده‌ها (Data Intergrity)، تقسیم می‌کنه. این مکانیسم معمولا برای سیستم‌هایی به کار میره که روی سرعت فرآیند هایی مثل Insert, Delete and Update تاکید دارن. مثل سیستم‌های OLTP. (این سیستم که مخفف Online Transaction Process هست برای مدیریت اپلیکیشن‌های تراکنش-محور کاربرد داره.)غیرنرمال سازی، داده‌های جداول مختلف رو توی یک جدول ادغام می‌کنه. این کار باعث می‌شه خوندن اطلاعات سریع‌تر بشه و معمولا توی سیستم‌هایی استفاده می‌شه که روی سرچ سریع و روی موارد تحلیلی تاکید دارن مثل سیستم های OLAP. ولی این متد، باعث ایجاد افزونگی می‌شه و حفظ یکپارچگی داده‌ها رو هم دشوار می‌کنه. (OLAP یا Online Analytical Process معمولا برای سیستم‌هایی که نیاز به گزارش های چند وجهی دارن مثل گزارش‌های مالی یا پیشبینی‌ها استفاده می‌شه)در ادامه، فرآیند نرمال‌سازی دیتابیس رو با مثال‌های عملی جلو می‌برم و سطوح مختلف فرم نرمال رو توضیح می‌دم:سطوح مختلف فرم نرمال (Levels of Normal Forms):نرمال‌سازی سطح های مختلفی داره. بعضی دیتابیس‌ها، نرمال‌سازی شون خیلی کامل هست و بعضی‌ها مقدماتی. می‌تونیم بهش مثل یک سری استاندارد نگاه کنیم و بهش سطح بدیم. مثلا بگیم سطح نرمال بودن این فرم سطح 1 هست. یا سطح 2 هست یا همینطوری ادامه بدیم.5 سطح برای فرم‌های نرمال در نظر گرفته شده که سطح 1 پایین‌ترین سطح و سطح 5 بالاترین سطح فرم نرمال هست.فرم نرمال سطح اول (1st Normal Form یا 1NF):قوانین 1NF:قانون اول: استفاده از از ترتیب ردیف‌ها برای نشون دادن اطلاعات مجاز نیستفکر کنید می‌خوایم توی ثبت مصاحبه‌ها نشون بدیم کدوم مصاحبه زودتر از مصاحبه‌ی دیگه بوده. توی فرم اینطوری تعیین می‌کنیم که هر ردیفی بعد از ردیف دیگه نوشته شد یعنی اون مصاحبه بعد از مصاحبه‌ی قبلی بوده:این فرم شاید از نگاه ما به نظر معنی دار بیاد، ولی چیزی به اسم &quot;ترتیب ردیف&quot; توی پایگاه‌های داده‌ی رابطه‌ای وجود نداره و این جدول اولین قانون فرم نرمال سطح یک رو نقض کرده. برای اینکه ترتیب مصاحبه رو نشون بدیم باید دقیق باشیم و فرم رو با اضافه کردن ستون تاریخ به صورت زیر تغییر بدیم:با استفاده از این جدول می‌فهمیم که ترتیب مصاحبه‌ها چطور هست.قانون دوم: میکس کردن تایپ‌های مختلف داده در یک ستون مجاز نیستتوی Spreadsheet ها مثل اکسل و گوگل شیت این اجازه رو میدن که تایپ‌های مختلف داده توی یک ستون بشینه ولی این نقض قانون دوم فرم نرمال سطح اول هست. توی هر ستون فقط و فقط باید تایپ مخصوص اون ستون توش وارد بشه و دیتابیس اجازه نمیده که تایپ دیگری از داده توی اون ستون بشینه (توی Spreadsheet ها باید حواسمون به این مورد باشه). توی مثال بالا فقط ردیف 1 و 2 &quot;عدد صحیح&quot; یا به صورت تایپ [integer] هست و بقیه ردیف‌ها &quot;رشته&quot; یا به صورت تایپ [string] هستن.مثال مرسوم بعدی برای نقض این مورد:توی تاریخ‌ها باید خیلی حواسمون باشه که اگر به صورت دستی تاریخ ها رو وارد می کنیم مدل تایپ تاریخمون مثل هم باشه و اگر می‌خوایم مدل دیگه‌ای نمایشش بده بعد از یکسان بودن تایپ داده از طریق Format شیوه‌ی نمایشش رو تغییر بدیم. توی مثال بالا فقط موارد سبز رنگ درست وارد شدن و موارد دیگه با فرمتی که برای این ستون در نظر گرفته شده همخونی ندارن و نقض قانون دوم فرم نرمال سطح اول هست.قانون سوم: وجود یک جدول بدون داشتن کلید اصلی (Primary Key) مجاز نیست.کلید اصلی (Primary Key) یک ستون (یا ترکیبی از ستون‌ها) هست که ردیف‌ها رو به صورت یکتا از هم جدا می‌کنه.توی این مثال، همونطور که می‌بینید پوزیشن &quot;Java Developer&quot; دو بار تکرار شده. این 2 پوزیشن متفاوت بوده ولی از دید دیتابیس برای یک مقدار (Java Developer)، دو تاریخ متفاوت برای تاریخ بستن پوزیشن ثبت شده که منطقا درست نمی‌تونه باشه. این فرم نقض کننده‌ی قانون سوم فرم نرمال سطح اول هست. به صورت زیر می‌تونیم این مورد رو برطرف کنیم:با اختصاص ستونی با عنوان Position ID که نقش Primary Key رو داره، دیگه هر ردیف، ردیف یکتایی هست و قانون سوم رو هم رعایت می‌کنه.قانون چهارم: تکرار کردن گروه‌ها مجاز نیست.تصور کنید می‌خوایم ثبت کنیم برای هر کاندید چه مصاحبه‌هایی انجام شده و نتیجه‌اش چی بودههمون طور که می‌بینید توی هر ردیف یه تعداد گروه تکرار شدن. با این مدل طراحی تقریبا هیچ مدل فیلتر بهینه و استخراج دیتایی نمی‌شه انجام داد و کوئری پذیر نیست. مثلا فکر کنید می‌خوایم ببینیم چه تعدادی از کاندیدها مصاحبه مرحله 2 رو انجام دادن؟ چه تعدادی اکسپت شدن؟ توی هر تاریخ چه تعداد مصاحبه داشتیم؟ با این جدول نمی‌تونیم این کار رو انجام بدیم.شاید به نظرمون بیاد که خوب اینطوری طراحی کنیم جدولمون رو:ولی این هم محدودیت هایی داره، برای مثال فقط تا 3 مصاحبه می‌تونیم ساپورت داشته باشیم. یا به تفکیک تاریخ کلی نمیتونیم فیلتر کنیم. فرم‌هایی مثل این فرم که یک گروه مشابه از آیتم ها در یک ردیف قرار می‌گیره نقض فرم نرمال سطح اول هست. پس چطور می‌تونیم طراحی داشته باشیم که با استاندارد فرم نرمال اول هم پیش بره؟ اینطوری:همونطور که می‌بینید از این جدول تمام خصوصیاتی که می‌خوایم رو می‌تونیم گزارش بگیریم. و از اونجا که ترکیب Candidate و Interview Type همیشه ترکیب منحصر به فردی هست، Primary Keyمون ترکیب این دو با هم خواهد بود و همیشه یکتا خواهد بود و قوانین قبلی هم رعایت می‌کنه.فرم نرمال سطح دوم (2nd Normal Form یا 2NF):بیاین فرض کنیم می‌خوایم جدول رو کامل‌تر کنیم و محلی که فرد از اونجا برامون رزومه فرستاده هم برای هر مصاحبه بیاریم:هر کاندید سورس یکتایی داره، به همین دلیل هر بار که فردی نوشته می‌شه باید همون سورس هم جلوش نوشته بشه. توی کار با دیتابیس به چند تا مشکل می‌تونیم برخورد کنیم:فکر کنید بنا به دلیلی، ردیفی که کاندید Roya مصاحبه داشته از جدول حذف می‌شه. دیگه ما نمی‌تونیم سورس Roya رو داشته باشیم. به این حالت می‌گن Deletion Anomalyحالت بعدی وقتیه که ما برای مثال می‌فهمیم سورس کاندید Alireza رو اشتباه وارد کردیم و برای آپدیت کردن بنا به دلایلی فقط ردیف اول رو می‌بینیم که آپدیت کنیم و از Career Page به Linkedin تغییرش میدیم. توی این حالت Alireza همزمان هم سورس Linkedin رو داره هم سورس Career Page که درست نیست و باید یکی از این سورس‌ها رو داشته باشه. به این حالت می گن Update Anomalyحالت بعدی وقتیه که یک کاندید جدید می‌خواد وارد پایپلاین بشه. کاندید Mehdi فرد جدیدی هست ولی چون هنوز مصاحبه‌ای انجام نداده ما توی جدول نمی‌تونیم واردش کنیم، پس اصلا داده‌ای از مهدی نمی‌تونیم ثبت شده داشته باشیم. به این حالت می‌گن Insertion Anomalyدلیلی که باعث شده این مشکل پیش بیاد این هست که فرم ما توی سطح دوم نرمال قرار نداره.قانون فرم نرمال دوم: هر ستونی که به عنوان Primary Key تعیین نشده باید وابستگی به کل Primary Key داشته باشد.این به چه معنیه؟ بیاید توی جدول بالا این مورد رو بررسی کنیم. ستون های آبی رنگ (Candidate, Interview Type)، کلید های اصلی (Primary Key) های ما هستند. Non-key Attributeها Status و Source هستند. آیا Status به کل Primary Key وابسته هست؟ بله، هر کاندید در حل مرحله یک Status دارد. آیا Source به Primary Key وابسته هست؟ نه، فقط به Candidate وابسته هست. به خاطر همین مساله هست که این فرم توی سطح دوم نرمال نیست و ممکنه مشکلات بالا براش پیش بیاد. چطور می‌تونیم این مساله رو بر طرف کنیم؟مشکل از جایی شروع شد که ما یک ستون به جدولی اضافه کردیم که متعلق به اون نیست و متعلق به جدول دیگه‌ایه. از اونجا که دیدیم Source متعلق به هر Candidate هست، پس Candidate یک موجودیت مهم هست و باید براش یه جدول جداگانه در نظر بگیریم و این مورد رو توی جدول Candidate بیاریم:و جدول قبلیمون هم به حالت قبل از اضافه کردن ستون سورس بر می‌گردونیم:سطوح دیگر فرم نرمال رو فقط به صورت خلاصه می‌نویسم و بیشتر در دیتابیس‌های تخصصی کاربرد داره و تا همین سطح فرم‌ها نرمال باشه گزارش‌هایی که می‌خوایم رو در حد خوبی می‌تونیم بگیریم.فرم نرمال سطح سوم (3rd Normal Form یا 3NF):هر ویژگی که کلید اصلی جدول نیست فقط و فقط باید به کل کلید اصلی جدول وابسته باشد و نه هیچ ویژگی دیگر جدولفرم نرمال سطح چهارم (4th Normal Form یا 4NF):تنها نوع وابستگی چند مقداری مجاز در جدول، وابستگی چند مقداری به کلید جدول استفرم نرمال سطح پنجم (5th Normal Form یا 5NF):نباید امکان پذیر باشه که یک جدول رو نتیجه‌ی منطقی اتصال چند جدول دیگه با هم بدونیم- اگر علاقه داشتید بیشتر در مورد سطوح دیگه ی فرم نرمال بدونید، می‌تونید به این لینک مراجعه کنید.تمیز سازی داده ها (Data Cleaning)خیلی وقت‌ها، موردی که باهاش برخورد می‌کنیم این هست که ما معمولا برای جمع‌آوری داده از صفر نمی‌خوایم شروع کنیم و احتمالا از قبل یک سری داده‌ی آماده داریم. اگر قواعد کار با داده و مواردی که توی کار با داده مهم هست رو ندونیم احتمالا داده‌های ما برای آنالیز نیاز به ویرایش‌هایی داره. به داده‌هایی که برای تجزیه و تحلیل نیاز و گزارش گیری مناسب نیستن و نیاز به ویرایش دارن اصطلاحا داده‌های کثیف میگن و به فرآیند‌هایی که انجام می‌شه تا این داده‌ها به داده‌های درست و قابل گزارش‌گیری تبدیل بشن، تمیز کردن داده یا دیتا کلینینگ یا پاکسازی داده گفته می‌شه.پاکسازی داده فرآیند شناسایی و تصحیح (یا حذف) رکوردهای غلط یا غیر دقیق از یک مجموعه رکورد، جدول یا پایگاه داده است و به شناسایی قسمت‌های ناقص، نادرست، نادقیق یا نامربوط از داده‌ها و سپس جایگزینی، اصلاح یا حذف آن اشاره دارد.پاکسازی داده‌ها به چند دلیل مهمه. یکی از مزایای پاکسازی داده‌ها اینه که تجزیه و تحلیل رو دقیق‌تر می‌کنه. در تجزیه و تحلیل داده‌ها، پاکسازی داده‌ها برای اطمینان از صحت و اعتبار داده‌های جمع آوری شده ضروریه. این فرآیند قبل از بارگذاری داده‌ها انجام می‌شه تا کسب‌وکارها بتونن اطلاعات مهم رو راحت‌تر تفسیر کنن. داشتن داده‌های تمیز در نهایت بهره‌وری کلی رو افزایش می‌ده و اطلاعاتِ با بالاترین کیفیت رو در تصمیم‌گیری شما فراهم می‌کنه.اگر داده از قبل وجود داشته باشه ما حتما برای تجزیه تحلیل باید داده ها رو بررسی و تمیز کنیم.تمیز کردن داده معمولا توی ابتدای کار، بیشترین زمان رو از یک دیتا آنالیست در تحلیل داده می‌گیرهبعد از تمیز کردن داده ها باید از روش‌هایی استفاده کنیم که از اون به بعد وارد کردن داده‌ی کثیف رو به حداقل برسونه. موردی که همیشه باهاش برخورد کردم این بود که چون به یک دیتاست، معمولا چند نفر دسترسی دارن و داده رو افراد مختلف توی شیت‌ها وارد می‌کنن و این وارد کردن داده به صورت دستی احتمالا به خاطر دلایل مختلف می‌تونه با خطا همراه بشه؛ پس این داده‌ی کثیف همیشه تولید میشه و هر چقدر بخوایم توی وارد کردن داده دقت و حساسیت داشته باشیم ممکنه اشتباه داده‌ای رو وارد کنیم. ما به عنوان طراح فرم باید طوری فرم رو طراحی کنیم و به افرادی که به فرم دسترسی دارن آموزش بدیم که در نهایت کار خودمون برای تجزیه تحلیل داده ساده بشه و به کمترین تمیز سازی داده نیاز داشته باشیم و با این کار هم زمان زیادی از ما ذخیره میشه هم گزارش هامون، گزارش های درست و صحیحی خواهد بود.در ادامه اول از تمیز کردن یک دیتاست نمونه و داده‌های کثیف مرسوم توی اون و روش‌های تمیز کردن اون‌ها می‌گم و بعد در مورد این صحبت می‌کنم که از چه روش‌هایی برای طراحی فرم‌ها استفاده کردم تا ورود داده‌ی کثیف توسط کاربر به حداقل برسه.تمیز کردن دادهانتخاب روش و استراتژی ای که می‌خوایم برای تمیز کردن داده ها استفاده کنیم، خیلی وقت ها وابستگی مستقیمی به حجم داده‌ها داره. ما می‌خوایم به بهینه ترین حالت ممکن از زمان و انرژیمون برای رسیدن به بهترین نتیجه استفاده کنیم. خیلی وقت‌ها که حجم داده کم هست، تمیز کردن داده به صورت دستی و ردیف به ردیف و ستون به ستون می‌تونه روش خیلی خیلی سریع تری نسبت به فرمول‌ها و روش‌های دیگه‌ی تمیز کردن داده که در ادامه می‌گم باشه. برای خود من اوایلی که با داده کار می کردم این مورد پیش میومد که برای تمیز کردن یک دیتاست با حجم کم وقت خیلی زیادی می‌ذاشتم که حتما با فرمول و قواعد پیچیده‌ای که میشناختم این داده‌ها تمیز بشه. این مورد زمان و انرژی زیادی ازم میگرفت. در صورتی که اگر این داده ها رو به صورت دستی و ردیف به ردیف ادیت می کردم زمان خیلی کمتری ازم گرفته می شد.پس این که استراتژی ادیت داده‌هاتون چطور باشه خیلی زیاد به حجم داده مرتبط هست و الزاما نیاز نیست که از روش‌های پیچیده برای تمیز کردن هر مدل دیتاست استفاده بشه.دیتای نمونه‌ی زیر رو نگاه کنید: ** کمی نگاش کنید و ببینید چه ایراداتی توش می‌بینید و بعد پایین‌تر بیایدهمون طور که می‌بینید مواردی توی جدول هست که ظاهرا مشخصه ایراد داره و برای تحلیل درست باید اصلاح بشه. موارد مرسوم داده‌های کثیف رو در ادامه می‌گم و توی جدول درستشون می کنیم:Missing valuesمواردی که جا افتاده و باید به دیتابیس اضافه بشه. هیچ ردیف خالی ای نباید در دیتابیس وجود داشته باشهDuplicate dataهیچ دو ردیف یکسانی نباید در جدول وجود داشته باشه (بعضی وقت ها توی مرج کردن جدول ها این مورد به وجود میاد) و باید داده های تکراری حذف بشنIrrelevant dataداده های نامرتبط باید از جدول حذف بشن همون طور که میبینید توی جدول ردیف های نامرتبطی وجود دارهData type conversionاگر تایپ یک ستون باید عدد صحیح باشد باید اون رو به صورت عدد صحیح بنویسیم و یا اگر 2 متغیره هست فقط باید از همون 2 متغیر استفاده کنیم.Standardizing data (data-time formats, units, etc)فرمت داده ها و مقیاس ها باید مشابه باشد. برای مثال توی این جدول تاریخ ها به صورت های مختلف نوشته شده. همینطور عددی که با عنوان عدد حقوق نوشته شده هم تایپش مشکل داره هم مقیاسش که باید یکسان سازی بشهSyntax errors (white spaces, extra spaces, typos, and formats)اسپیس های اضافه باید از دیتابیس حذف بشه (با استفاده از دستو Trim میتونیم این کار رو کنیم) همین طور مدل نوشتاری اسم ها باید یکسان باشه (همونطور که میبینید اسم ها به صورت صحیح نوشته نشده) با دستور Proper میتونیم این مورد رو درست کنیمOutliersداده های پَرت باید از دیتابیس خارج بشن یا در نظر گرفته نشن. خیلی وقت ها این داده ها به خاطر اشتباه وارد کردن اون هاست. همون طور که میبینید توی ستون Salary یک داده پَرت وجود داره که اشتباه تایپ شدهدر نهایت با تصحیح موارد فوق به این جدول می رسیم:در ادامه از روش‌هایی که برای کم‌تر کردن و به حداقل رسوندن تمیز کردن جدول‌ها استفاده کردم می‌گماکسل و گوگل شیت برای راحتی و درستی وارد کردن داده ها ابزارهایی تحت عنوان Data validation دارن. برای اینکه داده‌های ما اونطور که می‌خوایم و به صورت صحیح وارد بشه و کمترین نیاز رو به پاکسازی داشته باشه می‌تونیم از این ابزارها استفاده کنیم. اصلی‌ترین هاش که من توی فرم هام هم ازشون استفاده می کنم می‌گم:توی Google Sheet از طریق منوی Data و بعد Data Validation میتونیم به گزینه های این قابلیت دسترسی داشته باشیمDropdown listاز این قابلیت برای انتخاب گزینه های تکراری از لیست استفاده می کنم. باعث می شه غلط تایپی توی وارد کردن داده وجود نداشته باشه و دیگه نیاز به تایپ مجدد اون مورد هم نیستData validation formulasبرای دیتا ولیدیشن میتونید علاوه بر فرمول‌هایی که توی گوگل شیت هست، از فرمول‌های دلخواه هم استفاده کنید. مثلا من توی این قسمت برای وارد کردن حقوق از فرمول isnumber استفاده کردم که اگر داده‌ی وارد شده عدد نبود پیام خطا بده و یا داده رو قبول نکنه و یا پیام دلخواهی رو به کاربر نشون بده.Checkboxبرای متغیر های True/False میتونید از این قابلیت استفاده کنید و دیگه نیازی به تایپ وضعیت نباشهKeyboard shortcutsیک سری کیبورد شورتکات وجود داره که می‌تونیم برای وارد کردن صحیح و سریع اطلاعات ازش استفاده کنیم. مثلا اینجا من از شورتکات Ctrl + ; برای وارد کردن تاریخ کامل الان استفاده می‌کنم که به صورت صحیح و کامل تاریخ وارد می‌شه و نیاز به تایپ هرباره‌ی این مورد نیست.Custom formulasبرای راحتی کار و سرعت می تونید از فرمول های مختلف استفاده کنید. من برای وارد نکردن چندباره‌ی اطلاعات تکراری از vlookup خیلی استفاده می کنم. به این صورت که یک جدول دارم که اطلاعتی که همیشه باهاشون سر و کار دارم رو دارم و یک کد بهش اختصاص دادم (همون Primary key که قبل‌تر در موردش صحبت کردیم) و با لوکاپ اون کد تمام اطلاعت دیگه ای رو که میخوام در جدول میارم و نیاز به تایپ چندباره ی موارد تکراری نیست. (البته توی مقاله بعدی و بحث بارگذاری داده و دیتا مدلینگ بیشتر از ارتباط جدول ها می گم)گوگل شیت یک مدل فرمول داره به اسم arrayformula. با استفاده از این فرمول دیگه نیاز نیست توی تمام ردیف ها فرمول رو دوباره وارد کنید و فقط توی سطر اول وارد می کنید و اتومات توی ردیف های دیگه این فرمول استفاده می‌شه.قابلیت Power Query اکسلفکر کنید داده‌هایی که می‌خواید تمیز کنید رو به صورت دوره‌ای از منابع مختلفی دارید جمع آوری می‌کنید که خودتون به اون منابع دسترسی ویرایش ندارید و همیشه یک مدل فرمت خاص داده‌ها رو می‌گیرید که نیاز به ادیت داره. اگر بخوایم هر باره این داده ها رو تمیز کنیم، زمان و انرژی زیادی از ما می‌گیره و ممکنه خطا توش پیش بیاد. اکسل یک قابلیت فوق العاده به اسم Power Query داره که انجام این کار رو به شدت راحت می‌کنه. به این صورت که شما با استفاده از آپشن‌هایی که داره، یکبار داده‌ی خودتون رو تمیز و ذخیره می‌کنید و مراحلی که داده رو تمیز کردید توش ذخیره می‌شه. بعد از اون با بارگذاری داده‌ی جدید شما می‌تونید با یک کلیک مراحل تمیز کردن داده‌ی قبلی رو روی داده‌ی جدید اجرا کنید و دیتاتون بدون هیچ زحمتی مثل داده‌ی قبلی تمیز میشه. خیلی باحاله نه؟ یک سری قواعد داره که توضیحش از حوصله‌ی این مقاله خارج هست. برای اینکه بیشتر در مورد Power Query بدونید می‌تونید توی اینترنت سرچ کنید یا این ویدیو رو توی یوتیوب ببینید.امیدوارم مطالب بالا به دردتون خورده باشه. خوشحال می‌شم اگر شما هم روش‌های برای دگرگونی داده‌ها، تمیز کردن داده‌ها یا ولیدیشن کردن داده‌ها داشتید توی کامنت‌ها به من بگید.توی مقاله‌ی بعدی به مرحله‌ی بارگذاری داده می‌پردازم و بیشتر در موردش توضیح می‌دم.</description>
                <category>علیرضا یارمحمدی</category>
                <author>علیرضا یارمحمدی</author>
                <pubDate>Thu, 29 Jun 2023 19:15:19 +0330</pubDate>
            </item>
                    <item>
                <title>تحلیل داده برای تیم جذب و استخدام - قسمت اول (کشف داده‌ها)</title>
                <link>https://virgool.io/@alirezaymd/hrdata1-xleami04jiwy</link>
                <description>چطور دانش تحلیل داده رو برای اتومات کردن و بهبود فرآیندها و گزارش‌های تیم جذب و استخدام به کار گرفتم؟Image source: AIHRتوی این مقاله و مقاله‌های بعدی قصد دارم توضیح بدم که چطور با کمک دانش تحلیل داده تونستم گزارش‌ها و داشبوردهای بهینه‌ای برای تیم جذب و استخدام درست کنم و با کمکش زمان خیلی زیادی رو از تیم ذخیره کنم، فرایندها رو اتومات کنم و تحلیل های عمیقی بتونم از این مورد به دست بیارم.تحلیل داده فرآیند جمع آوری، تجزیه و تحلیل و تفسیر داده‌ها برای پشتیبانی از تصمیم‌گیری و حل مساله در حوزه‌های مختلف هست. توی سال‌های اخیر، با دیجیتالی شدن بیشتر فرایندها و پروسه‌ها، تحلیل داده برای همه‌ی تیم‌های منابع انسانی از جمله جذب و استخدام اهمیت زیادی پیدا کرده؛ چرا که می‌تونه به بهبود کارایی و اثربخشی در جذب و استخدامِ بهترین استعدادها برای سازمان کمک کنه. با این وجود، تجزیه و تحلیل داده چالش هایی ایجاد می‌کنه و به مهارت‌ها و ابزارهایی نیاز داره که یا همیشه برای متخصصین جذب استعداد در دسترس نیستن و یا کار باهاشون راحت نیست.توی این مقاله، من تجربه‌ی شخصی خودم رو از استفاده از دانش تحلیل داده برای اتوماتیک سازی و بهبود فرایندها و گزارش‌های تیم جذب و استخدام با شما اشتراک می‌ذارم.مشکل اصلی‌ای که همیشه باهاش مواجه بودم داشتن داده‌های بیش از حد از منابع مختلف بود ولی دانش کافی در مورد نحوه‌ی استفاده از این داده‌ها برای بهینه‌سازی استراتژی و عملکرد تیم جذب و استخدام نداشتم. تصمیم گرفتم از دانش تحلیل داده و با استفاده از فرایندی که ETL (Extract, Transform and Load) نام‌گذاری می‌شه برای ایجاد گزارش‌ها و داشبوردهای بهینه برای تیم جذب و استخدام استفاده کنم.تجزیه و تحلیل داده می تونه یه ابزار قدرتمند برای تیم جذب و استخدام باشه، در صورتی که بدونیم چطوری از اون درست و موثر استفاده کنیم. با استفاده از مراحل زیر در ادامه توضیح می‌دم که چطور از دانش تجزیه تحلیل داده برای حل کردن مشکلاتم استفاده کردم:کشف داده‌ها (Discovery of data): من داده‌ها رو با توجه به مورد استفاده‌ی خودم در جذب و استخدام بررسی کردم و یک طرح برای ساختاربندی و سازماندهی و مَپ کردن داده‌ها ایجاد کردم.دگرگونی داده‌ها (Transformation of data): من داده‌ها رو با استفاده از تکنیک‌ها و ابزارهای مختلف ساختاربندی، نرمال‌سازی و تمیز کردم.بارگذاری داده‌ها (Loading of data): من داده‌های تمیز، ساختاریافته و نرمال شده رو در یک دیتابیس بارگذاری کردم.بصری‌سازی داده‌ها (Visualization of data): من گزارش‌ها و داشبوردهایی برای نشون دادن شاخص‌های کلیدی عملکرد در فعالیت‌های جذب و استخدام ایجاد کردم.توضیح مشکلخوب، همه میدونیم که استفاده از دیتا برای همه‌ی تیم ها می‌تونه به بهبود عملکرد و پیشرفتشون کمک کنه. اکثر گزارش ها نیاز به داده دارن. برای پیش‌بینی نیاز به داده و رویکرد داده محور داریم. برای استفاده بهینه از ظرفیت تیم، نیاز داریم که از داده استفاده کنیم.توی تجربه های کاریم توی تیم‌های مختلف منابع انسانی شرکت های مختلف، برای استفاده از داده به مشکلات مختلفی برخورد می‌کردم که باعث می‌شد اونطوری که انتظار دارم کار پیش نره. بعضی از مواردی که بهشون برخورد کردم رو اینجا لیست می کنم:محل ذخیره‌‌ی داده‌ها، محل‌های متفاوتی بود که دسترسی بهش رو دشوار می‌کردداده‌ها به نظر یکپارچگی نداشت و هر شخصی با سلیقه‌ی خودش جداول رو می‌ساخت و اطلاعات رو وارد می‌کردامکان کار گروهی روی جداولی مثل اکسل به صورت همزمان وجود نداشت و به همین دلیل، فرایند یکپارچه‌سازی اطلاعات کار دشواری می‌شدکارِ دستی و تکراری برای وارد کردن اطلاعات بسیار زیاد بود. برای مثال برای وارد کردن اطلاعات مصاحبه با یک کاندید هر بار نیاز بود ایمیل، شماره تلفن، اطلاعات شغلِ مورد مصاحبه و … برای اون کاندید وارد بشهاگر موردی از داده‌ها نیاز به تغییر داشت، نیاز بود توی تک تک ردیف‌های جدول این مورد اصلاح بشه. (برای مثلا یک عدد در شماره تلفن یک کاندید اشتباه وارد شده و نیاز بود تک تک ستون‌های قبلی پیدا بشه و این مورد اصلاح بشه و یا موارد مشابه)به خاطر اینکه داده‌ها یک شکل وارد نمی‌شد، گزارش‌گیری هم درست انجام نمی‌شد و نیاز به اصلاحات خیلی زیادی داشت که خیلی موقع‌ها مواردی جا می‌موند و گزارش صحیح انجام نمی‌شد (برای مثال یک موقعیت شغلی در یک محل Sale Specialist و در محل دیگه Sales Specialist و در محل دیگه sale specialist ثبت می‌شد. همه برای ما یک معنی دارن ولی برای گزارش‌گیری این 3 متفاوت هستن)جدول‌ها طوری تهیه نشده بود که گزارش‌های خوبی بتونیم ازشون بگیریم و برای گزارش‌گیریِ متریک‌هایی که نیاز داشتیم نیاز بود به صورت دستی گزارش‌های دیگه‌ای محاسبه بشهبا توجه به اینکه تیم جذب و استخدام به گزارش‌های دوره‌ای نیاز داره، فرایند گزارش‌گیری ماهیانه، هفتگی و یا بعضا روزانه، وقت زیادی از تیم می‌گرفت و یک مورد فرسایشی و بعضا با اشتباه برای تیم بود (هربار از دیتا باید پیوت تیبل گرفته می‌شد و چک می‌شد آیا مورد اشتباهی وجود نداره و اشتباه اصلاح می‌شد و بررسی می‌شد که آیا اون متریکی که می‌خوایم رو به ما می‌تونه بده یا خیر و بعد خروجی گرفته بشه و پاورپوینت درست بشه و گزارش ارائه بشه)برای استفاده از داده‌ی یک جدول در جدول دیگه اون داده باید به صورت کامل دوباره وارد می‌شد که این کار انرژی بسیاری از ما می‌گرفت و بعضا با خطا همراه می‌شد و باز هم در صورت تغییر در یک جدول باید در تمامی جداول دیگه این تغییر اعمال می‌شد که بعضا یکی از جداول جا می افتاد و دیتا، دیتای اشتباهی می‌شد. (برای مثال در جدول مصاحبه می‌فهمیم که ارزیابی از گرید یک فرد اشتباه انجام شده و این گرید در یک جدول دیگه هم وارد شده، گرید رو در جدول مصاحبه تغییر میدیم ولی یادمون میره که در جدول ثبت اطلاعات پرسنلی هم این گرید تغییر کنه و باعث میشه یک شخص در یک زمان با 2 گرید متفاوت در جدول‌های مختلف داشته باشیم)برای استفاده از دیتاهای پرسشنامه‌ها (مثل پرس‌لاین، فرمالو و گوگل شیت) باید دوباره جداولی تهیه می‌شد و این دیتا آنالیز و یکپارچه‌سازی انجام می‌شد که فرایند طاقت فرسایی بود.ای تی اس ها (سیستم های آنلاین مدیریت فرآیند های جذب و استخدام)، گزارش های پیش‌فرضی داشتن و به خاطر خیلی مسائل مثل تنوع سورس‌ها، اشتباه استفاده کردن از ای تی اس، محدودیت مدل گزارش‌ها، عدم امکان سفارشی سازی گزارش و خیلی موارد دیگه سیستم گزارش ساز ای تی اس همه ی نیاز ما رو براورده نمی‌کرد.یه مطلب هست که می گه اگه میخوای کاری انجام نشه، انجام اون کار رو سخت کن و به مرور اون کار انجام نمیشهتمامی مطالب بالا، باعث سختی و اصطلاحا اصطکاک در کار می‌شد و این اصطکاک به مرور باعث می‌شد اون کار یا انجام نشه یا درست انجام نشه و در صورت انجام شدن هم انرژی ذهنی و زمانی زیادی از فرد بگیره و در مجموع فرد بهینه کار نکنه و عملکردش پایین بیاد. برخورد کردن به تمامی موارد بالا باعث شد که برم دنبال پیدا کردن جواب برای این موارد و با دانش تحلیل دیتا بیشتر آشنا بشم.تحلیل دیتا و تحلیل‌گر دیتا (Data Analysis and Data Analyst)نقش یک تحلیل‌گر داده شامل موارد زیره:به دست آوردن داده‌هایی که به بهترین وجه به موارد استفاده ازش کمک می‌کنهآماده‌سازی و تجزیه و تحلیل داده‌ها برای درک اینکه چه چیزی نشون میدنتفسیر و انتقال موثر پیام به ذینفعانی که باید بر اساس یافته‌ها عمل کنناطمینان از مستند بودن فرایند برای مراجعات بعدی و تکرارپذیریاکوسیستم تحلیل داده شامل زیرساخت ها، نرم افزارها، ابزارها، چارچوب ها و فرایندهایی هست که برای جمع آوری، پاکسازی، تجزیه و تحلیل، استخراج و تصویرسازی داده ها استفاده می‌شهای‌تی‌ال، یک فرآیند خودکار است که داده‌های خام رو به داده‌های آماده‌ی تجزیه و تحلیل تبدیل می‌کنه:Extracting data from source locations.Transforming raw data by cleaning, enriching, standardizing, and validating it.Loading the processed data into a destination system or data repository.جایگاه ETL در تحلیل داده - Source: IBM Data Analytics Courseکشف داده‌ها (Discovery of data)- مرحله اول: تعیین اطلاعاتی که باید جمع آوری شوند1. اطلاعات خاصی که نیاز داریمبرای مثال در فرآیند جذب و استخدام، مراحلی اتفاق می افته که توی هر مرحله اطلاعاتی وجود داره که از اون اطلاعات برای شاخص‌های جذب و استخدام استفاده می‌شه. بعضی از اون شاخص‌ها:تعداد مصاحبه‌ها (Interview count)تعداد کاندید‌ها (Individual Candidates Count)تعداد مصاحبه‌های فنی/منابع انسانی (Technical/HR Interview)تعداد مصاحبه‌های هر دپارتمان (Interview per Department)تعداد افراد اپلای کرده برای هر پوزیشن (Leads Number per Position)نرخ تبدیل هر مرحله از پروسه به مرحله بعدی (Conversion Rate)شاخص رضایت کاندیدها در هر مصاحبه (Candidate Experience/NPS)تعداد پوزیشن‌های باز فعلی (Open Position)نرخ تایید آفر (Offer Acceptance Rate)منابع اصلی اپلای/جذب (Source of Apply/Hire)زمان جذب (Time to Hire)زمان استخدام (Time to fill)تعداد مصاحبه توسط هر فرد (Interview count per Hiring Manager)2. منابع احتمالی این اطلاعاتبرای دریافت شاخص‌های بالا به منابعی نیاز هست، برخی از این منابع عبارت است از:اطلاعات موجود در ATSاطلاعات وارد شده توسط ریکروتراطلاعات پر شده توسط کاندید در فرم رضایت کاندیداطلاعات گرفته شده توسط مدیر جذب- مرحله دوم: تعیین یک برنامه برای جمع آوری داده‌ها1. تعیین یک مقطع زمانی برای جمع آوری داده‌هابعضی داده‌ها نیاز به جمع آوری لحظه‌ای و روزانه دارن و بعضی داده ها نیاز به جمع آوری در مقاطع زمانی مختلف (برای مثال تعداد مصاحبه‌های روزانه نیاز به جمع آوری روزانه و لحظه‌ای داده ها دارن ولی زمان جذب هر پوزیشن بسته به زمان انتهای جذب هر پوزیشن زمان جمع آوری داده متفاوت می‌شود)2. تعیین مقدار داده‌ی مورد نیاز برای آنالیز معتبربرای هر کاندید با چه جزییاتی نیاز هست اطلاعات جمع آوری شوندجزییات زمانی هر مصاحبه با چه دقتی نیاز به ثبت داردجزییات نتیجه مصاحبه با چه جزییاتی نیاز به ثبت دارددر فرم رضایت مصاحبه شونده چه سوالاتی باید پرسیده شوددر هر مصاحبه چه جزییاتی نیاز به ثبت دارد2. تعیین وابستگی ها و ریسک‌هابرای اجرا، بعضی از عوامل فوق به هم وابسته هستند و یا اجرای دشواری دارند. در این قسمت این موارد بررسی می شوند- مرحله سوم: تعیین متد جمع آوری دادهتعیین متد جمع آوری داده به چند فاکتور بستگی داره:1. منبع دادهبیشتر داده‌های ما داده‌هایی بود که به صورت دستی وارد می‌شد. بهترین ابزار برای این کار که هم فاکتور آنلاین بودن رو داشته باشه هم کالبریتیو باشه، گوگل شیت بود. پس اینجا برای وارد کردن داده‌های دستی از گوگل شیت استفاده کردیم.یکی دیگه از منابعمون پرسش‌نامه ها بود که بیشتر برای شاخص رضایت‌مندی مصاحبه ازش استفاده می‌کنیم. ما هم از پرس لاین هم از فرمالو و هم از گوگل فرم (بنا به مدل فرمی که می‌خواستیم استفاده کنیم استفاده کردیم). امکان جدیدی که فرم های ایرانی اضافه کردن اتصال به گوگل شیت بود که کار ما رو چند مرحله ساده‌تر و روون تر می‌کرد؛ به این صورت که فرم ها رو به گوگل شیت کانکت می کردیم و هر پاسخ به صورت اتومات داخل گوگل شیت میومد و ما دیگه از اون دیتا برای آنالیز استفاده می کردیم و نیاز به دانلود جداگانه‌ی جواب ها و آپلود مجددشون برای بررسی روی گوگل شیت نبود. این فرم‌ها هر کدوم معایب و مزایای خودشون رو دارن که اصلی‌ترین هاش رو میگم:- گوگل فرم رایگان هست و چون متعلق به خود گوگل هست سینک شدنش با گوگل شیت به راحت‌ترین شکل ممکن و بهترین مدل انجام میشه ولی محدودیتاش نسبت به فرم های دیگه قابلیت های سفارشی‌سازی کمتر فرم و ولیدیشن‌ها و نبودن شرطی سازی‌هاستGoogle Forms panel- فرمالو به نظرم از همه بهتر بود، تا چند ماه پیش که با محدودیت‌هایی که روی اینترنت گذاشته شد دیگه مثل قبل کار نمی‌کرد و ساپورت ایرانشون رو کم و الان که دارم این مطلب رو می‌نویسم ساپورت ایران رو محدود کردن و فقط رو دامنه‌ی انگلیسی ساپورت کامل رو دارن. قیمت پایین و امکانات متعدد از مزیت‌های این فرم ساز بودFormaloo panel- پرس‌لاین از قدیمی‌ترین فرم سازهاست که با توجه به اینکه خیلی سازمان‌ها ازش استفاده می‌کنن جایگاه خوبی توی بازار داره و روی زیرساختاشون خوب کار کردن و قابلیت اطمینان بالایی برای کار داره و یه محدودیت اصلیش به نظرم (که البته یکی از اصول پرس لاین هست) تک مرحله‌ای بودن سوالاش هست که درسته که خوب هست ولی بعضی فرم ها نیاز هست که به جای اینکه فقط یک سوال در یک صفحه پرسیده بشه، چند سوال به صورت همزمان در یک صفحه پرسیده بشه. و البته قیمتش هم نسبت به سایر فرم‌سازهای ایرانی از همه بالاتر هست و اخیرا امکان اتصال به گوگل شیت هم به قابلیتاش اضافه کردنPorsline panel2. تایپ دادهبنا به مدل داده‌هایی که داریم می‌شه از ابزارهای مختلف استفاده کرد. با توجه به مدل دیتابیس ما که تقریبا همه ش متنی و ساختاریافته هست از گوگل شیت به عنوان ابزار استفاده کردیم و تایپ های مختلفی از جمله تاریخ، عدد، متن، بولین و … برای داده‌ها استفاده کردیم3. مقطع زمانی که به داده نیاز داریم4. حجم دادهحجم داده‌های ما در حدی هست که گوگل شیت برای این کار جواب می‌ده ولی اگر تیمی داده‌هاش تعدادش خیلی بالاست (بالاتر از 5میلیون ردیف) باید از ابزار دیگه‌ای استفاده کنه چون گوگل شیت بیشتر از این تعداد رو ساپورت نمی‌کنه و توی تعدادهای خیلی بالا کند می‌شهکشیدن فلوچارت ارتباط داده‌هابرای این مرحله کمی نیاز بود تا با مفاهیم اولیه دیتابیس و ERD آشنا بشم که به صورت خیلی خلاصه اینجا می‌نویسمش:نمودار موجودیت-رابطه (Entity Relationship Diagram) نوعی فلوچارته که نحوه‌ی ارتباط موجودیت‌هایی (Entity) مانند افراد، اشیاء یا مفاهیم رو با همدیگه در یک سیستم نشون می‌ده. نمودارهای ER اغلب برای طراحی یا اشکال زدایی پایگاه داده‌های رابطه‌ای (Relational Database) استفاده می‌شن.نمودارهای ER بر اساس سه مفهوم اساسی ایجاد می شوند: موجودیت‌ها (Entities) ، ویژگی‌ها (Attributes) و روابط (Relationships). موجودیت‌ها، اشیا یا مفاهیمی هستند که برای سیستمِ در حال مدل‌سازی مهم هستند. ویژگی ها، ویژگی های یک موجودیت هستند که به توصیف اون کمک می کنند. روابط، توصیف می‌کنند که چگونه موجودیت‌ها با یکدیگر تعامل دارند.خوب، برای اینکه بتونیم یک ER Diagram برای مدیریت دیتابیس پروسه‌ی جذب و استخدام رسم کنیم، نیاز هست تا مراحل اون رو درک کنیم و ببینیم به چه داده‌ها و &quot;موجودیت‌ها&quot;یی نیاز داریم و هر موجودیت چه &quot;ویژگی&quot;هایی داره و این موجودیت‌ها به چه نحوه‌ای به هم &quot;ارتباط&quot; دارن.اتفاق‌هایی که توی پروسه جذب و استخدام می افته به صورت خیلی خلاصه به شرح زیر هست:یک کاندید وارد پروسه‌ی جذب و استخدام می‌شه؛ یک یا چند مصاحبه رو در تاریخ‌های مختلف برای یک جایگاه شغلی انجام می‌ده و در صورت موفقیت آمیز بودن این پروسه بهش یک آفر داده میشه.بیاید موجودیت‌ها (Entity) هایی که اینجا داریم رو مشخص کنیم:کاندید/مصاحبه/جایگاه شغلی/آفر/تاریخاین موجودیت‌ها هر کدوم یک سری ویژگی‌ها (Attribute) دارن. بیاین ویژگی‌های هر موجودیت رو بنویسیم:- کاندیدنام و نام خانوادگی/ایمیل/تلفن/منبع اپلای- مصاحبهتاریخ مصاحبه/مصاحبه کننده/کاندید/مرحله مصاحبه/نتیجه مصاحبه/نام جایگاه شغلی- جایگاه شغلینام جایگاه شغلی/دپارتمان/مدیر جذب/تاریخ باز شدن جایگاه/ریکروتر/کاندید مورد قبول/وضعیت جایگاه- آفرکاندید/جایگاه شغلی/تاریخ آفر/وضعیت آفر- تاریخمیلادی/شمسی/فصلی/نیم سال/هفتگیحالا بیاین ارتباط‌هایی (Relationship) که هر موجودیت با موجودیت دیگه داره رو بنویسیم:هر کاندید در یک یا چند مصاحبه شرکت می‌کنههر کاندید می‌تونه 0 یا 1 آفر بگیرههر آفر شامل یک کاندید هستهر آفر شامل یک جایگاه شغلی هستهر مصاحبه یک کاندید دارههر مصاحبه مربوط به یک جایگاه شغلی هستهر پوزیشن می‌تونه یک یا چند آفر داشته باشههر پوزیشن میتونه چند مصاحبه داشته باشهبا توجه به اطلاعات بالا میتونیم یک ER Diagram برای فرایند جذب و استخدام بکشیم:Recruitment ER Diagram Sampleحالا ما یک دید کلی از موجودیت‌ها به همراه ویژگی‌هاشون و نحوه‌ی ارتباط اون‌ها با همدیگه داریم و می‌تونیم مرحله‌ی بعد رو انجام بدیم.برای اینکه بیشتر از نمودارهای ER بدونید می‌تونید به این لینک مراجعه کنید.در مقاله‌ی بعدی به تکنیک‌های دگرگونی داده‌ها (Transformation of data) می‌پردازم و از تجربیاتم در این زمینه توی تیم جذب و استخدام می‌گم.</description>
                <category>علیرضا یارمحمدی</category>
                <author>علیرضا یارمحمدی</author>
                <pubDate>Thu, 22 Jun 2023 16:38:07 +0330</pubDate>
            </item>
            </channel>
</rss>