<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های هادی شجاعیان</title><link>https://virgool.ir/feed/@hadi.sh.pro</link><description>بیزنس * پروداکت * مهندسی نرم افزار</description><language>fa</language><pubDate>2026-11-11 06:23:28</pubDate><image><url>https://files.virgool.ir/upload/users/23853/avatar/pBxPNw.jpeg</url><title>هادی شجاعیان</title><link>https://virgool.ir/@hadi.sh.pro</link></image><item><title>تحلیل نیازمندی ها | برگشت به ریشه ها جایی که علم در آن دفن شده است</title><link>https://virgool.ir/@hadi.sh.pro/تحلیل-نیازمندی-ها-برگشت-به-ریشه-ها-جایی-که-علم-در-آن-دفن-شده-است-kksnjzqvfcie</link><description>برگشت به ریشه ها، جایی که علم واقعی دفن شدهدر بین انبوه واژه ها  و تولیدات AI یادمان نرودهر از گاهی نگاهی به گذشته و آنچه آموختیم باشد، اصالت همیشه حرفی برای گفتن دارد.شاید اینطور به نظر برسد تولید نرم افزار و پروداکت نرم افزاری کار راحتی شده و نیازی نیست مجدد به مطالعه کتاب هایی نظیر مهندسی نرم افزار بپردازیم.بیاییم به اولین گام تولید نرم افزار که سالها پیش در کتاب مهندسی نرم افزار آموختیم برگردیم.اولین گام در تولید نرم افزار تحلیل نیازمندی هاستهدف از تحلیل نیازمندی ها پی بردن به عملکردها، خدمات و محدودیت های نرم افزاری است که قرار است تولید بشود. برای رسیدن به این اهداف ما نیاز‌ به شناخت داریم، چندین روش برای رسیدن به این شناخت وجود داره. ۱. مصاحبه ۲. تحلیل(تحقیق) بازار ۳.پرسشنامه و...تحلیل نیازمندی ها به دو سئوال مهم می بایست جواب بدهد۱. نیازمندی های عملکردی(عملیات و خدمات که نرم افزار یا سرویس باید ارائه بدهد)۲. نیازهای غیر عملکردی(زمان پاسخگویی، میزان کاربر پسند بودن و ... )در غایت تحلیل، موضوع اصلی نیازمندی تعریف مشکلی  است که باید حل بشود.برای مثال یک سیستم لگیسی را میخواهیم باز طراحی کنیم، مشکل را چگونه تعریف کنیم؟۱. ایا مشکل فقط تکنولوژی است؟ ۲.مشکل فرآیند است؟۳. مشکل نیازهای غیر عملکردی است؟بدون پاسخ به این سئوالات باز طراحی  به معنی مهاجرت به تکنولوژی جدید کما اینکه ممکن است به لحاظ نیازمندی های غیر عملکردی و فرآیندی ضعیف تر هم طراحی کنیم.پاسخ به همه این سئوالات از گام اول تولید نرم افزار عبور می کند یعنی تحلیل نیازمندی ها.در پست بعدی به یکی از روش های تحلیل نیازمندی ها خواهم پرداخت.( تحقیقات بازار )</description><category>هادی شجاعیان</category><author>هادی شجاعیان</author><pubDate>Mon, 19 Oct 2026 19:39:25 +0330</pubDate></item><item><title>خلاصه بازیکن تیمی ایده آل</title><link>https://virgool.ir/@hadi.sh.pro/نامشخص-niqq9ep7ghto</link><description>خلاصه و فهم من از کتاب بازیکن تیمی ایده‌آل نوشته‌ی پاتریک لنچونی، نویسنده‌ی برجسته‌ی آمریکایی. کتاب رو میتونید از aryanaghalam خریداری کنید.کتاب بازیکن تیمی ایده آل حول سه فضلیت مهم در حال گردش است. خود کتاب بهش میگه مدل بازیکن تیمی ایده آل. به اعتقاد نویسنده، سازمان هایی که به طور جدی متعهدند کار تیمی را به واقعیت فرهنگی تبدیل کنند، &#34; افراد مناسب &#34; کسانی اند که همگی از این سه فضیلت برخوردارند. فروتنی، ولع و هوشمندی.کتاب بازیکن تیمی ایده‌ آل به طور کلی از دو بخش تشکیل شده است:بخش اول=&gt; داستان کاربردی: این بخش از کتاب قرار نیس در دایره توجه ما باشد. بنابراین میزاریم کنار.بخش دوم=&gt; مدل مفهومی: این بخش که هسته اصلی و بخش تحلیلی کتابه، به معرفی سه ویژگی کلیدی افرادی می‌پردازد که برای حضور در یک تیم موفق، ایده‌آل هستند. در این مطلب تمرکز ما روی بررسی همین بخش دومه.تعریف سه فضیلت، بازیکن تیمی ایده آللنچونی معتقد است که یک بازیکن تیمی کامل، باید سه صفت کلیدی را به طور هم‌ زمان داشته باشد. بیایید این سه ویژگی را بشناسیم:1. فروتنیبه نظر نویسنده، فروتنی بزرگ‌ ترین و منحصربه‌ فردترین خصلت یک بازیکن تیمی است. افراد فروتن فاقد خودخواهی و دغدغه‌ ی مقام و منصب هستند. آن‌ ها آماده اند به کمک دیگران بروند و اعتبار انجام کار‌‌ها را با بقیه اعضای تیم سهیم می‌شوند.کسی که فروتن نیست قادر نخواهد بود انتقاد پذیر باشد و اعتماد سازی کند و این باعث میشود نتواند به تعارض صادقانه بپردازد و از دیگران مسئولیت بخواهد. همچنین برای او پایبندی به تصمیماتیکه در خدمت منافعش نباشد دشوار خواهد بود.در نقطه مقابل، افرادی که فاقد این ویژگی هستند به دو دسته تقسیم می‌شوند:افراد متکبر و خودمحور: همه‌چیز را به خودشان ربط می‌دهند و در صحبت‌هایشان بیشتر از کلمه‌ی |من| استفاده می‌کنند تا |ما|.افراد با اعتماد به‌ نفس پایین: کار خود را بی‌ ارزش نشان میدن. ما اغلب این افراد را به اشتباه |فروتن| می‌دانیم، در حالی که این کمبود اعتماد به‌ نفس در بلند مدت به تیم آسیب می‌زند.۲. ولع و انگیزهانسان‌های پر‌ولع همیشه به دنبال پیشرفت و یادگیری و گرفتن مسئولیت بیشتر هستن. آن‌ها مسئولیت‌ پذیرند و بدون اینکه مدیر از آن‌ها درخواست کند، به صورت خودجوش کارهای بیشتری را برعهده می‌گیرند. با این حال، لنچونی هشدار می‌دهد که دو نوع ولع آسیب‌زا نیز وجود دارد:ولع خودخواهانه: زمانی که فرد فقط به فکر منافع و ارتقای شخصی خودش است، نه موفقیت تیم.ولع افراطی (کارزدگی): زمانی که کار برای فرد ارزش بیش از حدی پیدا می‌کند و تمام جنبه‌های زندگی شخصی او را تحت تأثیر مفی قرار می دهد.همکاری که فاقد ولع است تمایلی نخواهد داشت خود را درگیر تعارض آزار دهنده کند، از همکارانش در قبال فتارهایشان مسئولیت خواهی کند یا هر آنچه لازم است برای رسیدن به نتیجه انجام دهد و در عوض تصمیم می گیرد مسیر راحت تری انتخاب کند.۳. هوشمندی تیمیاین ویژگی برخلاف ظاهر نامش، به معنای بهره هوشی (IQ) نیست. این ویژگی به نحوه رابطه شخص با دیگر اعضای تیم مربوط می‌شود. افراد هوشمند ارتباطات بسیار خوبی دارند، از تاثیر رفتار و کلام خود بر دیگران آگاهند و می‌دانند چگونه با اعضای تیم برخورد کنند. شخصی که در قبال افراد دیگر هوشمند نیست به احتمال فراوان مشکلات غیر ضروری در کل فرایند تیم سازی ایجاد خواهد کرد خصوصاً زمانی که نوبت به آن برسد که دیگران برای رفتارهایشان مسئولیت خواهی کند. ترکیب ویژگی‌ها: وقتی تعادل به هم می‌خوردفقط فروتن (مهره پیاده): این افراد خوش‌برخورد، مهربان، بی‌تکلف و دوست‌داشتنی هستند، ولی عملاً در تیم کاری را جلو نمی‌برند و توانایی برقراری روابط موثر کاری را ندارند. متاسفانه به علت شخصیت مهربانشان، مدیران معمولاً دلسوزی به خرج داده و نمی‌توانند آن‌ها را از تیم حذف کنند، در حالی که بازدهی تیم را به شدت پایین می‌آورند.فقط پرولع (بولدوزر): این افراد عزم جدی برای انجام کارها دارند، اما تمرکز آن‌ها صرفاً بر روی منافع شخصی خودشان است و هیچگاه به نفع تیم قدم برنمی‌ دارند. در سازمان‌هایی که فقط &#34;تولید و سود بیشتر&#34; ملاک است، این افراد به وفور دیده می‌شوند اما در درازمدت فضای تیمی را تخریب می‌کنند.فقط هوشمند (افسونگر): آدم‌هایی سرگرم‌کننده، جذاب و با روابط عمومی فوق‌العاده هستند. آن‌ها صرفاً به دنبال خوش‌گذرانی و شبکه‌سازی شخصی در شرکت هستند، اما بهره‌وری پایینی دارند و تعهدی به موفقیت واقعی تیم نشان نمی‌دهند.فروتن + پرولع: این افراد صمیمانه می‌خواهند به تیم کمک کنند و دغدغه شهرت ندارند، اما چون هوش اجتماعی (Smart) پایینی دارند، آداب ارتباطی را بلد نیستند. آن‌ها متوجه نمی‌شوند که لحن یا رفتارشان چه تأثیری روی بقیه می‌گذارد و ناخواسته تنش ایجاد می‌کنند. خبر خوب: شناخت این افراد ساده است و می‌توان مهارت‌های ارتباطی را به آن‌ها آموزش داد.فروتن + هوشمند : در ارتباطات قوی هستند، جویای نام و نشان نیستند و جو آرامی ایجاد می‌کنند. اما فاقد ولع و انگیزه‌اند. آن‌ها معمولاً فقط به اندازه‌ای که دقیقاً از آن‌ها خواسته شده کار می‌کنند و قدمی فراتر برنمی‌دارند. مدیران به سختی حاضر به اخراج این افراد مثبت و دوست‌داشتنی می‌شوند، در حالی که آن‌ ها برای پویایی تیم به انگیزاننده‌ها و نظارت زیادی نیاز دارند.پرولع + هوشمند : خطرناک‌ترین تیپ شخصیتی در سازمان! این افراد ولع بالا و هوش اجتماعی قوی دارند اما فروتن نیستند. آن‌ها به شکل زیرکانه‌ای جاه‌طلب هستند و تا زمانی که برایشان سود شخصی داشته باشد، سخت کار می‌کنند. چون هوشمند هستند، به زیبایی نقش یک آدم فروتن و دلسوز را بازی می‌کنند. تشخیص آن‌ها بسیار سخت است و تا رهبران متوجه نیت واقعی آن‌ها شوند، زنجیره‌ای از تخریب و تفرقه در تیم ایجاد شده است.پایان.</description><category>هادی شجاعیان</category><author>هادی شجاعیان</author><pubDate>Sun, 27 Sep 2026 13:36:09 +0330</pubDate></item><item><title>Shape Up چیست و چرا تیم‌های نرم‌افزاری به آن علاقه‌مند شده‌اند؟</title><link>https://virgool.ir/@hadi.sh.pro/shape-up-چیست-و-چرا-تیم-های-نرم-افزاری-به-آن-علاقه-مند-شده-اند-kpdsqzm7q54i</link><description>این متن خلاصه ای از کتاب Shape up هستش با چاشنی نظرات خودم. (نسخه اصلی PDF https://basecamp.com/shapeup/shape-up.pdf)این مطلب در حال تکمیل شدن است( به عنوان پیش نویس ببینید )Shape Up روشی برای ساخت محصول است که به‌جای تمرکز روی backlog، sprint و estimate، روی تعریف درست مسئله، محدود کردن scope و تحویل واقعی پروژه تمرکز می‌کند.کتاب Shape Up توسط Ryan Singer نوشته شده و تجربه واقعی تیم Basecamp در ساخت محصولات نرم‌افزاری را توضیح می‌دهد. این کتاب در سال‌های اخیر به یکی از محبوب‌ ترین منابع مدیریت محصول و توسعه نرم‌افزار تبدیل شده است، مخصوصاً برای تیم‌هایی که از فرآیندهای سنگین و فرسایشی خسته شده‌اند.Shape Up چیست؟بیشتر تیم‌های نرم‌افزاری با مشکلات مشابهی روبه‌رو هستند:backlog های بزرگ و بی‌پایانestimate های اشتباهsprint هایی که مدام تمدید می‌شوندfeature هایی که هیچ‌وقت واقعاً تمام نمی‌شوندجلسات زیاد و تمرکز کمتغییر مداوم scope پروژهShape Up تلاش می‌کند این چرخه را بشکند.ایده اصلی کتاب این است که قبل از شروع implementation، باید مسئله را به‌درستی شکل بدیم به اصطلاح Shape کنیم=&gt; یعنی:مسئله را دقیق بفهمیممرزهای پروژه را مشخص کنیمپیچیدگی‌ های پنهان را کشف کنیمو راه‌ حلی طراحی کنیم که در زمان محدود قابل تحویل باشدتفاوت Shape Up با Scrumیکی از مهم‌ترین تفاوت‌ های Shape Up با روش‌هایی مثل Scrum اینه که به‌جای تمرکز روی task و velocity، روی outcome تمرکز می‌کند. به این مطلبم مراجعه کنید تفاوت output، outcome و impact https://vrgl.ir/HlJtnدر Scrum معمولاً:backlog دائماً بزرگ‌ تر می‌شود.تیم وارد sprint های پشت‌سر هم می‌شود.و success با تعداد task های done سنجیده می‌شود.اما در Shape Up:همه ایده‌ها وارد backlog نمی‌شوندپروژه‌ها قبل از build شدن shape می‌شوندتیم‌ها زمان ثابت دارندو scope می‌تواند تغییر کنداصل معروف کتاب این جمله استFixed Time, Variable Scopeیعنی:زمان ثابت استاما scope قابل کاهش استاگر پروژه در زمان تعیین‌شده جا نشود، به‌جای تمدید deadline، بخشی از scope حذف می‌شود.مفهوم Appetiteیکی از مهم‌ترین مفاهیم کتاب، Appetite است.در روش‌های سنتی ابتدا feature طراحی می‌شود و بعد تخمین می‌زنند چقدر زمان لازم دارد. اما Shape Up برعکس عمل می‌کند.ابتدا مشخص می‌کنیم:«چقدر حاضر هستیم برای این مسئله زمان صرف کنیم؟»مثلاً:۲ روز۲ هفتهیا ۶ هفتهسپس راه‌حلی طراحی می‌کنیم که داخل این محدودیت زمانی جا شود.این نگاه باعث می‌شود تیم‌ها به‌جای ساختن «کامل‌ترین» راه‌حل، به‌دنبال «مفیدترین» راه‌حل باشند.مشکل واقعی مهم‌تر از درخواست ظاهری استکتاب تأکید زیادی دارد که درخواست کاربر همیشه مسئله واقعی نیست.مثلاً ممکن است کاربر بگوید:«ما به تقویم نیاز داریم.»اما بعد از بررسی مشخص شود مشکل اصلی فقط این است که:«کاربر می‌خواهد زمان‌ های خالی را ببیند.»در این حالت شاید نیازی به ساخت یک Calendar پیچیده نباشد و یک UI بسیار ساده همان نیاز را حل کند.این طرز فکر جلوی over-engineering را می‌گیرد و باعث می‌شود تیم روی pain واقعی تمرکز کند.Hill Chart، نگاه متفاوت به پیشرفت پروژهShape Up معتقد است درصد پیشرفت معمولاً گمراه‌کننده است.به‌جای اینکه بگوییم:«پروژه ۸۰٪ انجام شده»از مدلی به نام Hill Chart استفاده می‌کند.در این مدل:سمت اول تپه یعنی هنوز unknown داریمسمت دوم یعنی مسیر مشخص شده و فقط execution باقی ماندهاین نگاه کمک می‌کند تیم تفاوت بین:«نفهمیدن مسئله»و«صرفاً پیاده‌سازی»را درک کند.چرا Shape Up محبوب شده است؟دلیل محبوبیت Shape Up فقط فرآیند آن نیست؛ بلکه نوع نگاهش به تیم توسعه است.در این روش:توسعه‌دهنده فقط task اجرا نمی‌کندتیم autonomy داردmicro-management کمتر می‌شودو تیم روی حل مسئله تمرکز می‌کند، نه فقط انجام ticketهابرای همین بسیاری از تیم‌های product محور و startupها از این مدل استقبال کرده‌اند.آیا Shape Up برای همه مناسب است؟نه کاملاً.Shape Up بیشتر برای:تیم‌های کوچک تا متوسطتیم‌های product-focusedstartupهاو تیم‌هایی با autonomy بالامناسب است.در سازمان‌های بزرگ با dependency زیاد، bureaucracy سنگین یا فرآیندهای پیچیده، اجرای کامل Shape Up می‌تواند سخت باشد.اما حتی در این تیم‌ها هم بسیاری از مفاهیم کتاب — مثل appetite، محدود کردن scope و تمرکز روی مسئله واقعی — بسیار ارزشمند هستند.۱. چرخه ۶ هفته‌ای و یک دوره خنک‌شدندر Shape Up، خبری از اسپرینت‌ های کوتاه دو هفته‌ای نیست. کارها در چرخه‌های ۶ هفته‌ای تعریف می‌شوند. چرا ۶ هفته؟ چون این زمان به اندازه‌ای طولانی است که بتوان یک ویژگی (Feature) کامل و معنادار را از صفر تا صد ساخت، و به اندازه‌ای کوتاه است که ضرب‌الاجل (Deadline) حس شود و تیم تمرکزش را از دست ندهد.اما بخش جذاب‌تر، دوره خنک‌ شدن (Cool-down) دو هفته‌ای است که بعد از هر چرخه قرار دارد. در این دو هفته، هیچ پروژه بزرگی تعریف نمی‌شود. تیم آزاد است که باگ‌ها را رفع کند، کدهای قدیمی را تمیز کند یا روی ایده‌های خلاقانه خودش کار کند. این دوره، پادزهر فرسودگی شغلی (Burnout) برنامه‌نویسان است.( مسئله ای که خیلی به آن توجه نمی شود.)۲. شکل‌دهی (Shaping)، کارها را مبهم تحویل تیم ندهیدیکی از دلایل شکست پروژه‌ها، ورود کارهای خام یا بیش از حد جزئی به تیم توسعه است. در Shape Up، کارها قبل از شروع چرخه، توسط مدیر محصول یا رهبر فنی «شکل‌دهی» می‌شوند. شکل‌دهی یعنی تعیین مرزهای پروژه با طرح‌های خطی ساده (Fat Marker Sketches). کار شکل‌یافته نه آن‌قدر گنگ است که تیم در آن گم شود و نه آن‌قدر با جزئیات پیکسل‌به‌پیکسل طراحی شده که خلاقیت برنامه‌نویس و طراح را از بین ببرد.۳. پارادایم جدید: «اشتها» به جای «تخمین زمان»در مدیریت پروژه سنتی می‌پرسیم: «ساخت این ویژگی چقدر زمان می‌برد؟». در Shape Up نگاه کاملاً برعکس است. ما می‌پرسیم: «ما چقدر اشتها (Appetite) داریم تا روی این ایده سرمایه‌گذاری کنیم؟» اگر اشتها و بودجه ما برای یک ایده فقط ۲ هفته باشد، راه‌حل را آن‌قدر کوچک و بهینه می‌کنیم تا در ۲ هفته جا شود. ما زمان را کش نمی‌آوریم، بلکه محدوده کار (Scope) را چکش‌کاری می‌کنیم.۴. میز شرط‌بندی و خداحافظی با کابوس بک‌ لاگ!یکی از رادیکال‌ترین ایده‌های کتاب، حذف بک‌لاگ است. در Shape Up هیچ لیستی از کارهای قدیمی نگهداری نمی‌شود. ایده‌های شکل‌گرفته به میز شرط‌بندی (The Betting Table) می‌روند. تصمیم‌گیرندگان اصلی در این جلسه تصمیم می‌گیرند که در ۶ هفته آینده روی کدام پروژه‌ها شرط‌بندی کنند. اگر پروژه‌ای انتخاب نشود، کاملاً رها می‌شود. اگر ایده واقعاً مهم باشد، مطمئن باشید در چرخه‌های بعدی دوباره زنده خواهد شد.۵. The Hill Chart، درک واقعی از پیشرفتمفهوم Hill Chart در Shape Up یکی از جذاب‌ترین و کاربردی‌ ترین بخش‌های کتابه، چون سعی می‌کنه یک مشکل قدیمی در مدیریت پروژه را حل کند:«چطور بفهمیم واقعاً پروژه در چه وضعیتی است؟»در اکثر تیم‌ها، وضعیت پروژه با درصد بیان می‌شود:۳۰٪ انجام شد۷۰٪ انجام شد۹۰٪ انجام شداما مشکل اینجاست که این درصدها معمولاً واقعی نیستند.خیلی وقت‌ها:پروژه «۸۰٪» استولی هنوز مهم‌ترین unknown ها حل نشده‌اندو همان ۲۰٪ باقی‌مانده ممکن است دو برابر کل زمان قبلی طول بکشدShape Up می‌گوید:مسئله اصلی در پروژه‌ها «حجم کار» نیست.بلکه «میزان ناشناخته بودن مسئله» است.۶. مدار قطع‌کننده (The Circuit Breaker)اگر پروژه‌ای در پایان ۶ هفته تمام نشود، زمان تمدید نمی‌شود! پروژه به طور خودکار لغو می‌شود. این قانونِ سخت‌گیرانه به تیم‌ها یاد می‌دهد که از همان روز اولِ چرخه، کارهای فرعی را حذف کنند و فقط روی هسته اصلی ارزش تمرکز کنند تا بتوانند سر وقت محصول را شیپ (Ship) کنند.نتیجه‌گیری: آیا Shape Up برای تیم شما مناسب است؟چارچوب Shape Up یک فرمول جادویی برای همه شرکت‌ها نیست، اما یک پیام مهم دارد: به جای تمرکز روی فرآیندها و بوروکراسی، روی خروجی واقعی و حفظ تمرکز تیم تمرکز کنید. اگر احساس می‌کنید تیم شما در جلسات بی‌پایان اسکرام غرق شده و سرعت خروجی‌تان افت کرده است، شاید وقت آن رسیده که چند هفته‌ای را به سبک بیس‌کمپ فکر کنید.Shape Up فقط یک framework جدید برای مدیریت پروژه نیست. این کتاب بیشتر درباره طرز فکر درست در ساخت نرم‌افزار است.پیام اصلی کتاب این است:قبل از اینکه شروع به coding کنید، مسئله را آن‌قدر خوب تعریف کنید که تیم بتواند بدون chaos آن را در زمان محدود تحویل دهد.اگر تیمی دارید که:همیشه درگیر backlog است،estimateهایش دقیق نیست،scope پروژه‌ها مدام تغییر می‌کند،یا featureها هیچ‌وقت «تمام» نمی‌شوند،مطالعه Shape Up می‌تواند نگاه متفاوت و بسیار کاربردی‌ای به فرآیند توسعه نرم‌افزار بدهد.</description><category>هادی شجاعیان</category><author>هادی شجاعیان</author><pubDate>Tue, 08 Sep 2026 18:59:41 +0330</pubDate></item><item><title>تنهایی و زیست ماشینی</title><link>https://virgool.ir/@hadi.sh.pro/تنهایی-و-زیست-ماشینی-pdncxwxpkw9s</link><description>تنهاییتا جایی که دیگر حس نمی کنی تنهاییپای کس دیگری در درونت در میان استقوی و قدرتمندحسود و تمامیت خواه، تمام تو را می خواهد.در ابتدا در پستوی درونت و در حال تماشا، روش خودش را داردحالم بهم میخورد از تنهایی که فقط خودت باشی و تا همین حد وابستهاینکه تنهایی نیست، فرار است.تنهایی برای من شبیه چاهی است که می پری در آن و طناب را پاره می کنی، تو را می بلعدچون تمام تو را می خواهد.بر میگردی قبل از اینکه تو را ببلعد و طعم شیرینش تا مغز استخوانت رخنه نکرده، دیکته می کند خودش را به توراه برگشت سخت است و دشوار.زندگی قطعا در پیوند استزندگی حتما در چسبندگی استزندگی در گریه ها و بوسه های نیم شب استحالم بهم میخورد از آدم هایی که ماشینی فکر می کننآدم هایی که روزی روبات ها جای آنها را خواهد گرفتمن باشم حتما جای آنها روبات استفاده می کنم. تو به فکر تعلق داری و به آنجا برخواهی گشت. آسمان، زمین، ماشین.</description><category>هادی شجاعیان</category><author>هادی شجاعیان</author><pubDate>Wed, 08 Jul 2026 20:39:50 +0330</pubDate></item><item><title>تجربه مهاجرت تدریجی از سیستم Legacy به سیستم جدید، مرد میدان می خواهد</title><link>https://virgool.ir/@hadi.sh.pro/تجربه-مهاجرت-تدریجی-از-سیستم-legacy-به-سیستم-جدید-zrfoii1iezf4-zrfoii1iezf4-zrfoii1iezf4-zrfoii1iezf4</link><description>با توجه به اینکه این روزها درگیر کاری مشابه هستیم، تصمیم گرفتم از تجربه ای که بدست آوردم بنویسم.مطلب خودم را از آخر به اول شروع می کنمچالش‌های پنهان بسیار بیشتری هم وجود دارد که تا وارد میدان نشوید، عملا متوجه آن‌ها نخواهید شد.مهاجرت تدریجی از یک سیستم legacy، تصور نکنید فقط یک پروژه فنی یا پروداکتی است، ترکیبی از فشار شدید عملیاتی، تصمیم‌گیری های معماری، مدیریت ریسک، تحلیل رفتار سیستم و هماهنگی بین تیم‌ ها و....، اما چیزی که مسلم است، شرکت( متشکل از تیم های مختلف) که در حال انجام چنین کاریه ، در واقع مشغول انجام یک کار بزرگ و ارزشمنده.با این مقدمه میریم سراغ اصل موضوعدر مهندسی نرم افزار به سیستم قدیمی یا سیستمی که سالهاست در حال کار است و هنوز استفاده می شود معمولا سیستم لگیسی میگن.کار واقعی توسعه سیستم، با تبدیل و پیاده‌سازی آن به پایان می‌رسد. هدف اصلی جایگزینی سیستم موجود با سیستم جدید و حذف سیستم موجود یا همان سیستم قدیم از کار روزانه است.سیستم لگیسی موجود به شدت به کسب و کار وابسته است ترکیبی از چندین معماری قدیمی می باشد که DB DRIVEN طراحی شده و قرار است این سیستم با معماری جدید مبتنی بر مایکروسرویس بازنویسی و در نهایت جایگزین بشود.بنابراین صورت مسئله را اینطور تعریف می کنم، روش های جایگزین سیستم جدید با سیستم لگیسی چطور انجام می شود و چه چالش های روبروی ما قرار می گیرد؟برای جایگزینی سیستم قدیم با جدید معمولاً روش‌های مختلفی وجود داره که در ضمن هر کدام دارای مزایا و معایب مربوط به خودشان می‌باشند و انتخاب یکی از روش‌ ها بستگی به نظر طراح سیستم و استفاده‌کنندگان سیستم در رسیدن به اهدافشان دارد، ضمن آنکه میزان سطح ریسکی که یک سیستم می‌تواند تحمل کند، در انتخاب یک روش پیاده‌سازی اهمیت دارد.1.روش ناگهانیدر این روش سیستم قدیم یکباره کنار گذاشته می‌شود و سیستم جدید با سیستم قدیم یا لگیسی جایگزین می‌شود. جهت جلوگیری از وقفه در کار سیستم جاری و عدم کارکرد آن در هنگام جایگزینی سیستم قدیم به سیستم جدید، معمولاً پیاده‌سازی و تبدیل در ساعت‌های غیر کاری و در زمان‌های تعطیل صورت می‌گیرد.این روش یک روش فوری و کم‌خرج است. ضمن آنکه دوباره‌کاری و هزینه‌های تکراری در آن وجود ندارد، در حالی که در صورت عدم کارکرد سیستم جدید هیچ‌گونه پشتیبانی وجود ندارد، در واقع میزان خطرپذیری در این روش بالاست.طبیعتا روش ناگهانی برای سیستم های اینترپرایز خیلی پیشنهاد نمی شود، عملا هم به نظر غیرممکن میاد.2.روش موازیسیستم قدیم و جدید می‌توانند به شکل موازی کار کنند تا نتیجه کار هر دو با هم مقایسه شود و در صورت کارکرد موفقیت آمیز سیستم جدید در یک دوره مشخص بتوان آن را جایگزین سیستم موجود کرد. معمولاً تصمیم‌گیری و تعیین زمان استفاده از سیستم جدید به جای قدیم بر اساس تجزیه و تحلیل از چگونگی کارکرد دو سیستم است.با توجه به کارکرد موازی دو سیستم، هزینه بالاست ولی در عوض استفاده‌کننده حداکثر امنیت را به دست می‌آورد و مطمئن از کارکرد سیستم جدید می شود. استفاده کننده مجبور است یک کار را دوباره انجام بدهد، ولی به دلیل کارکرد موازی دو سیستم ریسک پذیری سیستم پایین است، اگر سیستم جدید نتواند وظایف خود را به خوبی انجام بدهد، می توان از همان سیستم قدیم استفاده کرد. بزرگترین مشکل این روش هم مشخصه دیگه، کاربر مجبور کنیم از هر دو سیستم استفاده کند، البته این خود آبستن یک اشتباه است، زیرا سیستم جدید با سیستمی مقایسه می شود که خودش به دلایلی نمی تواند کارش را به خوبی انجام بدهد.3.روش مرحله به مرحله یا تدریجیدر این روش بعضی از مراحل توسط سیستم قدیم و بعضی دیگر توسط سیستم جدید انجام می‌گیرد و به صورت تدریجی جای مراحل یکدیگر عوض می‌شود و به تدریج و به شکل مرحله به مرحله سیستم جدید جایگزین سیستم فعلی می‌شود.با توجه به این‌که مرحله کار به شکل موازی نیست، در نتیجه هزینه نسبت به روش موازی بالا نمی‌باشد و می‌توان دو سیستم را به صورت مستقل از یکدیگر ارزیابی کرد. بزرگ‌ترین مشکل این روش عدم آگاهی کاربران از استفاده از یک مرحله توسط سیستم جدید یا قدیم است، در نتیجه مشخص نیست که اطلاعات پردازش شده از کدام سیستم می‌باشد.در حال حاضر ما داریم از روش تدریجی استفاده می کنیم، قاعدتا نباید به همین راحتی باشه. چالش های که در مسیر جایگزینی یک سسیتم جدید با قدیم مواجه می شویم:برخی از ذینفعان سیستم قدیمی را ترجیح می‌ دهند، زیرا سال‌ هاست که عملیات خود را بر اساس آن سیستم انجام داده‌اند. به همین دلیل، حتی اگر سیستم جدید از نظر فنی بهتر از سیستم قدیمی طراحی شده باشد، تمایل چندانی به مهاجرت به آن ندارند.از طرف دیگر، تیم توسعه و پشتیبانی تقریبا از روز اول زیر فشار قرار می‌گیرد، چون هم باید سیستم قدیمی را پایدار نگه داره، هم سیستم جدید رو توسعه بدهند و هم بخشی از تحلیل سیستم legacy را انجام دهد.در عمل، توسعه‌دهنده‌ های ارشد یا با تجربه تر ناگزیر وارد فاز تحلیل هم باید بشوند، چون مستقیما با محدودیت‌ها، وابستگی‌ها و رفتارهای سیستم قدیمی درگیر هستند.وقتی سیستم جدید زیربار می رود، بخشی از فرآیندها روی سیستم جدید انجام می‌شود، اما داده‌ها همچنان از طریق سیستم قدیمی وارد می‌شوند. که نیاز به سینک و یکپارچه‌سازی داده‌ها بین دو سیستم را ایجاد می‌کند.اما حفظ یکپارچگی داده‌ها به همین سادگی نیست.داده‌هایی که از سیستم قدیم وارد می‌شوند، ممکن است با مدل کسب و کاری یا محدودیت‌های سیستم جدید سازگار نباشند و باعث ناسازگاری یا رفتارهای پیش‌بینی‌ نشده بشوند.هرچه تعداد کاربران و حجم درخواست‌های دو سیستم به هم نزدیک‌تر شود، فشار روی تیم دیتابیس بیشتر خواهد شد.در این مرحله، تیم باید همزمان consistency، همگام‌سازی داده‌ها، performance و وابستگی‌های بین دو سیستم را مدیریت کند. به نظر من این فشار تا زمانی ادامه پیدا می‌کند که سهم ترافیک سیستم جدید به اندازه‌ای برسد که بتوان بخشی از بار سیستم legacy را حذف کرد یا دست‌کم تراکنش‌های آن را کاهش داد. (خدا داند)نگهداری همزمان دو سیستم، هزینه و فشار عملیاتی قابل‌ توجهی ایجاد می‌کند. مدیران، تیم های فنی، زیرساخت، دیتابیس.از یک نقطه به بعد، تیم توسعه عملا دیگر نمی‌تواند همزمان زیر بار توسعه سیستم جدید و پشتیبانی کامل سیستم قدیمی باقی بماند.سیستم جدید به‌مرور زیر بار واقعی خواهد رفت و طبیعتا رفتارهایی از خود نشان می‌دهد که در محیط تست یا staging قابل مشاهده نبوده. بنابراین باید انتظار تغییرات مداوم، باز طراحی بعضی بخش‌ها و حتی بازنگری در برخی تصمیم‌های اولیه را داشت.خدا به خیر کند.از طرف دیگر، تیم توسعه و پشتیبانی تقریبا از روز اول زیر فشار قرار می‌گیرد چون هم باید سیستم قدیمی را پایدار نگه داره، هم سیستم جدید را توسعه بده و هم بخشی از تحلیل و کشف رفتارهای سیستم legacy را انجام بده.فشارهای پنهای زیاد دیگر هم وجود دارد، مقایسه دو سیستم توسط ذینفعان( کسانی که هزینه را تقبل می کنن)، گاها سبب می شود این فکر ایجاد می شود که چرا اصلا سیستم جدید را راه اندازی کردیم.هزینه ها بالا رفته، دو یا چند سیستم زنده اند، ولی هنوز ارزش سیستم جدید برای ذینفعان کاملا ملموس نشده.مرحله بازنگریمرحله بازنگری به طور رسمی جزئی از توسعه سیستم نیست. هدف این مرحله بازنگری بر کار توسعه سیستمی است که به تازگی به انجام رسیده است. این مرحله شامل دو فعالیت است:اول: بازنگری کوتاه که بلافاصله پس از مرحله پیاده‌سازی صورت می‌گیرد. هدف این بخش کمک به تیم توسعه برای انجام پروژه‌های آینده است. مدیر پروژه و اعضای تیم، پروژه، سیستم جدید را که اخیراً ایجاد شده مجدداً مرور کرده تا احتمالاً تغییری را که مورد نیاز است، شناسایی کرده تا باعث بهبود سیستم در آینده شود.دوم: بازنگری پس از کارکرد که پس از گذشت چند ماه بعد از اتمام سیستم جدید، آن را ارزیابی می‌کنند. هدف از این ارزیابی این است که مشخص شود فعالیت و کارکرد آن در این مدت چگونه و به چه نحوی بوده است و تا چه حدی توانسته فایده یا احتمالاً زیان داشته باشد. در نتیجه این فعالیت، احتمالاً پیشنهادهایی در جهت استفاده بهتر از سیستم ارائه می‌شود.در نهایت، شاید مهم‌ترین نکته این باشه که اساسا مهاجرت(چه سیستمی چه شخصی) از یک سیستم legacy، صرفاً یک پروژه فنی نیست، یک تغییر بزرگ عملیاتی و سازمانیه که فشار آن فقط روی یک تیم یا چند توسعه‌ دهنده باقی نمی‌ ماند.در چنین شرایطی، نقش مدیران فقط تصمیم‌گیری یا پیگیری زمان‌بندی پروژه نیست. حمایت واقعی از تیم فنی، چه از نظر مادی و چه از نظر معنوی، بخشی از الزامات عبور موفق از این مسیر است.بدون اغراق، مهاجرت تدریجی یک سیستم بزرگ، کار سخت و فرسایشی‌ است.در حال تکمیل...</description><category>هادی شجاعیان</category><author>هادی شجاعیان</author><pubDate>Sun, 10 May 2026 00:20:21 +0330</pubDate></item><item><title>تفاوت output، outcome و impact و چطور</title><link>https://virgool.ir/@hadi.sh.pro/تفاوت-output-outcome-و-impact-در-کار-زندگی-dt8c4kriyffg</link><description>خلاصه و مفید میریم به اصل موضوع می پردازیم، تفاوت این سه مورد در چیست و چطور می تونیم از آن استفاده کنیم.Output در کار تیمی (خروجی)محصول مستقیم و قابل‌اندازه‌گیری فعالیت‌ ها یا وظایفه. درواقع، ماحصل بلافصل کاریه که انجام می‌دهیم، مثلاً کدنویسی، طراحی، مستندسازی یا تولید نسخه اولیه نرم‌افزار. عملا فعالیت‌ها یا محصولات ملموسی که تیم تولید می‌کند. می تونیم بگیم سوخت Outcome هستش.مثال بزنم در مورد outputتعداد خطوط کد نوشته‌شده، یا ماژول‌های تکمیل‌شدهویژگی (Feature) جدیدی که به محصول اضافه شدهمستندات فنی یا طراحی رابط کاربریویژگی نگاه output : خروجی معمولاً به‌راحتی قابل‌شمارش یا اندازه‌گیریه، مثلاً با شمارش تسک‌های انجام‌شده یا تعداد فیچرهای ارائه شده در هر اسپرینت.Outcome در کار (نتیجه)Outcome معمولاً روی «ارزش» تمرکز داره، اینکه خروجی تولیدشده چه مشکلی را حل کرده یا چه بهبودی ایجاد کرده.مثال بزنمافزایش رضایت کاربران به‌دلیل اضافه شدن یک قابلیت مهم در نرم‌افزارکاهش زمان پاسخ‌گویی سرور پس از بهینه‌سازی کدویژگی نگاه outcome ی: اندازه‌گیری اغلب به شاخص‌ های عملکردی (KPIs) یا داده‌های تحلیلی وابسته است (مثلاً بررسی نرخ ریزش کاربران قبل و بعد از اضافه‌شدن فیچر جدید).Impact (تأثیر یا اثرگذاری کلان)Impact سطحی کلان‌تر از «نتیجه» است که نشون میده تغییرات ایجادشده چه اثرات عمیق یا پایدار در جامعه، بازار، استراتژی کلان شرکت یا حتی صنعتی که شرکت توش فعالیت می‌کنه، داشته است. Impact فراتر از یک «دوره کوتاه» یا «مقیاس کوچک» است و غالباً در بلندمدت ارزیابی می‌شود.مثال بزنمتغییر جایگاه شرکت در بازار نرم‌افزار (مثلاً تبدیل شدن به یکی از پیشروان صنعت)تأثیر مثبت بر جامعه: ایجاد اشتغال، بهبود زندگی مشتریان یا حل یک مشکل فراگیر اجتماعیتحول فرایندهای یک سازمان بزرگ که مشتری شرکت شماست (مثلاً یک سیستم سازمانی که کیفیت خدمات دولتی رو ارتقا داده است).یک تیم چطور باید به این سه ارتباط برقرار کند و حرکت کند؟برای اینکه بتونیم از این سه گانه در تیم استفاده کنیم، نیازه کمی فرهنگ کار تیمی را تغییر بدهیم و نگاهی جدید را نهادینه کنیم.تغییر ذهنی: ارزش چیست؟ ارزش چیزی است که ذینفع دنبال آن است تا حس رضایت داشته باشد. آیا ارزش همیشه به معنی کار خوب انجام دادن است؟ جواب =&gt; خیر است. گاهی ارزش در انجام کار نادرست است. به عبارتی همیشه نباید به دنبال بار مثبت معنی واژه ارزش باشیم.تغییر ذهنی: به تیم آموزش بدیم که «کمتر کار کردن برای نتیجه‌ ی بهتر» یک موفقیت است، نه تنبلی. اگر با حذف یک فیچر، هزینه‌ی نگهداری سیستم کم می‌شود، این &#34;ارزش&#34; است، حتی اگر خطی کد زده نشده باشد.تغییر ذهنی: نگاه کار درست فنی و پروداکتی را کنار بزاریم و به جای آن به چیزی فکر کنیم که گفتنش باعث میشه ذینفع لبخند بزنه. مگر اینکه به دنبال لبخند ذینفع نباشیم و بخواهیم بعد از مدتی قطع همکاری داشته باشیم. البته این مورد با توجه به شرایط می تونه متفاوت باشه. لازمه این کمی باهوش بودن است.تغییر ذهنی: تصمیم خوب، تصمیمی است که قابل برگشت باشد. rollback داشته باشد، در غیر اینصورت به فنا می ریم.تغییر ذهنی: بهترین فیچر، فیچری است که بدون اینکه کسی متوجه بشود حذف می شود =&gt; یعنی این فیچر از روز اول اضافی بوده است.تغییر ذهنی: بهترین معماری، معماری است که براحتی بتوانی آن را به هم تیمی توضیح بدهی. اگر نتونی یک سیستم را به سادگی توضیح بدی یعنی پیچیدگی و پیچیدگی یعنی خود ب...تغییر ذهنی: کوچینگ و منتورینگ، تولید ارزش نامحسوس است. زمانی که افراد با تجربه تیم را راهنمایی می‌کنند، ارزش ایجاد می‌شود حتی بدون اینکه خروجی قابل مشاهده تولید شود. رشد دانش تیم = ارزش بلندمدت.تغییر ذهنی: تست و مانیتورینگ، خودشان تولید ارزش هستند. مانیتورینگ روزانه خود خود ارزشه.تغییر ذهنی: ایجاد تیم های empower خود ارزش است نه ایجاد تیم های سفارش گیر.تغییر ذهنی: مدیریت یک کار زمینی است اما رهبری ی کار آسمانی، بنابراین رهبری و ساختن نیروهای وفادار و تصمیم گیر خود ارزشه.</description><category>هادی شجاعیان</category><author>هادی شجاعیان</author><pubDate>Sat, 09 May 2026 23:30:36 +0330</pubDate></item><item><title>مفهوم کیفیت و اهمیت آن در نرم‌افزار- بخش اول</title><link>https://virgool.ir/@hadi.sh.pro/کیفیت-نرم-افزار-بخش1-dyl4rdnptc9l</link><description>کیفیت مفهومی است که شاید در نگاه اول ساده به نظر برسد، اما تعریف دقیق آن همیشه آسان نیست. کیفیت چیزی است که وقتی آن را می‌بینید، می‌شناسید، اما ارائه یک تعریف صریح و کامل از آن دشوار است. با این حال، در نرم‌افزارهای کامپیوتری، تعریف کیفیت ضروری و حیاتی است، زیرا بدون آن نمی‌توان نرم‌افزاری قابل اعتماد و ارزشمند تولید کرد.محصول با کیفیت بر رضایت مشتری تمرکز داردبرای ارائه کیفیت ما باید به دنبال درد واقعی مشتری باشیم، چه چیزی زندگی و کار مشتری را سخت کرده است، ممکنه ما چندین درد را شناسایی کنیم، از بین مشکلات مختلف، کدام‌ ها آن‌قدر مهم هستند که مشتری حاضر باشد برای حل‌شان وقت یا پول بدهد. اولویت بندی را نباید دست کم گرفت، یک محصول نرم‌افزاری زمانی واقعاً با کیفیت است که بر اساس شناخت دقیق دردهای مشتری و اولویت‌بندی درست آن‌ها ساخته شود. در این صورت از نظر مشتری ما توانسته ایم محصول با کیفیتی ارائه بدهیم.چرا کیفیت اهمیت دارد؟تیم‌های نرم‌ افزاری می‌توانند کار را به درستی انجام دهند یا بارها همان کار را تکرار کنند. تمرکز بر کیفیت باعث کاهش دوباره‌کاری‌ها می‌شود، هزینه‌ها کاهش می‌یابد و زمان ارائه محصول به بازار بهبود پیدا می‌کند. برای دستیابی به نرم‌ افزار با کیفیت بالا، چهار فعالیت کلیدی باید رخ دهد:فرآیند و کار مهندسی نرم­ افزار اثبات شده که زیرساخت مناسبی برای توسعه محصول فراهم کند.مدیریت منسجم پروژه برای هماهنگی تیم و کنترل پیشرفت.کنترل کیفیت جامع که هر مرحله از توسعه را تحت بررسی قرار دهد.وجود زیرساخت برای تضمین کیفیت که استانداردها و رویه‌های مشخصی برای حفظ کیفیت فراهم کند.محصول کار با کیفیت چیست؟نرم ­افزاری که نیازهای مشتریاش را برآورده می­سازد، به طور صحیح و با قابلیت اطمینان کار می­کند و برای کسانی که از آن استفاده می­کنند، ایجاد ارزش می­کند. امروزه، کیفیت نرم ­افزار همچنان به عنوان یک مشکل باقی است، ولی چه کسی را باید ملامت کرد؟ مشتریان، توسعه دهندگان را سرزنش می­کنند و استدلال می­کنند که شیوه­های نامنظم منجر به نرم ­افزارهایی با کیفیت پایین می­شود. توسعه دهندگان، مشتریان (و سایر ذی­نفع­ها) را ملامت می­کنند و استدلال آن­ها هم این است که تاریخ تحویل­های غیر موجه و جریان پیوسته­ی تغییرات، آن­ها را وادار می­سازد تا نرم ­افزار را پیش از اعتبارسنجی کامل تحویل دهند. حق با کیست؟ هر دو - و مسأله همین استدیدگاه‌های مختلف درباره کیفیتدیوید گاروین، استاد هاروارد، کیفیت را یک مفهوم چندوجهی و پیچیده می‌داند و آن را از پنج دیدگاه بررسی می‌کند:دیدگاه متعالی: کیفیت چیزی است که فوراً آن را تشخیص می‌دهید، اما تعریف صریحی برای آن وجود ندارد.دیدگاه کاربری: کیفیت بر اساس اهداف و نیازهای کاربر نهایی سنجیده می‌شود. اگر محصول بتواند نیازهای کاربر را برآورده کند، کیفیت بالایی دارد.دیدگاه سازندگان: کیفیت بر اساس انطباق محصول با مشخصات طراحی شده سنجیده می‌شود.دیدگاه محصولی: کیفیت به ویژگی‌ها و قابلیت‌های ذاتی محصول مربوط می‌شود، مانند کارایی، قابلیت اطمینان و امنیت.دیدگاه ارزش‌محور: کیفیت بر اساس ارزش پولی که مشتری حاضر به پرداخت آن است، سنجیده می‌شود.می توان اینگونه هم تعریف کرد اگر کاربر رضایت نداشته باشد، هیچ چیز دیگری اهمیت ندارد.دومارکو نیز بر این باور است که «کیفیت یک محصول، تابعی است از این که چقدر می‌تواند زندگی کاربران را بهتر کند». بنابراین حتی اگر نرم‌ افزار گاه به گاه خطا داشته باشد، مادامی که ارزش واقعی ایجاد کند، کیفیت آن قابل قبول است. . دیدگاه نوین درباره­ی کیفیت نرم ­افزار مستلزم توجه به رضایت مشتری و نیز پیروی از نیازمندی­های محصول است.تعریف کیفیت نرم‌ افزارحتی بی حال­ترین توسعه دهندگان نرم­افزار نیز قبول دارند که تولید نرم­ افزارهای با کیفیت بالا، هدفی مهم است. ولی کیفیت نرم­ افزار را چگونه تعریف کنیم؟کیفیت نرم‌ افزار به معنای تولید نرم‌افزاری مفید، قابل اعتماد و ارزش‌آفرین است. برای دستیابی به این هدف، سه بخش کلیدی وجود دارد:فرآیند نرم­ افزار اثربخش، زیرساختی را بنا می­کند که هرگونه تلاش برای ساخت یک محصول نرم ­افزاری با کیفیت بالا را پشتیبانی می­کند. جنبه­های مدیریتی فرآیند، موازنه­ها و نقاطی برای بررسی ایجاد می­کنند که به پروژه کمک می­کند تا از آشوب - یک عامل کلیدی در ضعف کیفیت - در امان بمانند. کار مهندسی نرم ­افزار به سازنده امکان می­دهد تا مسأله را تحلیل کرده راهکاری مستحکم طراحی کند که هر دوی این­ها در ساخت نرم ­افزار با کیفیت بالا، اهمیت حیاتی دارند. سرانجام، فعالیت­های چتری نظیر مدیریت تغییر و بازبینی­های فنی به اندازه­ی هر بخش دیگری در کار مهندس نرم ­افزار با کیفیت در ارتباط هستند.محصول مفید، محتوا، قابلیت­ها و ویژگی­هایی را تحویل می­دهد که مطلوب کاربر نهایی هستند، ولی تحویل این موارد به شیوه­ای مطمئن و عاری از خطا نیز به همان اندازه دارای اهمیت است. یک محصول مفید همواره نیازمندی­هایی را که به صراحت توسط طرف­های ذی­نفع بیان شده است، پاسخ می­دهد. به علاوه، مجموعه نیازمندی­های ناگفته­ای را که از همه­ی نرم ­افزارهای با کیفیت بالا انتظار می­رود (نظیر سهولت استفاده) پاسخ می­دهد.یک نرم­ افزار با کیفیت بالا با افزودن ارزش برای تولید کننده و کاربر، هم برای سازمان نرم­افزاری و هم برای جامعه­ی کاربران نهایی مزیت فراهم می­کند. سازمان نرم ­افزاری از آن رو ارزش افزوده کسب می­کند که نرم ­افزار با کیفیت بالا به تلاش کمتر برای نگهداری، اشکال زدایی کمتر و پشتیبانی کمتر برای مشتری نیاز دارد. این موضوع به مهندسان نرم­ افزار امکان می­دهد تا وقت بیشتری را صرف ایجاد اپلیکیشن­های جدید کنند و کمتر به دوباره کاری بپردازند. جامعه­ی کاربران از آن رو ارزش افزوده کسب می­کنند که اپلیکیشن یک قابلیت مفید فراهم می­سازد، به طوری که یک فرآیند تجاری خاص با سرعت بیشتری انجام شود.ابعاد کیفی نرم‌ افزاردر سال ۱۹۸۷، دیوید گاروین مدل خود را معرفی کرد تا کسب‌وکارها و توسعه‌دهندگان به جای تمرکز صرف بر اجتناب از خطا، بر رضایت واقعی مشتری تمرکز کنند.مک‌کال و والترز نیز عوامل کیفیت نرم‌ افزار را در سه دسته اصلی ارائه کردند:ویژگی‌های عملیاتی: عملکرد روزمره نرم‌ افزار و تجربه کاربری.توانایی تغییرپذیری: قابلیت نگهداری و تطبیق نرم‌ افزار با تغییرات نیازمندی‌ها.تطبیق‌پذیری با محیط‌های جدید: قابلیت حمل و استفاده در محیط‌ها و شرایط مختلف.این مدل‌ها به مهندسان نرم‌ افزار کمک می‌کنند تا رضایت کاربر را از طریق کیفیت واقعی محصول تضمین کنند.ارزیابی کیفیت نرم‌ افزاربرای انجام ارزیابی، شما و تیم شما باید ویژگی­های خاص و قابل اندازه­گیری (با حداقل قابل تشخیص) از واسط را اداره کنید. ممکن است وظایف شما بر پاسخ به سوالات زیر متمرکز باشد:·کاربران با چه سرعتی می­توانند تعیین کنند آیا محصول می­تواند برای کمک به انجام وظیفه­ی آن­ها استفاده شود یا خیر (مناسب بودن)؟·چقدر طول می­کشد تا کاربران یاد بگیرند از عملکردهای مورد نیاز سیستم برای تکمیل کار خود استفاده کنند (قابلیت یادگیری)؟·آیا کاربر می­تواند نحوه­ی استفاده از سیستم را در نشست­های آزمون بعدی بدون نیاز به یادگیری مجدد به خاطر آورد (قابلیت یادگیری)؟·چقدر طول می­کشد تا کاربران وظایف را با استفاده از سیستم کامل کنند (عملیاتی بودن)؟·آیا سیستم سعی می­کند از خطای کاربران جلوگیری کند (محافظت از خطا)؟·آیا سیستم به کاربران اجازه می­دهد اعمالی را خنثی کنند که ممکن است منجر به خطا شوند (محافظت از خطا)؟·آیا پاسخ­ها به سوالات مربوط به ظاهر واسط کاربری پاسخ­های مطلوبی هستند (زیبایی شناختی)؟·آیا واسط با انتظاراتی که در قوانین طلایی( در مطلبی جدا به قوانین طلایی خواهیم پرداخت ) بیان شده است مطابقت دارد (دسترس پذیری)؟·آیا واسط کاربری با اقلام چک لیست مورد نیاز برای کاربران هدف مطابقت دارد (دسترس پذیری)؟به موازات توسعه­ی طراحی واسط، تیم نرم ­افزار، نمونه­ی اولیه­ی طراحی را مرور می­کند و سوالات مذکور را می­پرسد. اگر پاسخ به اغلب این سوالات مثبت باشد، احتمالاً واسط کاربری کیفیت بالایی از خود نشان می­دهد.معضل کیفیت نرم‌ افزارپرتران مایر در مصاحبه‌ای به معضل کیفیت اشاره می‌کند: اگر نرم‌ افزاری بی‌کیفیت ساخته شود، خریداری نخواهد داشت و اگر بیش از حد برای بی‌نقصی تلاش شود، زمان و هزینه از دست می‌رود و بازار از دست خواهد رفت. بنابراین باید به تعادلی رسید که نرم‌ افزار «به قدر کافی خوب» باشد؛ یعنی کیفیتی داشته باشد که در ارزیابی اولیه رد نشود و در عین حال تکمیل آن مستلزم هزینه و زمان بی‌نهایت نباشد.بسیاری از شرکت‌های بزرگ همین کار را می‌کنند: نسخه‌ 1.0 را با اشکالات شناخته‌شده عرضه می‌کنند و در نسخه‌های بعدی کیفیت را بهبود می‌دهند. آن‌ها می‌دانند که مشتریان اعتراض خواهند کرد، اما سرعت ورود به بازار را مهم‌تر می‌دانند.نرم‌ افزار «به قدر کافی خوب» یعنی محصولی که ویژگی‌های اصلی را با کیفیت بالا ارائه می‌دهد، هرچند در بخش‌های فرعی خطا داشته باشد. فروشنده امیدوار است کاربران از این خطاها چشم‌پوشی کنند.با این حال، این رویکرد ریسک‌برانگیز است. برای شرکت‌های کوچک، عرضه نرم‌ افزار ناقص می‌تواند باعث از بین رفتن اعتبار و ورشکستگی شود. در برخی حوزه‌های حساس (مانند نرم‌ افزار خودرو، مخابرات) این کار حتی می‌تواند خطرناک یا غیرقانونی باشد.هر فرآیند نرم‌ افزاری باید معیارهایی روشن برای تعیین مفهوم «واقعاً خوب» در دامنه‌ خاص داشته باشد. بنابراین، فلسفه «به قدر کافی خوب» تنها در برخی زمینه‌های محدود کاربرد دارد و باید با احتیاط به کار گرفته شود.منابع: Software Engineering :Bruce Maxim , Roger S. Pressman، گفتگو با برتراند مایر </description><category>هادی شجاعیان</category><author>هادی شجاعیان</author><pubDate>Thu, 28 Aug 2025 18:30:43 +0330</pubDate></item><item><title>من کی هستم</title><link>https://virgool.ir/@hadi.sh.pro/من-کی-هستم-ugvhamfpoi53</link><description>هادی شجاعیانمن گم شدمدر خودمدر ارتباط با آدماتوی خلوتموسط شلوغی و سر و صداوقتایی که حرف می‌زنم یا سکوت می‌کنماونجایی که بهم توجه می‌کنن یا جایی که کسی حواسش بهم نیستمن گم شدمانگار هیچ حس تعلقی به هیچ‌جا و هیچ چیز ندارماصلاً من کی‌ام؟!من، اون نقاشی‌هایی‌ام که کشیدمخط خطی‌هایی که کردمکتاب‌هایی که خوندمفیلم‌هایی که دیدمآهنگ‌هایی که شنیدممن، حرف‌هایی‌ام که زدمفکرهایی که کردمسفرهایی که رفتمعکس‌هایی که گرفتمچیزهایی که نوشتمسیگارهایی که کشیدماون آدم‌هایی که دیدمارتباطاتی که شکل دادممن استرس‌هایی‌ام که داشتمهمۀ خندیدن‌ها، گریه کردن‌ها و بغض‌های قورت دادهمن، اون لرزش دستی‌ام که گاه و بیگاه میاد سراغمشایدم نه!من، نقاشی‌های نکشیده‌امخط خطی‌های نکردهکتاب‌های نخوندهفیلم‌های ندیدهآهنگ‌های نشنیدهمن، حرف‌های نزده‌امفکرهایی که نکردمسفرهایی که نرفتمعکس‌هایی که نگرفتمچیزهایی که ننوشتمسیگارهای نصفه رها شدهآدم‌هایی که ندیدمارتباطات و دوستی‌هایی که شکل ندادممن، نفس‌های نکشیده‌امکارهای ناتماممن، تمام راه‌های نرفته‌امتجربه‌های نکردهترس‌هایی که همیشه جلومو گرفتهمن، زمان‌هایی از دست رفته‌امحرف‌های شنیده نشدهموسیقی نواخته نشدهمن، ابرازهای نکرده‌اماحساسات سرکوب شده‌اممن، همۀ اون لحظاتی‌ام که از اعماق وجودم خواستم حرفی بزنم ولی نزدماحساس نگفته‌اممن، حتی اون احساسی‌ام که ابرازش کردم و پشیمون شدممن، روزنه امیدمباریکه نورتاریکی عمیقمن، عزت نفس له شده‌امسرزنشی‌ام که هیچ‌وقت رهام نکردهمن، آرزوهای فراموش شده‌امرویاهای به واقعیت نپیوستههمۀ تصویرهای ذهنی خودمم که فقط یه تصویر ذهنی موندنمن، فریاد بی‌پایانمسکوت ابدیتاب آوردن طولانیهمۀ کابوس‌های هولناکی که رهام نکردنمن، روح به پرواز دراومده‌امسقوط یک خیالمن، جای خالی اون آدممدست سردی‌ام که گرفته نشدمن، احساس تنهایی‌ام که هر لحظه میاد سراغممن، اون لحظه‌های به یاد آورده شده‌امهمۀ لحظاتی‌ام که فراموش شدممن، انتظارمزندگی رسیده به مرگممن، ترسمشجاعتپشیمونیغمبغضعشقنفرتدوست داشتنپوچیمن، نظم و هرج و مرجممن، همه اینا هستم و نیستممن گم شدم و نمی‌دونم چه جوری خودمو پیدا کنمبلد نیستمشایدم نباید خودمو پیدا کنمباید صبر کنم تا پیدا شمیا شایدم اصلاً قرار نیست که پیدا شممن، فاصله بین گم شدن و پیدا شدنم.من هادی شجاعیان هستم</description><category>هادی شجاعیان</category><author>هادی شجاعیان</author><pubDate>Fri, 29 Nov 2024 00:19:20 +0330</pubDate></item><item><title>کجا کار برم کار کنم، استارتاپی یا شرکت های بزرگ؟</title><link>https://virgool.ir/@hadi.sh.pro/کجا-کار-برم-کار-کنم-استارتاپی-یا-شرکت-های-بزرگ-bciliclqyd9z</link><description>این متن تجربه شخصی من است.Power By AIاستارتاپ در کدام مرحله( Stage ) باشه مهمه، استارتاپ خوب و بد هم بحثش جدا. شرکت بزرگ هم منظور شرکت های که تقریبا به ثبات رسیدن.-1.استارتاپی =&gt; امنیت شغلی کمتر0.شرکت های بزرگتر =&gt; امنیت شغلی بیشتر1. استارتاپی =&gt; شما بیشتر درگیر کار تکنیکال هستید.( شبیه اوایل فیلم شبکه اجتماعی)2.شرکت های بزرگتر =&gt; بیشتر باید درگیر نمایش خودت باشید.( فیلم Don&#39;t Look Up )3. استارتاپی =&gt; خیلی درگیری سیستم بوروکراتیک و ساختار رایج در شرکت ها نمیشی.( فیلم گرگ وال استریت)4.شرکت های بزرگتر =&gt; با فرهنگ حاکم بر کشور و واقعیت های خلقیات مردم کشوری که داری داخلش زندگی می کنی بیشتر آشنا می شی و این ممکنه باعث بشه خودتو بهتر بشناسی.( سریال قهوه تلخ )5.استارتاپی =&gt; سرعت بالا( تلگرام )6.شرکت های بزرگتر =&gt; به شدت کند( واتساپ )7.استارتاپی =&gt; کار تیمی( فیلم سیزده یار اوشن )8.شرکت های بزرگتر =&gt; همه چیز شبه هستش. شبه کار تیمی و...( فیلم سابوتاژ )9.استارتاپی =&gt; انگیزه بالا، شور، اشتیاق( فیلم فارست گامپ )10.شرکت های بزرگتر =&gt; زور میزنن انگیزه تولید کنن و باید بگردی دنبالش. ( فیلم در جستجوی خوشبختی )11.استارتاپی =&gt;اینجا همه تلاش می کنن.( فیلم مانی بال)12. شرکت های بزرگتر =&gt; اینجا همه تلاش می کنن(خنده). قدیمی ها تلاش خودشون کردن الان استراحت می کنن، نوبت نیروهای تازه وارد هستش.( فیلم the big short )13.استارتاپی =&gt; براحتی با هم دوست می شید ( فیلم Toy Story )14.شرکت های بزرگتر =&gt; کوچکترین حرف و رفتارت می تونه تا آخرین روز کاریت برچسب بشه و به جزئیات حرفات ممکنه خیلی توجه بشه.( فیلم پنجره پشتی از هیچکاک )15.شرکت های استارتاپی =&gt;ممکنه به زودی درگیری Scale نشی. ( فیلم The Founder)16.شرکت های بزرگتر =&gt; فرصت تجربه پروژه Large Scale بشی.البته اگر به زودی بزارن درگیر بشی. ( فیلم The Internship )17.شرکت های استارتاپی =&gt; افراد تیم روحیاتشون مشخص تر است و معلومه برای چی دارن کار می کنن.( فیلم اوپنهایمر )18.شرکت های بزرگتر =&gt; زور میزنن( همیشه هم زور نمیزنن گاهی کاری ندارن) تیم یکدست بشه، اما سخت این اتفاق می افته و اعضای تیم حتی دقیق نمیدونن دارن چکار می کنن.( فیلم Glengarry Glen Ross )19.شرکت های استارتاپی =&gt; به علت کوچیک بودن تیم، میتونی از تمام لایه های بیزنس مطلع بشی و یاد بگیری.20.شرکت های بزرگتر =&gt; براحتی نمیتونی از کسی چیزی یاد بگیری و کسی هم براحتی کارش رو واست توضیح نخواهد داد.21.شرکت های استارتاپی =&gt; ممکنه خیلی دیپ نشی در یک موضوع.22. شرکت های بزرگتر =&gt; تقریبا فقط روی کار و تخصص خودت هستی.23. شرکت های استارتاپی =&gt; ساختار فلت(تر)24. شرکت های بزرگتر =&gt; ممکنه ظاهر فلت باشه ( اما فیلم پلتفرم )** به صورت خلاصه اگر سرتون درد میکنه برای چالش و می خواهید بزرگ فکر کنید، از لایه های مختلف بیزنس متوجه بشید برید استارتاپ، اگر بلد هستید و حوصله دارید رفتارهای سازمانی در پیش بگیرید خوب می تونید بریم سازمان ها بزرگتر. البته در نهایت هر دو تجربه ای متفاوت هستند. اما بهتره مراقب باشید ممکنه روی رودمپ کاری تاثیر بزاره. فرمول مشخصی وجود نداره.اشخاصی می شناسم سالها کار سازمانی کردن و در نهایت برای خودشون استارتاپ زدن، اشخاصی هم هستند که وارد سازمان ها شدند و اتمسفر حاکم برای سازمان ها به تار و پورد شخص ورود کرده و دیگه نمی تونه و یا سخت می تونه جدا بشه.</description><category>هادی شجاعیان</category><author>هادی شجاعیان</author><pubDate>Fri, 30 Aug 2024 02:21:36 +0330</pubDate></item><item><title>محیط کاری سمی یا مافیایی چیست و چطور بازی کنیم؟</title><link>https://virgool.ir/@hadi.sh.pro/محیط-کاری-سمی-یا-مافیایی-چیست-و-چطور-بازی-کنیم-jfh80ksx7p1r</link><description>محیط کار سمییک محیط کاری سمی یا نامناسب، محل کاری است که در آن کارکنان به دلیل عوامل مختلفی دچار استرس، ناراحتی و نارضایتی می‌شوند، اوووف شایعه پراکنی هم به نظرم خیلی زیاده.چرا میگم مافیایی چون در محیط های سمی مدیران تصور می کنن در حال بازی مافیا هستند و رفتارهای مافیا گونه دارند تا در نهایت تیم خودش بتونه برنده بشه.محیط کاری سمی یا مافیایی چه ویژگی هایی داردمدیران یا مدیریت نادرست( پدر خوانده های بی اصالت ): بدون توجه به نیازها و مشکلات تیم، تنها به اهداف خود توجه می‌کنند. همیشه گرسنه هستند. تا دلت بخواد ادا.عدم شفافیت: تصمیم‌گیری‌های پشت پرده و بدون اطلاع‌رسانی به کارکنان. اوووف این خود بگ...یی هستش. وقتی شفافیت نباشه یعنی قرار اونجا شایعه زیاد باشه، رانت اتفاق بیافته، کارهای خوبت به ندرت دیده بشه. اصل خود مافیا از همین عدم شفافیت ظهور میکنه.عدم حمایت: نبودن پشتیبانی و راهنمایی از سوی مدیریت و همکاران، در این چنین محیط هایی طبیعی هستش که حمایتی وجود نداشته باشه، چون پدرخوانده بی اصالت قطعا فقط از خودش و تیم نزدیک به خودش حمایت میکند، گرسنه ای که سیر نمی شود.عدم پیشرفت: نبود فرصت‌های رشد و توسعه حرفه‌ای. این دیگه خیلی زوره. اما واقعیت هستش.تبعیض: برخورد نابرابر با کارکنان به دلیل جنسیت، نژاد، مذهب یا سایر عوامل. تا دلت بخواد.همکاران نینجا: همکارانی که تمام روز رو به جای کار کردن، در حال نقشه کشیدن برای فرار از مسئولیت‌ها هستند.مسئله اینجاست در چنین محیط هایی چکار کنیم، فرار کنیم، بسازیم، با ترس برای از دست دادن حقوق بمانیم، مثل خودشان بشیمعملا کار خاصی نمیشه کرد، چون شرکت و محیط کاری بر پایه همین سمی بودن در حال گذران خود است. بنابراین خیلی نباید زور زد. کاری نمیشه پیش برد. پس چکار کنیم؟ در اولین فرصت فرار کنیم.البته فرار کردن به این معنی نیست که خیلی سریع تصمیم به رفتن بگیریم. هر شرکتی موقعیت هایی برای شخص فراهم می کند. تارگت زمانی مشخص کنیم، در آن پریود زمانی به شرکت خدمت کنیم و یاد بگیریم و در همین حین حواسمون به سایر موقعیت ها باشه. خودمان را برای موقعیت بهتر آماده کنیم.</description><category>هادی شجاعیان</category><author>هادی شجاعیان</author><pubDate>Mon, 22 Jul 2024 02:34:17 +0330</pubDate></item><item><title>از عملکرد ضعیف به عملکرد بهتر در مسیر کاری، از گرفتگی به رهایی</title><link>https://virgool.ir/@hadi.sh.pro/از-عملکرد-بهتر-به-عملکرد-ضعیف-تر-در-مسیر-کاری-ریدم-ریدی-رید-ivnd6hfe56fl</link><description>صحنه ای از فیلم قوی سیاه، در آینه چی می  بینیاین مطلب بخشی از نوشته من است در سال 1400 که امروز منتشر کردم. این نوشته یک گفتگوی درونی است که تبدیل به کلمات شده است.برای نمایش عملکرد بهتر از دو فیلم کمک می گیرم تا برسیم به مسئله خودم و یا خودمان‌.نوشته خودم را با 2 جمله از یونگ آغاز می کنمیونگ در جایی میگه  &#34; آدمها همانقدر آزاد هستند که ذهنشون بهشون اجازه میده &#34; و &#34; آدمها وقتی به سلامت روان می رسند که با سایه خودشان ترکیب بشوند&#34;.حال و هوایی پیچیدهیک تغییر مثبت که پیامد جدی آن افسردگی بود، حال سینوسی با لنگ های بسیار گشاد. تمرینی برای رهایی که دوست داری موها رو بتراشی و بعدش بری سراغ پوست بدنت چرا که شاید مسیر رهایی ذهن از جسم بگذره، نمیدونم شاید. در همین حین با جنبه هایی از خود آشنا می شوی که اصلا و ابدا حس نمی کردم اینگونه بیمار گونه و ولع وار در حال زیست در من است و گویا قسمت دیگر من زندگی خودش را در نابودی قسمت دیگر من طلب می کند. فکر می‌کنم برای شناخت خودمان می تونیم به شغل و نحوه چگونگی انجام تسک ها دقت کنیم، مثل آینه ای که میشه خودت را در آن پیدا کنی.نحوه چگونگی انجام کارها.( من کلی مشکل در انجام تسک ها که شخصیت من را ساخته بود و نیاز داشت تغییر کند). بگذریم در همین فکر بودم که خودم را در نینا و اندرو( در ادامه با این دو شخصیت آشنا خواهید شد)و فیلم فایت کلاب پیدا کردم، همان لحظه که حس میکنی لول آپ شدی متوجه سنگینی کوله پشته ای می شوی که پر شده از گذشته ای که نیاز به ترمیم دارد. دوباره به قول یونگ وقتی کسانی تو را آزار می دهند، باعث می شوند با جنبه های جدیدی از خودت آشنا بشی که قبلا ناشناخته بودن.این یک نوشته شخصی است=&gt; یک نظر شخصیوقتی صحبت از تغییر عملکرد ضعیف به عملکرد بهتر میشود نمی تونیم فیلم قوی سیاه و شلاق را نادیده بگیریم. در فیلم قوی سیاه با دختری جوان به نام نینا که رقص باله انجام می دهد آشنا می شویم و در فیلم شلاق با پسری به نام اندرو که نوازنده درام است روبرو می شویم. هر دو شخصیت( نینا و اندرو ) نقاط مشترک زیادی دارند که صد البته قرار نیست به همه آنها بپردازیم.نینا و اندرو هر دو گیر کرده در سایه ای هستند که یکی توسط پدر و دیگری توسط مادر برای آنها خلق شده است.( نمی‌دانم واژه خلق کردن در اینجا درست است یا نه) نینا به دنبال رویایی است که مادرش برای او ساخته بنابراین سبک زندگی خودش را با دست فرمان مادرش جلو می برد، ساید افکت این زندگی را در رقص باله نینا  و زندگی شخصی قابل مشاهده است.(اضطراب، وسواس). آنطرف در فیلم شلاق پسر داستان که اندرو نام دارد برای اینکه مانند پدرش‌ نشود در حال به فنا دادن زندگی خود است و سخت در حال تلاش اما با یک تفاوت اندرو برای رضایت مربی خودش درام میزند، یا دست کم میشه اینطور گفت ستاره قطبی اندرو لبخند مربی است اما چشمای نینا به مادرش است.اگر قصد کنیم خیلی فلسفی  و روانشناسی به قضیه نگاه نکنیم( البته علمش هم ندارم ) و فقط به دنبال یک واژه باشیم تا حول آن به دنبال عملکرد بهتر باشیم، واژه رهایی را به عنوان محوریت اصلی گفتگو به وسط می کشیم.الان که دارم می نویسم در حال گوش دادن به این موسیقی هستم Estas Tonne ، پیشنهاد می کنم حتما گوش بدید. لینک یوتیوباما داستان فیلم ما به اینجا ختم نمی شود، برای هر دو شخصیت( نینا و اندرو ) یک اتفاق یکسان رقم میخورد، هر دو در یک اجرای مهم و آخر خراب می کنن، علمکرد بسیار ضعیفی از خودشون نشان می دهند، بدون اعتماد به نفس و با ترس در حال اجرای نمایشی هستند که زمان زیادی برای آن تلاش کردند.البته کارگردان ما را به عنوان ببینده متوجه می کند که هر دو شخصیت استعداد خوبی دارند و می تونیم روی مهارتشون حساب کنیم اما متاسفانه نمی توانند رضایت کامل مربی های خودشان را بدست بیاورند، چرا؟ جواب در اضطراب و عدم رهایی است. انصافا از کنار نکته های مربی نینا نمیشه براحتی گذشت. در تمام فیلم جدال نینا با شخصیت دیگر خود را به خوبی مشاهده میکنیم و به وضوح نتیجه این جدال مشخص می شود، استرس، عملکرد ضعیف، کمبود اعتماد به نفس، وسواس،  طوری که بیننده را هم عصبی می کند.به صورت خلاصه هر دو شخصیت در نهایت در یک جدال سخت با قسمت دیگر خود طعم پیروزی که با مزه رهایی است را حس می کنن و به رهایی می رسند.( فیلم را مشاهده کنید )در یک جمله نینا و اندرو بعد از بدست آوردن رهایی عملکرد واقعی خودشان را نشان می دهند و آنجاست که ناخودآگاه ببیننده لبخند می‌زند و این یعنی رهایی برای ما همیشه حس خوبی دارد.حالا بریم سراغ روزمرگی های خودمان، چی میشه که استارتاپ ها جذاب میشن و تیم سازی اهمیت پیدا می کند؟ از کار کردن در محیط هایی خشک و بی روح و لباس های اتو کشیده که سعی می کردند با جداسازی کارمندان از یکدیگر به امید کار بیشتر( که البته نتیجه آن جر خوردگی و حس انزجار بود ) به محیط هایی برسیم که کاملا برعکس آن عمل می کند. تا جایی پیش می رویم که میتونی دست سگت رو بگیری و ببری شرکت و کار کنی. شاید دلیلش رهایی باشه، رهایی از اینکه حس نکنی داری برای کسی کار می کنی ( مثل اندرو برای رضایت مربی ) و حس اینکه قرار نیست رضایت افرادی را بدست بیاوری و رفتارهایی که مثلا تو مهم هستی، تو با ارزش هستی. اما واقعا اینطور نیست رضایت را در هر سطحی که برامون تعریف کنن می خواهیم همان سطح را تاچ کنیم. مثل اندرو که برای رضایت مربی درام میزند و نینا که برای رضایت مادرش باله می کرد و این باعث شده بود با دو شخصیت کاملا استرسی و اضطرابی طرف باشیم که همیشه در طول فیلم عملکرد ضعیف تر از استعداد خودشان را به نمایش می گذاشتند.وقتی به خودم نگاه می کنم می بینم هر کجا که به حال خودم واگذار شده بودم خیلی بهتر عمل کردم، مسئولیت پذیرتر و خلاق تر، بزار بهتر بگم هر کجا که حس می کردم رها هستم و برای رضایت خودم کار می کنم عملکرد بهتری داشتم، البته آنقدر کسخ..ل نیستیم که متوجه نباشم عملکرد بهتر باید معیاری برای سنجش داشته باشه که می تونه بین این شرکت و آن شرکت، این مربی و آن مربی متفاوت باشد، اما آنچه که به نظر من مهم است، تصور اینکه حس رهایی و حس مهم بودن را در خود به وضوح احساس کنیم.وقتی به این مرحله می رسیم به ویژگی های یک مدیر و رهبر خوب قابلیت های جدیدی اضافه می شود، مثل مدیری که روانشناش باشد، مدیری که کوچ بلد باشد،مدیری که بازی برد برد را بلد باشد، مدیری که کمی رمز و راز درون بداند. احتمالا به همین دلیل نقش یک مربی خوب، یا مدیر خوب می تواند به ما کمک کند ماکزیمم عملکرد خود را متوحه بشویم و سپس به این انرژی و توانایی جهت بدهیم.در همین رابطه در  فیلم قوی سیاه نقش مربی نینا را نمی توانیم نادیده بگیریم و همینطور در فیلم شلاق مربی اندرو. بزارید حس کنیم داریم برای خودمان کار می کنیم، برای دل خودمان، فشار چیزی نیست که آدم از آن فرار کند، به نظرم آنچه خسته کننده است حس کار کردن برای دیگران است که احتمالا قرار نیست تلاش هایت دیده بشود و یا دست کم خیلی قرار نیست دیده بشود.هر هفته از قرار معلوم کسی میاید به کاری که انجام دادی لبخند بزند یا غرولند کند  و تو به تار موی بسته ای که خوشحال شوی یا ناراحت و این حسی است که من و تو را شدید شکننده میکند و عملکرد ما را به شدت ضعیف خواهد کرد.چشم‌ها باز، میدونیم چی میخواهیم، بادها فقط،قراره ما را قوی تر کنن.جمله ای زیبا در کتاب توسعه و عقلانیت در ایران می خوندم: اگر درختی در مقابل توفان پایداری خود را حفظ نمی کند، این بیش تر به عدم استحکام آن درخت مربوط است تا سرعت و ویرانگری طوفان.ممکنه به علت تشویق ها و توبیخ ها عملکرد خوبی داشته باشیم اما قطعا همه آنچه که می توانیم نیست، چون رها نیستیم و همان حس نینا و اندرو در حال رقصیدن درون ماست.ساتیا نادلا تعریف می کنه مادرم همیشه یک سئوال می پرسید آیا از کاری که داری انجام میدهی حس خوبی داری یا نه؟احتمالا به همین دلیل است در عصر حاضر استارتاپ ها و کارهای گاراژ طوری با تمام کم و کاستی هایی که دارند برای خیلی ها جذاب است، بهش بگیم کار هیئتی و البته احتمال موفقیت هم دارند چون حس رهایی، کار مهم انجام دادن و‌ غیره را یکجا با هم دور یک میز داریم. با قبول این پیش فرض که بدون نظم و برنامه شانس موفقیت کمتر و کمتر خواهد شد.  اگر نخواهیم هزینه ساعت ها تراپیست بدهیم تا رهایی را یاد بگیریم به نظر میشه پایان این متن را با مرزی به نام تخ..م به دو قسمت تقسیم کرد، همه چیز را بگیری به تخ..ت و ادامه بدهی و یا نگیری و ادامه بدهی، که البته اکثر مواقع آنقدر تخ.. نداریم که همه چی را بهش بگیریم بنابراین قراره اذیت بشیم چون گویا قرار هم نیست هزینه ساعت ها تراپیست را بدهیم( به هر دلیلی ) نتیجتا فرهنگ خانواده، جامعه و شرکت ها هم که قرار نیست به این زودی تغییر چشمگیری کند تا بتوانیم رهایی را تمرین کنیم پس بهتره کتاب رندانه به تخم گرفتن را بخوانیم. بسیار بی انصافی است که نپذیریم شرایط امروز بسیار بهتر از گذشته شده.قانون رهایی یعنی عدم وابستگی به خواسته ها. یا بهتر بخوام بگیم یعنی نچسبیدن به خواسته ها. قانون رهایی یعنی این که وابستگی به یک خواسته حالت رو بد نکنه و حال خوب تو وابسته به رسیدن به اون خواسته نباشه.و در نهایت جمله ای از فیلم قوی سیاه، کامل بودن دشمن خوب بودن است.( برای خوب بودن ایده آل گرایی را کنار میزاریم و رهایی را دنبال می کنیم.)البته فیلم قوی سیاه در دل خود بحث مهم سایه را دنبال می کند، بحثی گسترده در روانشناسی.متن اولین ایمیل ساتیا نادلا، مدیرعامل مایکروسافت به کارمندان این کمپانی را مایل بودید مطالعه کنید.</description><category>هادی شجاعیان</category><author>هادی شجاعیان</author><pubDate>Tue, 20 Jun 2023 21:41:26 +0330</pubDate></item><item><title>تاریخچه دات نت(Net.)، مایکروسافت مهاجرت از درهای بسته به شرکتی دموکراتیک</title><link>https://virgool.ir/@hadi.sh.pro/تاریخچه-دات-نتnet-مایکروسافت-مهاجرت-از-درهای-بسته-به-شرکتی-دموکراتیک-lagtybpx3l0z</link><description>داستانی به نام دات نت فریمورک (FROM .NET FRAMEWORK UP TO .NET5 ) قبل از اینکه بخواهیم به تاریخچه دات نت فریمورک بپردازیم، لازم می بینیم کمی از سیاست های شرکت مادر دات نت یعنی مایکروسافت اطلاعاتی بدست بیاوریم. مایکروسافت شرکتی که همیشه پشت درهای بسته کارش را انجام میداد، اصلا میونه خوبی با برنامه های متن باز نداشت کارش بدین صورت بود که تیم بر روی محصول کار می کرد هر چندسال یکبار آپدیت می داد عرضه می کرد، بنابراین همیشه چند خصلت بد را یدک می کشید =&gt; روند رشد کند، مستندات ضعیف، اوپن سورس نبود، فعالیت پشت درهای بسته =&gt; ایراداتی که جامعه نرم افزاری همیشه به مایکروسافت وارد می کرد و به حق هم بود. رویکردی که در بالا اشاره شد دلایل کافی بود تا مایکروسافت به تدریج افول کند. جریان رقابت با اندروید و گوگل هنوز به خاطرمان است، وارد رقابتی مسخره با اندروید و گوگل شد، نوکیا را بدون هیچگونه برنامه ای خریداری کرد و در کنار آن ویندوز فون را معرفی کرد، کاملا مشخص بود قبل از شروع مسابقه  رقابت را به گوگل و اندروید باخته است. چون هیچ ارزش افزوده جدیدی را برای رقابت با اندروید و شرکت گوگل ارائه نمی کرد، برنامه درست و حسابی هم نداشت. با همان سیاست های قدیمی وارد رقابت با دنیای جدید شده بود تا اینکه ساتیا نادلا رهبری مایکروسافت را به عهده گرفت، مسیح مایکروسافت از راه رسید و روح تازه ای در کالبد بی جان مایکروسافت دمید.(کتاب از نو نوشته ساتیا نادلا پیشنهاد می کنم).قسمت1 پیدایش دات نت فریمورک Net Framework.مایکروسافت دانت فریمورک را در سال 2002 به بازار ارائه کرد، با استقبال خوبی هم روبرو شد، تا قبل از ارائه دات نت فریمورک مایکروسافت فقط ویژوال استودیو را داشت و یکسری زبان برنامه نویسی ارائه می کرد و می توان گفت بستر مناسبی برای توسعه نرم افزار ایجاد نکرده بود به همین دلیل مایکروسافت عملا در مقابل رقبا خیلی حرفی برای گفتن نداشت و باید برای ادامه مسیر چاره اندیشی می کرد. من یادم هست  اون زمان دلفی رقیب جدی برای مایکروسافت محسوب می شد. مایکروسافت برای اینکه بتواند حرفی برای گفتن داشته باشد نیاز به یک بستر جدید داشت تا بتواند بستری را فراهم کند که برنامه نویس بدون درگیر شدن با مفاهیم سطح پایین تر کدنویسی کند و نرم افزار طراحی کند. چاره اندیشی مایکروسافت منجر به =&gt; متولد شدن بستر دات نت فریمورک شد.دات نت فریمورک به کمک CLR یک لایه واسط بین سیستم عامل و نرم افزار ایجاد می کند، بدینصورت که برنامه شما با سیستم عامل در ارتباط نیست، نرم افزار ما در بستر دات نت فریمورک اجرا میشه و این دات نت فریمورک است که با سیستم عامل تعامل می کند و مدیریت اجرای برنامه ما را به عهده دارد( برای اطلاعات بیشتر می تونید در مورد زبان های بر پایه CLR مطالعه کنید ) به همین دلیل مایکروسافت ادعا کرد با توجه به این قابلیت می توانیم Cross Platform باشیم، بدین صورت که نرم افزار را تولید کن و در هر سیستم عاملی که خواستی اجرا کن.( اما هیچوقت این ادعا عملی نشد )قسمت 2 مشکلات دات نت فریمورک و پیدایش Mono1.ادعای Cross Platformهیچوقت این ادعای مایکروسافت عملی نشد، نه تنها عملی نشد بلکه تا آنجایی پیش رفت که Net Framework قسمتی از خود ویندوز شد، همراه با ویندوز دات نت فریمورک نصب می شد و تمام. اما این تازه شروع ماجرا بود، عده ای از برنامه نویس ها که با دات نت فریمورک و زبان سی شارپ حال می کردن و این بستر را مناسب می دیدن،( شاید هم سود مالی، یعنی متوجه این خلا شدن و تصمیم گرفتن با پر کردن این خلا و فروش شرکت به مایکروسافت درآمدزایی ایجاد کنن) متوجه شدن گویا مایکروسافت قرار نیست  به وعده Cross Platform که داده بود عمل کند، نتیجه گرفتن خودشان دست به کار بشوند و یک بستر ایجاد کنن، پروژه Mono استارت خورد، در حال حاضر شرکتی به نام زامارین که یک شرکت تابع شرکت مایکروسافت می باشد، توسعه آن را بر عهده دارد، توسط این فریمورک ( زامارین )شما می توانید با زبان سی شارپ برنامه هایی برای IOS, Android , Windows تولید کنید.پروژه Mono2.دو فریمورک جدا بنابراین ما الان دو فریمورک جدا داشتیم، دات نت فریمورک که توسط مایکروسافت توسعه داده شده بود و کلاس های خودش را داشت( Net Framework BCL.) و فریمورک دیگری که ادعا می کرد کپی برابر اصل دات نت فریمورک است به نام Mono BCL، اما قطعا در جزئیات شبیه هم نبودن، چون دو تیم جدا بودن و مضاف بر آن تیم مونو دسترسی به کدهای داخلی کلاس های دات نت فریمورک که نداشته، بنابراین قطعا در جزئیات مشابه نبودن. اما به هر حال با دو فریمورک طرف بودیم. تصویر زیر به خوبی نشان می دهد. وقتی با دو فریمورک طرف هستیم، اشتراک گذاری کدها یکی از دغدغه های اصلی برنامه نویسان می شود، کدی که نوشتم آیا با همان کیفیت در فریمورک دیگر اجرا می شود یا خیر..NET Framework Vs Xamarin3.دات نت فریمورک مناسب نیاز روز نبود( Net Core. ):  نوبت رسیده بود به پردازش ابری و سرویس های ابری، دات نت فریمورک برای این وضعیت اصلا آماده نبود، فریمورکی کند که نمی تونست برای این شرایط خودش را آماده رقابت کند، بنابراین مایکروسافت دوباره باید چاره اندیشی می کرد، مایکروسافت نیاز به یک دات نت فریمورک جدیدتر داشت، بنابراین تصمیم گرفت یک پروژه جدید برای بازنویسی دات نت فریمورک خودش شروع را استارت بزند و حاصل این تصمیم ارائه Net Core. بود. دات نت کور(Net Core.) دو تا عضو جدید داشت Dot Net CLI و Asp .NET Core، اکنون ما با 3 تا فریمورک طرف بودیم، همانطور که در عکس مشاهده می کنید. برنامه نویس رسما در اشتراک گذاری کد قاطی می کرد و از طرفی آپدیت برای خود مایکروسافت هم سخت بود، نمی شد یکبار ورژن Net Framework را آپدیت کنی یکبار Net Core  و یکبار Xamarin، اینجا بود که مایکروسافت Net Standard Library. را منتشر کرد. یعنی به عبارتی شما می گفتید من برنامه خودم را با Net Core. نوشتم با Net Standard. ورژن 2 یا 2.1 یا هر ورژن دیگر. یعنی استاندارد سازی ورژن های ما برای اساس Net Standard جلو می رفت.( حواسمون هست دیگه Net Standard استاندارد هستش، پیاده سازی نیست) در تصویر می تونید مشاهده کنید. به نظر من کار منطقی هم بود، نمیشد  مایکروسافت یکبار آپدیت بده بگه این آپدیت مختص Net Framework. است و یکبار دیگه برای Xamarin، تصور کنید چقدر مدیریت کدها سخت و مایکروسافت هم کلا confuse می شد.قسمت 3 مشکلات هنوز حل نشده بود، انتشار Net5.کماکان مشکلات مایکروسافت با دات نت فریمورک حل نشده بود، و هنوز هم باید راه حل مناسبتری پیدا می کرد برای حل مشکلات جدید خودش، مشکلاتی که مایکروسافت با ارائه دات نت کور کماکان باهاش روبرو بودکماکان چندین بستر مختلف داریم: تصور کنید یک ماژول در دات نت استاندارد وجود داشت اما ممکن بود در فریمورک های متفاوت خروجی متفاوت می گرفتی، بنابراین خیلی با اطمینان نمی تونستی خروجی یکسانی در فریمورک های متفاوت بگیری.سرعت توسعه Net Core. نسبت به Net Framework.: دات نت کور یک تیم جدید، سریعتر، چابکتر در مقابل دات نت فریمورک قدیمی تر، خسته تر، نمی تونستند پا به پای هم پیش بروند، یکی باید برای اون یکی باید قربانی می شد. مایکروسافت برای حل مشکلات بالا تصمیم گرفت یک ترکیب جدید ایجاد کند و حاصل این ترکیب جدید تولد Net5. شد. ترکیب دات نت فریمورک، دات نت فریمورک کور، زامارین شد =&gt; دات نت5پیدایش Net5.مایکروسافت از ورژن دات نت کور3.1 و دات نت فریمورک 4.8 پرش کرد و در سال 2020 دات نت5 را ارائه کرد. مایکروسافت تصمیم گرفت فقط یک فریمورک داشته باشد و فقط آنرا پیش ببرد و آن دات نت بود که اولین نسخه آن دات نت5 بود و ورژن های بعدی دات نت6، دات نت 7 و دات نت8.بنابراین ما یک کراس پلتفرم روبرو هستیم به نام دات نت که با آن می توانیم برای هر سیستم عامل و هر دستگاهی نرم افزار تولید کنیم.دنیای دات نتقسمت پایانی زمانبندی  انتشار دات نت توسط مایکروسافتمایکروسافت بعد از انتشار دات نت5 تصمیم گرفت در بازه های زمانی مشخص آپدیت جدید عرضه کند.برای محیط های عملیاتی نسخه های LTS پیشنهاد می شود چون پشتیبانی بیشتری دارند. قبل از معرفی دات نت فریمورک من یادم هست با ویژوال بیسیک کد میزدیم چقدر با فایل های DLL مشکل داشتیم بخصوص استفاده آنها در کامپیوتر مقصد، یادم هست پروژه دوره کاردانی از یک DLL استفاده کردم که ماژولی داشت برای تلفظ لغت انگلیسی،  برای نرم افزار دیکشنری که طراحی کردم استفاده می کردم وقتی برنامه را بردم روی سیستم دانشگاه هر کاری کردم اجرا نکرد که نکرد،  یکی از مشکلات تکنولوژی COM استفاده از فایل های DLL در کامپیوتر مقصد بود. البته این چیزا رو نمیدونستم، فقط از اجرا نشدن داشتم حرص می خوردم البته الان هم خیلی نمیدونم.پایان.</description><category>هادی شجاعیان</category><author>هادی شجاعیان</author><pubDate>Mon, 03 Apr 2023 09:29:18 +0330</pubDate></item><item><title>چرا اکو سیستم استارتاپی و یا کارآفرینی در حال نابودی است یا شاید هم نابود شده است؟</title><link>https://virgool.ir/@hadi.sh.pro/چرا-اکو-سیستم-استارتاپی-و-یا-کارآفرینی-در-حال-نابودی-است-یا-شاید-هم-نابود-شده-است-xhji8jlcvh0m</link><description>نابودی اکوسیستم استارتاپی و کارآفرینی کشورشما کدام را انتخاب می کنید: 1.یک گزینه سخت با هزینه های کوتاه مدت اما با فواید زیاد در بلند؟2.گزینه آسان با منافع کم ولی کوتاه مدت ولی زیان زیاد در بلند مدت؟وقتی به سمت انتخاب دوم می رویم یعنی دچار پوپولیسم شده ایم، حالا چه در حوزه اقتصاد و چه در حوزه حکمرانی و چه در حوزه ساخت و ساز و آنچه تورم برای ما به وجود می آورد انتخاب هایی از نوع جنس دوم است.رنج کارآفرینی، ریسک سرمایه گذاری بر روی استارتاپ های نوپا و یا حتی استارتاپ هایی که به بلوغ رسیده اند جز گزینه های سخت محسوب می شوند، که در طولانی مدت می تواند فواید زیادی برای شخص کارآفرین، سرمایه گذار خواهد بود علاوه بر آن سودش به نفع جامعه و کشور خواهد شد. استارتاپی و یا کسب و کاری که می تواند نیروی کار و متخصص زیادی را در دل خود به کار بگیرد. اما وقتی ما دچار ویروسی به نام تورم و یا حمکرانی اقتصادی بد می شویم، کسانی که می توانند سرمایه گذار باشند ترجیح می دهند دلالی کنند، کسانی که می توانند کارآفرین باشند ترجیح میدهند خرید و فروش کنند و یا دست کم وارد این حوزه کارآفرینی نشوند.بله خیلی ها مایل هستند انتخاب اول را داشته باشند اما شرایط اجتماعی و اقتصادی جامعه همانند باتلاق همه را به سمت گزینه دوم می کشاند اگر هم کسانی باشند که گزینه اول را انتخاب کنند قطعا بارها و بارها دچار تردید می شوند که اگر مسیر دوم را انتخاب کرده بودند شرایط مالی بهتری را رقم زده بودند، این شرایط اجتماعی حتی از نزدیکترین افراد، همسر، مادر و پدر هم شما را تحت فشار قرار بدهد.بنابراین در چنین شرایطی استارتاپ ها تمایل پیدا می کنند با رانت( رانت دولتی یا رانت مذهبی ) و یا گریه زاری خودشان را به منبع اصلی قدرت وصل کنند( استارتاپ با سلام ) تا بتوانند استارتاپی که راه اندازی کرده اند را زنده نگه دارند، در چنین اتمسفر آلوده و خرابی صحبت با سرمایه گذارها که پول را به خوبی می شناسند سخت و دشوار است، چطور می شود سرمایه گذار را متقاعد کرد که وارد ریسک های استارتاپی بشود در حالی که به خوبی آگاه است می تواند با چند خرید و فروش با کمترین ریسک سرمایه خودش را چندین برابر کند.بنابراین، استارتاپ ها و یا کسب و کارهایی که در مرحله رشد و بلوغ هستند و در بازار جایگاهی برای خود دست و پا کرده اند به علت توان مالی، همانند نهنگ همه ماهی های کوچک را می بلعند و از طرفی با ورود به بازارهای جدید اجازه ورود به کسی نخواهند داد. به عبارتی دیگر هر چه جلوتر می رویم باید بیشتر شاهد انحصاری تر شدن بازارها بشویم.در نهایت وقتی شرایط اقتصاد کشور تورمی می شود سوداگری به کارآفرینی و سرمایه گذاری بر روی استارتاپ های نوپا ترجیح داده می شود.مثال زنده از تجربیات خودم، کارفرما بارها تاکید داشته به جای اینکار اگر در این دوسال سکه، زمین، ماشین و... خریده بودم الان نه تنها پولی از دست نداده بود بلکه سرمایه اش چندین برابر شده بود.بنابراین اکوسیستم استارتاپی ایران نفس های آخر خود را میزند البته اگر تا الان زنده بوده باشد که بعید میدانم زنده باشد.</description><category>هادی شجاعیان</category><author>هادی شجاعیان</author><pubDate>Sat, 25 Feb 2023 15:56:50 +0330</pubDate></item><item><title>اولین قدم برای تولید یک محصول؟ مرحله Discovery</title><link>https://virgool.ir/@hadi.sh.pro/اولین-قدم-برای-برای-تولید-یک-محصول-مرحله-discovery-nfz4ztzlttbw</link><description>در این پست قصد ندارم از مراحل رشد یک استارتاپ یا محصول صحبت کنیم.اگر نیاز دارید از مراحل رشد یک استارتاپ تا بلوغ بیشتر بدانید می تونید مطلب مراحل رشد یک استارتاپ، از ایده تا بلوغ را مطالعه کنید.مرحله اول در استارتاپ را مرحله پیش بذری می گویند، در این مرحله ما قرار است شروع کنیم به تحقیق کردن، اما چه چیزی را تحقیق کنیم، در نهایت به چی برسیم. در این مرحله کتاب تست مامان پیشنهاد بدی نیست.در کتاب تست مامان یک جمله خیلی خوب داره که می تونیم قلب و خلاصه کتاب را در همین جمله پیدا کنیم &#34;می‌گن از مامان‌تون نپرسین که ایده‌ی من برای کسب و کار خوبه یا نه؟ چون مامان‌تون دوست‌تون داره و خواسته یا ناخواسته به دروغ بهتون می‌گه که ایده‌‌تون عالیه&#34;.بنابراین سئوالی که از خودمان می پرسیم، در قدم اول تولید محصول چکاری انجام بدهیم؟کشف کردن( Discovery ) ما تلاش می کنیم نیاز واقعی مشتری ( Need ) یا نیاز واقعی بازار را کشف کنیم. وقتی به Need می رسیم کلمه Requirement را بهتر است جدی بگیریم، چون یکی از مسئله های مهم در کشف کردن، تفاوت قائل شدن بین این دو کلمه ( Need , Requirement ).بازار یا مشتری میگه =&gt; می خواهم اسبی داشته باشم که با سرعت بیشتر و سریعتر و در حین حال با آرامش و اطمینان خاطر بین دو مسیر را طی کنم. این می شود Requirement یعنی مشتری یا بازار یک نیاز دارد که ما آن را نیاز مشتری در نظر می گیریم، مشتری و بازار براساس آنچه که می داند، نیاز و مشکل خود را بیان می کند، اسب را می شناسد بنابراین مشکل خود را در داشتن اسب های سریعتر و امن تر جستجو می کند.مشتری و بازار میگه=&gt; من سئوالی دارم و میخواهم گوگل خیلی سریع بهترین جواب را به من بدهد.در مثال اول بالا اسب را حذف می کنیم، نیاز واقعی مشتری سرعت و امنیت است.وظیفه ما چیست، ما تلاش می کنیم با Discovery به Understanding بیشتر برسیم تا در ابتدا فهم نسبتا خوبی در مورد مشکل داشته باشیم. از دل این مشکل خودرو در میاد بیرون.در مثال دوم گوگل را حذف کنیم، نیاز واقعی مشتری سریع و بهترین پاسخ را می تونیم نیاز واقعی مشتری در نظر بگیریم. از دل این مشکل در حال حاضر ChatGPT میاد بیرون.( البته قطعا در این زمینه گوگل بیکار نخواهد نشست).اولین قدم  برای تولید محصولحواسمون به دو واژه مشکل و مسئله هست دیگه، مشکل یعنی وضعیتی نامشخص، فقط می دانیم نارضایتی و وضعیت نامطلوبی وجود دارد اما مبهم است، مثال هیچکس از محصول ما استقبال نمی کند؟ محصول ما ریزش مشتری داشته است؟ دقت کنید، در اینجا وضعیت مبهم است و نمیدانیم چرا این اتفاق افتاده است. با بررسی و کشف کردن سعی می کنیم وضعیت را تبدیل به مسئله کنیم یعنی متوجه بشویم چرا این اتفاق افتاده است و سپس مراحل حل مسئله.بنابراین در قدم اول می بایست نیاز واقعی مشتری و بازار را پیدا کنیم از طریق گفتگو، بررسی، و تحلیل گفتگوها.البته در گفتگوها مراقب پاسخ ها باشید.به نقل از کتاب تست مامان:پاسخی است که شما نیاز دارید بشنوید و در مقابل پاسخی است که شما دوست دارید بشنوید باید مراقب باشید، سئوال را به صورتی مطرح نکنید که به جای پاسخ اول پاسخ دوم را دریافت کنید. اما چطور می توانیم متوجه بشویم نیاز واقعی را درآوردیم و دقیقا همان چیزی است که مشتری یا بازار می خواهد؟ در قسمت بعدی در این مورد صحبت خواهیم کرد.</description><category>هادی شجاعیان</category><author>هادی شجاعیان</author><pubDate>Tue, 14 Feb 2023 17:30:54 +0330</pubDate></item><item><title>آیا من میتوانم مدیر محصول بشوم؟نسخه1.1</title><link>https://virgool.ir/@hadi.sh.pro/آیا-من-میتونم-مدیر-محصول-بشوم-tuftrhlc5hjz</link><description> قرار است اون وسط همه جور به شما فشار بیاد. منبع عکس  سایت کارپیلاتوانایی های عمومی مورد نیاز یک مدیر محصول  که بهتره همیشه در جعبه ابزار دانشی خود داشته باشد.اگر از من بپرسند برای مدیر محصول شدن چه ویژگی هایی‌ نیاز است یکسری موارد کلی وجود دارد که در هر مرحله از رشد محصول به آن نیاز داریم و ابزارهایی هستند که همیشه باید در جعبه ابزار مهارتی خودمان داشته باشیم و به آنها مجهز باشیم. مهارت هایی هم وجود دارند که با توجه سن محصول ممکن است به آنها نیاز داشته باشیم، برای مثال وقتی در مرحله اولیه باشیم ممکن است نیاز به یک محصول MVP داشته باشیم، که توانایی های خودش را می طلبد، یا اینکه ممکنه محصول در حال وارد شدن به بازارهای جدید است که در این صورت نیاز داریم به ابزارهای تحلیل بازار مجهز باشیم، محصول در حال رقابت است نیاز به مهارت های استراتژی جنگ و رقابت نیاز داشته باشیم.تفکر تحلیلی، تفکر تحلیلی یک اصطلاح بزرگ است که در دل خود موضوعات متفاوتی را جا داده است، مثل حل مسئله، تفکر انتقادی و... اما به صورت خلاصه تفکر تحلیلی یعنی بتوانیم تحلیل کنیم، موضوعات را به هم گره بزنیم و خروجی بگیریم، موضوعات پیچیده را که مثل کلاف به هم پیچیده شدن را ارزیابی کنیم و آنقدر این پیچیدگی را بشکنیم تا قابل ارائه برای دیگران باشد. گاهی برای اینکه بتوانیم خوب تحلیل کنیم نیاز داریم بینش کلان خود را گسترش بدهیم به اصطلاح معروف Big Picture داشته باشیم، برای همین منظور بهتر است اطلاعات متفاوتی را دریافت کنیم، فقط در یک راستا مطالعه نکنیم. قرار نیست فقط مطالعه در حوزه پروداکت داشته باشیم، نیاز است پادکست های  غیر مرتبط گوش بدهیم، تاریخ بدانیم و...تفکر انتقادی، وقتی ایده ای یا اطلاعاتی را می شنوید به جای پذیرش نگاه انتقادی خواهیم داشت و سعی می‌کنیم با کلمه چرا همه چیز را به زیر رادیکال انتقادی ببریم. پرسش‌های مناسب بپرسد و اطّلاعات مربوط به آن را جمع‌آوری کند. سپس آن‌ داده‌ها را دسته‌بندی و با منطق استدلال کند، و در پایان به یک نتیجه قابل اطمینان درباره مسئله برسد. مثال =&gt; تعدای از مشتریان از عملکرد فلان فیچر ناراضی هستند؟ کارفرما درخواست فلان فیچر را داده است؟ پذیرش یا تفکر انتقادی؟ چرا ناراضی هستند؟ این مشتریان چند درصد کل مشتریان هستند؟ آیا واقعا فیچر مشکل دارد یا فقط اون دسته از مشتریان مشکل دارند؟ در چه شرایطی با این فیچر مشکل دارند؟ کارفرما چرا این فیچر را می خواهد؟ هدف از این فیچر چیست؟ چه نیازی را قرار است برآورده کند؟ما سعی می کنیم با چرا هایی که مطرح می کنیم به ریشه اصلی مشکلات برسیم، در سکانس اول و برداشت اول ما یک مشکل را می بینیم و یا می شنویم اما وقتی می بریم زیر رادیکال تا به ریشه برسیم، به موضوعی می رسیم که اصلا شبیه برداشت اولیه ما از مشکل نبوده و نیست، مشکل در جای دیگری بوده است که ما متوجه نبودیم. مهارت حل مسئله، به عنوان مدیر محصول ورود پیدا می کنیم تا بتوانیم مسئله حل کنیم، یعنی مسئله ای به نام توسعه محصول. ابتدا مشکل را شناسایی می کنیم سپس مشکل را تبدیل می کنیم به مسئله، یک مسئله سه ویژگی زیر را دارد.  1.وضعیت فعلی محصول را شناسایی کنیم؟ 2.هدف محصول یا وضعیت مطلوب چیست؟ 3.چگونه می توانیم از وضعیت فعلی به وضعت مطلوب برسیم؟ به عنوان مدیر محصول به طور مرتب با مسائلی روبرو می شویم که باید حل کنیم، برای رسیدن به وضعیت مطلوب باید بتوانیم راهکارهای متفاوت را بدست بیاوریم و سپس براساس استراتژی، منابع و توان شرکت بهترین راهکار را انتخاب کنیم. برای مثال یکی از مشکلات توییتر در اوایل نرخ پرش بود بعد از اولین بازدید از وب سایت بود، چرا نرخ پرش بعد از اولین بازدید زیاد است و چه راهی می توانیم برای حل این مشکل پیدا کنیم؟مهارت تصمیم گیری، وقتی صحبت از مهارت حل مسئله به میان میاد، نمی تونیم از مهارت تصمیم گیری غافل بشویم، وقتی چندین راهکار برای رسیدن به یک هدف جلوی ما قرار گرفته است، کدام راهکار بهترین انتخاب ما خواهد بود، در همین شرایط مهارت تصمیم گیری مطرح میشه. برای انتخاب درست یا دست کم انتخابی که به درست نزدیکتر باشد، شناخت و آگاهی میاد وسط، اما شناخت و آگاهی از چه چیزی؟ از برنامه های شرکت، اهدافی که برای سال آینده یاماه آینده دنبال می کند، توانایی های مادی، انسانی و سخت افزاری شرکت، شناخت از مشتریان فعلی و مشتریان بالقوه، شناخت از پرسونای مشتریان، دیتاهای اماری درست و حسابی، مثل گوگل آنالتیکس. با دانستن و شناخت پیدا کردن ما می توانیم تصمیم بهتری بگیریم. بیزنس مدل، بتوانید بیزنس مدل یک کسب و کار را با جزئیات در بیاورید. در این قسمت جزئیات مهم است. وقتی صحبت از دانستن بیزنس مدل می شود، به این معنی نیست که بوم کسب و کار را بزاریم جلو دست و همینطوری پر کنیم، قسمت مشتریان، ارزش پیشنهادی، ساختار هزینه، مدل درآمدی و... را به خوبی با جزئیات بتوانیم تحلیل کنیم و سپس تکمیل کنیم، برای مثال وقتی می خواهیم قسمت مشتریان یک فروشگاه اینترنتی که در حوزه لوازم آرایشی فعالیت می کند را در بیاوریم، نمی گوییم همه خانم ها، این یعنی در ابتدای مسیر به بیراهه رفتن، خانم هایی که لوازم آرایشی می خرند، خانم هایی که علاقمند به خرید اینترنتی لوازم آرایشی هستند، خانم هایی که دسترسی به موبایل یا لپ تاپ دارند و... یعنی بتوانیم ریز بشویم، کسی که می خواهد همه را داشته باشید در واقع هیچکدام را نخواهد داشت. آیا مادر من به عنوان یک خانم جز مشتریان فروشگاه خانمی محسوب می شود؟ جواب خیر است. بنابراین همه خانمها جز جامعه آماری مشتریان خانمی نیستند. همینطور برای ارزش پیشنهادی، ارزشی داشته باشید که مردم حاضر باشند برای آن پول پرداخت کنن، به همین جمله اکتفا می کنن، اما آیا این جمله کافیست؟ مهارت ارتباطی، زیرا قرار است با کلی آدم دیگر ارتباط برقرار کنید، به برخی توضیح بدهید و بتوانید از برخی توضیح بگیرید. بنابراین ارتباط و کار تیمی خیلی مهم است. وقتی به عنوان مدیر محصول مشغول به کار می شوید، دغدغه شما هدایت محصول است برای رسیدن به OKR های مشخص شده است، بنابراین شما برای اینکه بتوانید تصمیم های درستی بگیرید نیاز دارید با سایر اعضای تیم که دارند بر روی محصول کار می کنند ارتباط موثر و مداوم داشته باشید، ایجاد یوزر استوری ها، استوری پوینت ها و...مدل ذهنی یک مدیر محصول دیتا محور است، دیتاهایی که بتوان آنها را به نمودارهای کمی تبدیل کرد، مدل ذهنی یک مدیر محصول بر مبنای اندازه گیری است، همه چیز را اندازه گیری می کند، چطور میشه یک مسئله را حل کرد در صورتی که معیار مناسبی برای اندازه گیری نداشته باشد. اندازه گیری همه چیز.مثال: حالت فعلی تب بالای 38 درجه، چطور متوجه شدیم با یک تب سنج اندازه گیری کردیم.حالت مطلوب تب به پایین 38 برسه.چطور می توانیم به این هدف برسیم، راهکارهایی که بدست میاوریم را انجام می دهیم دوباره از تب سنج استفاده می کنیم تا نتیجه را اندازه گیری کنیم.توانایی های دیگر که لازمتون میشهاجایلنرم افزاری مدیریت تسکمارکتینگآشنایی با مباحث فروشآشنایی با UXآشنایی با تیم سازیآشنایی با مفاهیم اولویت بندیآشنایی با بازار سنجیآشنایی با بعد فنی محصولقطعا مباحث دیگری است که می تونه در این فهرست قرار بگیره...مثال: به عنوان یک مدیر محصول در شرکتی در حال فعالیت هستید، مثلا یک فروشگاه اینترنتی مثل خانمی، حالا دیجی کالا تصمیم می‌گیرد وارد حوزه لوازم آرایشی بشود. آیا راه اندازی بخش فروشگاه لوازم آرایشی دیجی کالا برای خانمی تهدید محسوب می شود؟ اگر جواب شما بله است راهکار شما برای مقابله با این تهدید چیست؟ این مطلب در حال تکمیل شدن می باشد...پ ن: در صورتی که به فیلد مدیر محصولی علاقمند هستید می توانید عضو کانال تلگرام جامعه مدیران محصول بشوید، من خودم عضو هستم و از بچه های حرفه ای تر یاد میگیرم.لینک جامعه مدیران محصول ایران </description><category>هادی شجاعیان</category><author>هادی شجاعیان</author><pubDate>Sun, 13 Nov 2022 14:09:51 +0330</pubDate></item><item><title>دین از چه جنسی است؟ ج.ا و بلوط های دوست داشتنی</title><link>https://virgool.ir/@hadi.sh.pro/دین-از-چه-جنسی-است-جا-و-بلوط-های-دوست-داشتنی-r4hbajq2bx2b</link><description>نظرات شخصی من در باب جمهوری اسلامی و دین.سالهاست مناظره های متفاوت بین اساتید دانشگاه و نمایندگان ج.ا ( به قول معرف گفتمان انقلاب) را دنبال می کنم. همیشه انتهای مناظره ها وقتی یک طرف صندلی حامی ج.ا اسلامی باشد قطعا بی پایان می ماند، و حتی در برخی مواقع خط و نشان بوده است از طرف نمایندگان ج.ا. سالهاست دو طیف در حال صحبت و گفتگو هستند، البته از سمت حاکمیت انصافا شخصیتی که اهل گفتگو باشه من ندیدم.مشکل کجاست؟ابتدا باید تکلیف را با دین مشخص کنیم. یعنی مقوله دین از چه جنسی است؟ دین را در چه چارچوبی می توانیم به بحث بگزاریم، تا زمانیکه در این مورد به یک اجماع نرسیم سخت می شود با ج.ا گفتگو کرد، و همیشه مشکل از همینجا شروع شده و هیچوقت به خط بعدی نرفته ایم.( تصور من این است چون حاکمیت نخواسته است ).بیایید چند پیش فرض تکراری را در نظر بگیریم، اگر من در انگلیس بدنیا میامدم احتمالا مسیحی بودم، اگر در قطب بودم احتمالا دین دیگر و... اگر در آفریقا به دنیا میامدم احتمالا سیاه پوست و... این مثال ها را بارها شنیده ایم، اما مقصود از این مثال ها چیست؟ این مثال یک موضوع مهم را میخواهند به ما گوشزد کنند، فرهنگ. یعنی خیلی از موضوعات ما جبر جغرافیایی است و آن جبر جغرافیایی به دلایل گوناگون فرهنگ خاصی را برای آن مردم رقم زده، به همین دلیل مردم یزد فرهنگی متفاوت از مازندران دارند، در برخی موضوعات ( پوشش، رفتار، کردار و... ) مشابه هستیم چون در یک کشور رشد کرده ایم و تحت تاثیر یک اتمسفر تارخی بزرگ به نام ایران،  در برخی رفتارها متفاوت چون در دو اقلیم متفاوت زیست کرده ایم ( یزد شرایط اقلیمی و تاریخی خودش را دارد و مازندران همینطور ). مقوله دین هم همینگونه است.جبر جغرافیایی جزیی جدا ناپذیر از دین و مذهب ما می باشد. پس ابتدا باید تکلیف دین را مشخص کنیم از جنس فرهنگ است یا ...اگر بپذیریم دین از جنس فرهنگ باشد( که به نظر من قطعا هست )، بنابراین نگاه ما به دین کاملا متفاوت خواهد بود. در کشور ما ایران همیشه اینطور بوده، فرهنگ های مختلف که دین هم جز آن بوده در کنار هم زندگی کرده اند، به زبان منطقه خود صحبت می کرده اند اما زبان فارسی زبان مشترک تمام ایرانیان بوده، لباس را طبق فرهنگ زیست محیط خود به تن می کرده اند، حجاب کاملا مقوله فرهنگی تلقی می شده است.اما ج.ا در جنسیت دین همیشه دچار تردید بوده، لااقل در هیچیک از متفکرین که در صدا و سیما و... می بینم به وضوح به این امر نمی پردازند، ممکن است نوعی فرار باشد، به هر حال هیچوفت پاسخگو نبوده و همیشه در سطح خیلی آبکی گفتمان انقلاب را پیش برده.ج.ا در حال تلاش است فرهنگ که امریست بنیادی و جغرافیایی را دست کاری کند، به مانند این می ماند که شما بخواهید با چند جمله انقلابی گونه یک جنگل چند هزارساله را تغییر بدهید، همه می دانیم چه می شود؟ مثلا بخواهیم جنگل 2500 ساله با تنوع بسیار زیاد را تغییر بدهیم به جنگل بلوط،( اسمش را بزاریم بلوطستان ) مگر می شود، حتی فکر بهش هم خنده دار و ابلهانه به نظر می رسد.اما گویا ج.ا تصمیم گرفته این دستکاری را هرجور شده انجام بدهد، پروژه ای شکست خورده که هزینه آن را مردم و منابع کشور می دهد و در نهایت هم موفقیتی نصیب نخواهد شد، چطور می شود یک جنگل چند هزار ساله با تنوع بسیار زیاد را تبدیل کرد به جنگل بلوط.برای پیش برد این اتفاق ج.ا فقط بلوط ها را دوست دارد، به بلوط ها اهمیت میدهد، مابقی درجه دوم و سوم هستند، جالب اینجاست، بلوط بودن کافی نیست، باید حتما سایز و کوچکترین موارد هم طبق نظر ج.ا باشد وگرنه می شوی بلوط منحرف شده.حالا همچین تفکری تصمیم گرفته است ایده خود را صادر هم کند.ترسناک است، شما هنوز متفکرین کشور خودت مردم کشور خودت را مجاب نکردی که با شما یکدست بشوند چطور می خواهی دست به صادرات این تفکر بزنی آن هم با پول و سرمایه های ملت.در اینجا فقط یک موضوع مطرح می باشد، قدرت، چون قدرت و زور در اختیار حاکمیت است، هر جور شده است تصمیم گرفته به ریشه این فرهنگ 2500 بزند تا ثابت کند که درست می گوید، درست فکر می کند.اما غافل از اینکه هیچکس نمی تواند این جنگل زیبای 2500 ساله را تغییر بدهد، در نهایت چند بلوط در دستان شما می ماند، زشتی تبری که درختان زیبا و با ارزش را قطع کرده و جنگلی که به شدت عصبی است، و به همه تبر به دستان و درختان بلوط که تا دیروز به خوشی کنار هم زندگی می کردند، خشم می ورزد. خشم گاهی تبدیل می شود به خود زنی، گاهی تبدیل می شود به نابود کردن، گاهی تبدیل می شود به قطع کردن.این یک متن بسیار ساده توسط یک شخص معمولی جامعه نوشته شده است، اما آنقدر درختان زیادی بخاطر کوچکترین مسائل توسط حاکیمت به چالش و یا و... کشیده شده اند، که همین اندازه نوشتن هم ریسک دارد، متاسفانه.</description><category>هادی شجاعیان</category><author>هادی شجاعیان</author><pubDate>Fri, 11 Nov 2022 04:59:21 +0330</pubDate></item><item><title>من و مدیر محصول شدنم،برای خودم نوشتم، برگزاری استارتاپ ویکند</title><link>https://virgool.ir/@hadi.sh.pro/من-و-مدیر-محصول-شدنمبرای-خودم-نوشتم-plzlb6ewqdra</link><description>دانشجوی رشته مهندسی نرم افزار که برنامه نویسی می کرد، آشنایی من با نازنین رحیمی  سبب شد با استارتاپ ویکند بیشتر آشنا بشوم و همین کافی بود تا هادی به استارتاپ علاقمند بشود. نازنین در حال تدارک راه اندازی ایونت استارتاپ ویکند در گنبدکاووس بود، نازنین رحیمی به تیم ما پیشنهاد کرد در این مسیر همراهش باشیم.( البته اعتراف می کنم نازنین مسلط تر بود به همین دلیل ما بیشتر نقش اجرا کننده را داشتیم ). نکته مهم با اینکه استارتاپ ویکندبرگزار کردیم و من خودم برای معرفی آن چندین بار در بین دانشجویان پیام نور گنبد کاووس، دانشگاه آزاد گنبد کاووس در سالن همایش برای تعدادی از دانشجویان صحبت کردم، با این حال کامل استارتاپ را درک نکرده بودم=&gt; بعدها به این نتیجه رسیدم، منابع محدود فارسی و ضعف زبان انگلیسی من شاید مزید بر علت بود که من به خوبی نتوانم این حوزه را درک کنم.بنابراین صرف انجام دادن یک عمل دلیلی بر درک آن عمل نیست.بعد از پایان استارتاپ ویکند من آینده خودم را در استارتاپ جستجو می کردم، فکر می کردم هر اتفاقی برای من بیافتد در این حوزه خواهد بود و متاسفانه با درک بسیار ناچیز،  فکر می کردم استارتاپ یعنی فقط شروع کردن Just Do It، متوجه بیزنس نشده بودم. البته به این معنی نیست شعار فقط انجامش بده خوب نیست اما شانس موفقیت را ممکنه خیلی پایین بیاره. همه جا مثال از گوگل  و گاراژ میزنن کاملا درسته، اما استارتاپ های زیادی هم بودند که به دیوار برخورد کردن.استارتاپ ویکند گنبد کاووس1393 - هادی شجاعیانوقتی صحبت از استارتاپ می کنی یعنی یک تیم چند نفره که هر کدام دارن چندین کار انجام می دهند، امنیت شغلی پایین، چالش فراوان و... بنابراین من تبدیل شدم به یک فول استک دولوپر که به تنهایی می تونم یک پروژه تحت وب را ببرم جلو، فروشگاه اینترنتی از صفر بزنم، پلتفرم نمایشگاه های بین المللی با ۷۲۰۰ نمایشگاه بین المللی را یک تنه ببرم جلو و تمام نیازمندیها را خودم هندل کنم.با توجه به روحیه ای که داشتم و پوزیشن شغلی مجبور بودم به همه جا یک نوکی بزنم، بیزنس مدل طراحی کنم، پلن مارکتینگ طراحی کنم، سئوی داخلی و خارجی، دیتابیس، تیم سازی، فروش، طراحی سیستم، مدیریت و... شدیدا به دنبال چیزی بودم که بتوانم همه را به کار بگیرم و در عین حال برنامه نویس و توسعه دهنده مطلق هم نباشم.تا اینکه با حوزه ای به نام مدیر محصول آشنا شدم. حس کردم آنچه را که میخواستم پیدا کردم، نیاز بود بیزنس‌مدل طراحی کنم، تیم سازی کنم، از مارکتینگ باید مقداری میدونستم، از فنی میدونستم، از مدیریت میدونستم و...و به شدت علاقه دارم در این حوزه حرفی برای گفتن داشته باشم.در حال حاضر مدیر محصول یک فروشگاه اینترنتی هستم.یعنی هم توسعه دهنده و هم مدیر محصول.تصورش هم سخته دو کار سخت را دارم همزمان پیش می برم، متاسفانه شرایط فعلی کشور می طلبد نیروهایی داشته باشند که مولتی توانایی باشند تا بتوانند هزینه ها را مدیریت کنن.برنامه استارتاپ ویکندگنبدکاووس در کافه بازارویدیو استارتاپ ویکند گنبدکاووس در آپارات&amp;lt;br/&amp;gt;</description><category>هادی شجاعیان</category><author>هادی شجاعیان</author><pubDate>Thu, 10 Nov 2022 16:01:37 +0330</pubDate></item><item><title>هدف از نوشتن در ویرگول چیست؟تکلیف را مشخص کنیم</title><link>https://virgool.ir/@hadi.sh.pro/هدف-از-نوشتن-در-ویرگول-چیستتکلیف-را-مشخص-کنیم-bfhcxy4w03xq</link><description>منبع تصویر انتهای مطلبچرا باید در ویرگول شروع کنیم به نوشتن، اصلا چرا باید نوشت، هدف از نوشتن و مکتوب کردن ما در قالب کلمات چیست؟من(چقدر این کلمه من اذیت کننده است، اما چاره چیست، من نمیدانم به جای من از چی استفاده کنم) به هر حال تکلیف برای منِ فعلی خودم مشخص است:متن هایی را دنبال کنم که نویسنده برای خودش می نویسد نه برای من یا دیگران، فیلسمازی را دنبال کنم که برای خودش فیلم می سازد نه دیگران.خیلی از پیتر دراکر(پدر علم مدیریت نوین) نمی دانم، اما یک چیز را میدانم فقط برای خودش می نوشت، فریادهای درونی خودش را تبدیل می کرد به نوشته.به همین دلیل هنر زیباست، هنرمند واقعی برای خودش کار می کند، درونیات خودش را در قالب هنر به نمایش می گذارد، اینطور می شود که به دل ما می نشیند.وقتی با نیچه آشنا شدم، حس کردم کتاب ها را برای خودش نوشته، اصلا مهم نیست چه کسی دارد این نوشته ها را می خواند، در حال گفتگو با خودش بوده اما در قالب کلمات.چگونه می شود فکر کرد حافظ در حال نوشتن (شعر) بوده برای مخاطب دیگر، آنچه می بینیم گفتگوی حافظ بوده با خودش.بزرگان ما می نوشتن چون گویا چاره ای نبود برای رهایی شدن از فریادهای درونی که داشتن، چطور می شد اون همه انرژی درون را تخلیه کرد، چطور می شد اون همه گفتگو با خود را انجام داد، بنابراین در قالب کلمات با خود گفتگو می کردن.کسی که برای مخاطب می نویسد به دنبال جور کردن محتوا است برای فروش، کسی که برای خودش می نویسد به درست و غلط فکر نمی کند، درونیات خودش را می نویسد، محتوایی جور نمی کند، زمانی برای پایان دادن به یک نوشته را تارگت نمی کند، هر زمان حس کند پایان می دهد. منبع عکس </description><category>هادی شجاعیان</category><author>هادی شجاعیان</author><pubDate>Fri, 01 Jul 2022 16:52:52 +0430</pubDate></item><item><title>همه چی از اصول آغاز می شود، اصول برنامه نویسی و توسعه نرم افزار؟</title><link>https://virgool.ir/@hadi.sh.pro/همه-چی-از-اصول-آغاز-می-شود-اصول-طراحی-شی-گرا-tq14z1yogvda</link><description>با یادگیری اصول دید ما وسیعتر خواهد شداصول چیست؟قبلا از اینکه بخواهیم به اصول برنامه نویسی و توسعه نرم افزار بپردازیم، خیلی کوتاه یک تعریفی از اصول داشته باشیم تا به یک نقطه مشترک در مورد اصول برسیم. اصول در هر رشته ای وجود دارد و تاکید دارند که رعایت بشوند، در صورت نادیده گرفتن هر یک از اصول عملکرد یا استفاده مؤثر از آن رشته یا مبحث مرتبط به اصول که بیان شده است غیرممکن خواهد بود.چرا رعایت اصول در برنامه نویسی و توسعه نرم افزار مهم است؟زمانیکه از اصول برنامه نویسی صحبت می کنیم یعنی قصد داریم از موضوعاتی صحبت کنیم که باید به آنها پایبند باشیم یا بهتر است به آن پایبند باشیم. قبل از ما هزاران نفر از متخصصین به آن پایبند بوده اند و نتیجه رعایت اصول را در توسعه نرم افزار دیده اند. بنابراین اگر به آن پایبند نباشیم هزینه آن را در مراحل جلوتر پرداخت خواهیم کرد و به عنوان بدهی فنی در کنار دستمون خواهیم داشت و این بدهی هر روز با بزرگتر شدن سیستم بیشتر هم می شود تا آنجا که بوی بد این بدهی از کلیت سیستم نشت خواهد کرد و با ماسک باید نزدیک آن بشویم.مادامیکه اصول هایی که مطرح می شوند را در کنار یکدیگر در طراحی و پیاده سازی نرم افزار یا برنامه اعمال می کنیم، می توانیم امیدوار باشیم به احتمال زیاد برنامه ما قابلیت نگهداری و توسعه آسانی خواهد داشت. بر هیچ مهندس نرم افزاری پوشیده نیست که نگهداری و توسعه آسان یکی از متریک های اندازه گیری بعد فنی یک نرم افزار خوب محسوب می شود، برای رسیدن به این مطلوب رعایت اصول می تواند راهگشا باشد.دو مورد مهم در مورد اصول است که بهتر از به آن توجه کنیم1.اصول یعنی توسط عده زیادی متخصصین آن حوزه مورد پذیرش قرار گرفته است.2.رعایت اصول باعث می شود نگهداری و توسعه نرم افزار راحتتر و سریعتر انجام بگیرد.چرا اصول برنامه نویسی به وجود آمده اند؟مدیریت وابستگی Dependency Managementوقتی بدانیم چرا متخصصین پیشنهادات جدی به ما می دهند بهتر می توانیم آن پیشنهاد را درک کنیم. پروژه های نرم افزاری به صورت ایزوله توسعه داده نمی شوند، نرم افزار یک سیستم است، سیستم یعنی مجموعه ای از جزء ها که در کنار هم یک سیستم را تشکیل می دهند. وقتی پای یک سیستم در میان است، یعنی صحبت از تاثیرگزاری بخش های متفاوت روی یکدیگر است. بنابراین با زیاد شدن اجزا تاثیرگزاری هم ممکن است تصاعدی بیشتر بشود، اجزا به یکدیگر وابسته می شوند، ممکن است تغییر در یک ماژول و اجزاء تاثیرات مخربی روی کل سیستم داشته باشد که در همان لحظه و یا در آینده متوجه آن بشویم. بنابراین آنچه مهم است مدیریت وابستگی است، اگر وابستگی مدیریت نشود هر چه نرم افزار بزرگتر بشود وابستگی بیشتر خواهد شد. بنابراین نگهداری و توسعه نرم افزار سختتر خواهد بود. به قول عمو باب سیستم نرم افزاری که مدیریت وابستگی در آن رعایت نشود از 4 چیز رنج می برد.سختی یا Rigidity: تغییر در سیستم سخت می شود به علت هزینه بالای تغییرعدم تحرک یا Immobility: ماژول یا تکه کد قابلیت استفاده مجدد خود را از دست بدهدشکنندگی یا Fragility: جرات نمی کنید تغییری ایجاد کنید، چون ممکنه تا فی خالدون سیستم گریبان شما را بگیرد، ماژول های دیگری دچار خطا بشوند.چسبناکی یا Viscosity:برنامه در مقابل تغییر خیلی مقاوم شده، جریان خالکوبی شیر هستش، دم شیر درد داره بریم سراغ سرش، سرش درد داره بریم سراغ پاهاش.پیچیدگی های غیر ضرورییکی از مباحثی که همیشه در توسعه نرم افزار مطرح می شود بحث آینده نرم افزار است، چه تصمیمی باید در مورد آینده نرم افزار بگیریم؟ نیازهای الان را برطرف کنیم یا دستگیره های اطمینانی برای آینده در نظر بگیریم؟به بیان دیگر آیا لازم است دستگیره هایی در سیستم نرم افزاری جهت استفاده در آینده قرار بدهیم یا خیر؟به ازای هر دستگیره ای که در نظر می گیریم متوجه باشیم که داریم پیچیدگی را به سیستم تحمیل می کنیم و بار اضافی را میزاریم روی دوش سیستم نرم افزاریبنابراین وابستگی و پیچیدگی های غیر ضرروری دلایل مشخص تری بودند برای پیشنهاد رعایت اصول در معماری نرم افزار.اصول برنامه نویسی و توسعه نرم افزار در بالای هرم قرار می گیرندیک راهنمای انتزاعی سطح بالافارغ از نوع و زبان برنامه نویسیبحثی در مورد نوع پیاده سازی ندارندممکن است سالها برنامه نویسی کنیم، سوژه های مختلف ببینیم، مسئله های مختلف حل کنیم اما اگر با اصول و قواعد اصلی آشنا نباشیم نمی توانیم دلیل برخی فرآیندهایی که در توسعه و کد نویسی اتفاق می افتد را درک کنیم و در ساید افکت آن بینش مطلوب جهت توسعه یک نرم افزار را بدست نخواهیم آورد.ما می توانیم الگوها را نادیده بگیریم، اما در صورتی که اصول را رعایت نکنیم بعدا باید هزینه آن را پرداخت کنیم.لیست اصول برنامه نویسی و توسعه نرم افزار که بهتر است بدانیماصل SOLIDسالید به ما می گوید چگونه توابع و داده، ساختارهای خود را در کلاس بچینیم و چگونه این کلاس ها باید به یکدیگر متصل شوند. وقتی می گوییم کلاس منظور فقط برنامه نویسی شی گرا نیست، هر گروه بندی از توابع و داده ها که در برنامه نویسی و سیستم های نرم افزاری پیاده سازی می شود.اصل KISSاصل DRYاصل SRP یا تک مسئولیتی(S از SOLID)این اصل را برخی جاها به عنوان اصل تک وظیفه ای تعریف می کنن، یعنی هر ماژول فقط یک کار را انجام بدهد. اما این تعریف درستی نیست، هر تابع فقط یک کار انجام بدهد در مباحث ریفکتورینگ بهش پرداخته می شود، اصل SRP به تک مسئولیتی اشاره داره، به عبارتی هر ماژول فقط در مقابل یک نفر مسئولیت دارد.منظور از یک نفر، یک شخص واحد نیست، یک نفر یا یک گروه واحد( ما از actor استفاده می کنیم) در نظر بگیرید که هدفی مشترک را دنبال می کنند. اصل SRP به این موضوع اهمیت می دهد که یک ماژول فقط به درخواست یک actor پاسخ می دهد و تنها در برابر یک actor مسئول می باشد و در صورتی تغییر می کند که همان actor درخواست بدهد.در نظر بگیرید دو actor متفاوت از یک ماژول سرویس می گیرند، قسمت حسابداری و قسمت مالی هر دو به متد محاسبه اضافه کاری دسترسی دارند، یکروز قسمت حسابداری درخواست تغییر میدهد، ما تغییر را اعمال می کنیم قسمت مالی صداش در میاد که خروجی های من اشتباه شده و ما متوجه می شویم تغییری که اعمال کردیم فقط برای قسمت حسابداری لازم بوده، بنابراین ما دو بخش را دچار وابستگی کردیم ، راه حل استفاده از اصل SRP است، یک ماژول باید در برابر تنها یک actor مسئول باشد.اصل SRP تاکید می کند کدی که actorهای مختلف به آن وابسته هستند را جدا کنید.</description><category>هادی شجاعیان</category><author>هادی شجاعیان</author><pubDate>Tue, 17 May 2022 01:33:20 +0430</pubDate></item><item><title>اگر درحال شکل دادن استارتاپ هستی، حواست باشه</title><link>https://virgool.ir/@hadi.sh.pro/اگر-درحال-شکل-دادن-استارتاپ-هستی-حواست-باشه-n5w5c56objqa</link><description>بلایی که سر خود من اومد، متاسفانه پول و سرمایه دست کسانی هستش که خیلی نگاه درستی به این مقوله ندارند...می دانستند که نمی دانند اما نمی پذیرفتنهدف فقط ثروتمند شدن نباشد، کار درست که دغدغه حل کند پول همراه خودش میاوردتیم مناسب و ترکیب مناسبدنبال ترند روز نباشیم، ترندهای زیادی اومدن و رفتنبعضی ها قبل از شروع شکست را پذیرفته بودن، در کلام نه، اما در ناخودآگاه بلهواقع بین باشیم، سرمایه مهمه، خیلی مهمه</description><category>هادی شجاعیان</category><author>هادی شجاعیان</author><pubDate>Mon, 28 Mar 2022 19:02:56 +0430</pubDate></item></channel></rss>