Forwarded from Iran Agile
💢 پنج باید و نباید مهم در رویداد برنامه ریزی اسپرینت
به چه چیزهایی باید در این رویداد برنامه ریزی باید حواسمان باشد؟ چه چیزهایی میتواند کیفیت برنامه ریزی ما را پایین بیاورد؟
در لینک زیر این ده نکته را میتوانید مطالعه کنید 👇👇👇
https://www.scrum.org/resources/blog/5-dos-and-donts-during-sprint-planning
@iranagile
به چه چیزهایی باید در این رویداد برنامه ریزی باید حواسمان باشد؟ چه چیزهایی میتواند کیفیت برنامه ریزی ما را پایین بیاورد؟
در لینک زیر این ده نکته را میتوانید مطالعه کنید 👇👇👇
https://www.scrum.org/resources/blog/5-dos-and-donts-during-sprint-planning
@iranagile
Forwarded from کدهک
کش کردن دیتا کمک می کند دفعات کمتری به دیتابیس مراجعه کنید و از فشار مازاد به سرور و دیتابیس می کاهد. داده های زیادی هستند که به صورت مداوم آپدیت نمی شوند و می توانید آنها را موقت کش کنید تا سریعتر به کلاینت نمایش داده شود. در این ویدیو نحوه کار با In Memory Caching در ASP NET Core آموزش داده میشود.
https://codehaks.com/go/csh
https://codehaks.com/go/csh
Forwarded from DotNetZoom (ALI_1992)
✅ هک برنامه های دات نتی با dnSpy و de4dot
برای هک و کرک یک برنامه دات نتی به ترتیب به 4 مرحله زیر نیاز داریم :
1️⃣ مرحله Deobfuscate & Unpack
در این مرحله اگر برنامه مورد نظر، Obfuscate (ناخوانا کردن کد ها) یا Pack شده باشد ابتدا لازم است که آنرا Deobfuscate کنید
2️⃣ مرحله Decompile
برنامه های دات نتی چون به زبان IL کامپایل میشه امکان برگرداندنشون به کد قابل فهم #C توسط ابراز های Decompiler وجود دارد
3️⃣ مرحله Assembly Debugging
در این مرحله میتوانید مشابه Visual Studio برنامه را Debug کرده، توسط break-point خط به خط کد ها را در زمان اجرا بررسی کنید، متغیر ها و مقادیرشون رو ببینید و قسمتی از کد که لازم است تغییر کد را پیدا کنید
4️⃣ مرحله Assembly Editing
نهایتا در این مرحله باید کد مورد نظر را ویرایش کرده و سر جای خود ذخیره و کامپایل کنید
🔰 معرفی بهترین ابزار های این کار :
🔸برنامه de4dot بهترین و قویترین برنامه برای Deobfuscate است که سورس باز و رایگان بوده و در حال حاضر 19 روش Obfuscate را شناسایی و خنثی میکند
طرز کار با آن ساده بوده و توسط command line است ولی اگر میخواهید به اندازه یک راست کلیک روی برنامه و انتخاب گزینه "Deobfuscate with de4dot" ساده شود میتوانید آن از de4dot Installer برای نصب آن استفاده کنید
🔹 برنامه dnSpy بهترین و قوی ترین برنامه Decompile و Assembly Debug/Edit است که سورس باز و رایگان بوده و انواع مختلف NET Framework, NET Core, Unity و ... را متواند Decompile کند هم چنین توانایی Debugging و Editing در سطح #C و Visual Basic و مهم تر از همه IL را دارد که در نوع خود بی نظیر است
🔸 بعد از dnSpy برنامه ی DotPeek (از شرکت JetBrains) بهترین برنامه Decompiler هست که از مهم ترین قابلیت آن میتوان به برگرداندن یک DLL به یک پروژه Visual Studio ایی اشاره کرد
🔹 ویدئو آموزش هک برنامه دات نتی توسط dnSpy
https://www.youtube.com/watch?v=YLmeFJNm0Bc
_______________
@DotNetZoom
برای هک و کرک یک برنامه دات نتی به ترتیب به 4 مرحله زیر نیاز داریم :
1️⃣ مرحله Deobfuscate & Unpack
در این مرحله اگر برنامه مورد نظر، Obfuscate (ناخوانا کردن کد ها) یا Pack شده باشد ابتدا لازم است که آنرا Deobfuscate کنید
2️⃣ مرحله Decompile
برنامه های دات نتی چون به زبان IL کامپایل میشه امکان برگرداندنشون به کد قابل فهم #C توسط ابراز های Decompiler وجود دارد
3️⃣ مرحله Assembly Debugging
در این مرحله میتوانید مشابه Visual Studio برنامه را Debug کرده، توسط break-point خط به خط کد ها را در زمان اجرا بررسی کنید، متغیر ها و مقادیرشون رو ببینید و قسمتی از کد که لازم است تغییر کد را پیدا کنید
4️⃣ مرحله Assembly Editing
نهایتا در این مرحله باید کد مورد نظر را ویرایش کرده و سر جای خود ذخیره و کامپایل کنید
🔰 معرفی بهترین ابزار های این کار :
🔸برنامه de4dot بهترین و قویترین برنامه برای Deobfuscate است که سورس باز و رایگان بوده و در حال حاضر 19 روش Obfuscate را شناسایی و خنثی میکند
طرز کار با آن ساده بوده و توسط command line است ولی اگر میخواهید به اندازه یک راست کلیک روی برنامه و انتخاب گزینه "Deobfuscate with de4dot" ساده شود میتوانید آن از de4dot Installer برای نصب آن استفاده کنید
🔹 برنامه dnSpy بهترین و قوی ترین برنامه Decompile و Assembly Debug/Edit است که سورس باز و رایگان بوده و انواع مختلف NET Framework, NET Core, Unity و ... را متواند Decompile کند هم چنین توانایی Debugging و Editing در سطح #C و Visual Basic و مهم تر از همه IL را دارد که در نوع خود بی نظیر است
🔸 بعد از dnSpy برنامه ی DotPeek (از شرکت JetBrains) بهترین برنامه Decompiler هست که از مهم ترین قابلیت آن میتوان به برگرداندن یک DLL به یک پروژه Visual Studio ایی اشاره کرد
🔹 ویدئو آموزش هک برنامه دات نتی توسط dnSpy
https://www.youtube.com/watch?v=YLmeFJNm0Bc
_______________
@DotNetZoom
Forwarded from فلسفه دیزاین
هنر تاثیرگذار رفتارشناسی در Airbnb
دکتر رابرت بی. سیالدینی روانشناس، در کتاب «تأثیرگذاری» که در مورد مدیریت محصول میباشد به شش اصل کلیدی به عنوان اصول تأثیرگذاری بر مردم جهت رسیدن به خواستههای صاحب محصول اشاره میکند. این قواعد شامل تقابل، تعهد و ثبات، اثبات اجتماعی، علاقه، صلاحیت و کمیابی میباشد که در اینجا به اختصار به برخی این موارد اشاره میکنیم:
اصل تقابل: براساس اصل تقابل، اگر كسى به ما لطف كند، ما تمایل به جبران لطف طرف مقابل داریم. از موارد کاربرد این ویژگی در رونق کسب و کارها میتوان به ارائه رایگان خدمتی به مشتریان قبل از درخواست آنها اشاره نمود. به عنوان مثال، ارائه دانلود رایگان کتاب الکترونیکی و یا اشتراک رایگان یک ماهه سرویسهای ابری به مشتریان نوعی استفاده از این اصل میباشد.
اصل تعهد و پایداری: اصل تعهد و پایداری به این معناست که به محض اینکه ما به چیزی متعهد گردیم، سعی میکنیم در هر تصمیمی که میگیریم علیرغم وجود هر نوع فشار داخلی و یا خارجی به آن تعهد پایبند بمانیم. به طور مثال برای افزایش مشتریان، کسب و کارها مسابقهای ترتیب میدهند و از مشتریان خود میخواهند که در مورد کالای خاصی که دوست دارند مطلب کوتاهی بنویسند و برنده جایزه شوند.
اثبات اجتماعی: ما انسانها معمولاً در شرایطی که در تصمیمگیری خود با تردید و دودلی مواجه میشویم به دنبال آنچه دیگران در شرایط مشابه انجام دادهاند میگردیم. بنابراین، تمایل به مشاهده رفتارهای دیگران در شرایط مشابه با خود داریم. مثلا بررسی نظرات کاربران توسط مشتریان در خرید محصولی خاص نمونهای از کاربرد این اصل میباشد. به طوری که معمولاً مشاهده رضایت دیگران، تمایل بیشتری به خرید محصولات و خدمات را در ما ایجاد مینماید.
در اینجا به دلیل طولانیتر نشدن مطلب تنها به توضیح مختصر سه مورد از این اصول بسنده کردم. برای آشنایی بهتر با این اصول، درک کاربرد عملی آنها در کسب و کارهای مختلف و اطلاع از اینکه در طراحی کدام سرویسهای معتبر بکار رفتهاند شما را به خواندن مقاله امروز دعوت میکنم.
نویسنده این مقاله چگونگی استفاده از این اصول کلیدی را در سرویس Airbnb به عنوان یکی از بهترین سرویسهای ارائه خدمات اقامتی و گردشگری جهان مورد بررسی قرار داده است و به نتایج جالبی رسیده است. بنابراین اگر به مباحث مربوط به روانشناسی اجتماعی و مدیریت کسب و کار علاقه دارید، پیشنهاد میکنم مطالعه این مقاله را از دست ندهید.
https://bit.ly/dxgn637
(زمان حدودی مطالعه: ۷ دقیقه)
نویسنده: نیما حکیمرابط
#روانشناسیاجتماعی #مدیریتکسبوکار #طراحیتجربهکاری
@Dexign فلسفه دیزاین
_____
دکتر رابرت بی. سیالدینی روانشناس، در کتاب «تأثیرگذاری» که در مورد مدیریت محصول میباشد به شش اصل کلیدی به عنوان اصول تأثیرگذاری بر مردم جهت رسیدن به خواستههای صاحب محصول اشاره میکند. این قواعد شامل تقابل، تعهد و ثبات، اثبات اجتماعی، علاقه، صلاحیت و کمیابی میباشد که در اینجا به اختصار به برخی این موارد اشاره میکنیم:
اصل تقابل: براساس اصل تقابل، اگر كسى به ما لطف كند، ما تمایل به جبران لطف طرف مقابل داریم. از موارد کاربرد این ویژگی در رونق کسب و کارها میتوان به ارائه رایگان خدمتی به مشتریان قبل از درخواست آنها اشاره نمود. به عنوان مثال، ارائه دانلود رایگان کتاب الکترونیکی و یا اشتراک رایگان یک ماهه سرویسهای ابری به مشتریان نوعی استفاده از این اصل میباشد.
اصل تعهد و پایداری: اصل تعهد و پایداری به این معناست که به محض اینکه ما به چیزی متعهد گردیم، سعی میکنیم در هر تصمیمی که میگیریم علیرغم وجود هر نوع فشار داخلی و یا خارجی به آن تعهد پایبند بمانیم. به طور مثال برای افزایش مشتریان، کسب و کارها مسابقهای ترتیب میدهند و از مشتریان خود میخواهند که در مورد کالای خاصی که دوست دارند مطلب کوتاهی بنویسند و برنده جایزه شوند.
اثبات اجتماعی: ما انسانها معمولاً در شرایطی که در تصمیمگیری خود با تردید و دودلی مواجه میشویم به دنبال آنچه دیگران در شرایط مشابه انجام دادهاند میگردیم. بنابراین، تمایل به مشاهده رفتارهای دیگران در شرایط مشابه با خود داریم. مثلا بررسی نظرات کاربران توسط مشتریان در خرید محصولی خاص نمونهای از کاربرد این اصل میباشد. به طوری که معمولاً مشاهده رضایت دیگران، تمایل بیشتری به خرید محصولات و خدمات را در ما ایجاد مینماید.
در اینجا به دلیل طولانیتر نشدن مطلب تنها به توضیح مختصر سه مورد از این اصول بسنده کردم. برای آشنایی بهتر با این اصول، درک کاربرد عملی آنها در کسب و کارهای مختلف و اطلاع از اینکه در طراحی کدام سرویسهای معتبر بکار رفتهاند شما را به خواندن مقاله امروز دعوت میکنم.
نویسنده این مقاله چگونگی استفاده از این اصول کلیدی را در سرویس Airbnb به عنوان یکی از بهترین سرویسهای ارائه خدمات اقامتی و گردشگری جهان مورد بررسی قرار داده است و به نتایج جالبی رسیده است. بنابراین اگر به مباحث مربوط به روانشناسی اجتماعی و مدیریت کسب و کار علاقه دارید، پیشنهاد میکنم مطالعه این مقاله را از دست ندهید.
https://bit.ly/dxgn637
(زمان حدودی مطالعه: ۷ دقیقه)
نویسنده: نیما حکیمرابط
#روانشناسیاجتماعی #مدیریتکسبوکار #طراحیتجربهکاری
@Dexign فلسفه دیزاین
_____
Medium
Airbnb and the art of Behavioral Influence
I recently reached out to Niels Hoven for any reading material on social psychology that will be helpful from a product management…
Forwarded from Iran Agile
💢 چرا نباید افراد را مجبور کنید که به رویدادهای اسکرام بپیوندند
گاهی اوقات در سازمانهایی که اسکرام یا چابک برای مدتی نهادینه شده است، خستگی را مشاهده میکنیم. ظاهراً خیلی از توسعه دهندگان از اسکرام خوششان نمی آید. برخی شکایت دارند که اسکرام جلسات زیادی تولید می کند. این به برخی از رویدادهای اسکرام به عنوان جلساتی بدون ارتباط، ارزش، انرژی و درگیری اشاره دارد.
🌟 آیا راهی وجود دارد که مانع از آن شود که افراد حس کنند که رویدادهای اسکرام بیارزش هست؟
پاسخ بله است: دعوت کنید - تحمیل نکنید.
عضویت در رویدادهای اسکرام خود را اختیاری کنید.
بله ، کاملاً اختیاری است. مجازات عدم حضور در آن. نه اینکه یک نفر شخص دیگری را تحمیل کند. از هیچ کس انتظار نمی رود که به دلیل برخی سیاستهای شرکت که آن را به دلیل الزامات انطباق تعیین می کند، حضور پیدا کند.
ادامه مطلب در لینک زیر
👇👇👇👇
https://medium.com/serious-scrum/why-you-should-not-enforce-people-to-join-scrum-events-6ffda2c3dfc2
@iranagile
گاهی اوقات در سازمانهایی که اسکرام یا چابک برای مدتی نهادینه شده است، خستگی را مشاهده میکنیم. ظاهراً خیلی از توسعه دهندگان از اسکرام خوششان نمی آید. برخی شکایت دارند که اسکرام جلسات زیادی تولید می کند. این به برخی از رویدادهای اسکرام به عنوان جلساتی بدون ارتباط، ارزش، انرژی و درگیری اشاره دارد.
🌟 آیا راهی وجود دارد که مانع از آن شود که افراد حس کنند که رویدادهای اسکرام بیارزش هست؟
پاسخ بله است: دعوت کنید - تحمیل نکنید.
عضویت در رویدادهای اسکرام خود را اختیاری کنید.
بله ، کاملاً اختیاری است. مجازات عدم حضور در آن. نه اینکه یک نفر شخص دیگری را تحمیل کند. از هیچ کس انتظار نمی رود که به دلیل برخی سیاستهای شرکت که آن را به دلیل الزامات انطباق تعیین می کند، حضور پیدا کند.
ادامه مطلب در لینک زیر
👇👇👇👇
https://medium.com/serious-scrum/why-you-should-not-enforce-people-to-join-scrum-events-6ffda2c3dfc2
@iranagile
Medium
Why You Should Not Force People to Join Scrum Events
What happens if participation in Scrum events is voluntary? What if it is not?
Forwarded from DotNetZoom (ALI_1992)
✅ حرفه ای ترین سلوشن Logging در NETCore. با استفاده از Serilog و ElasticSearch و Kibana
#PerformanceTuning
کتابخانه های مختلفی برای لاگ کردن خطا ها در دات نت وجود داره، از جمله Elmah، NLog, Log4net و ...
کتابخانه Elmah بهترین انتخاب برای پروژه های کوچک و متوسطه، کار باهاش راحته و پنل ساده ای هم داره، ولی توی پروژه های بزرگ که تعداد لاگ ها خیلی زیاد میشه، دیگه Elmah جوابگو نیست، هم به خاطر سرعت کمش نسبت به بقیه کتابخانه ها و هم به خاطر پنل ضعیف اش که حتی یه سرچ هم نداره
در این شرایط راه های مختلفی هست مثل استفاده از سرویس های نگهداری لاگ Cloud-based مثل setrny.io , elmah.io و ...
راه حل بعدی استفاده از برنامه های مدیریت لاگ مثل Seq هستند که بر خلاف مورد قبلی، یک سرویس خارجی نیست و روی سرور خودتون لاگ ها رو نگهداری میکنه و داشبورد قدرتمندی برای سرچ و کوئری گرفتن در اختیارتون میذاره (ولی پولیه)
🔰 راه حل حرفه ای تر و البته رایگان، استفاده از Serilog و ElasticSearch و Kibana هست
🔸دیتابیس ElasticSearch در واقع یک دیتابیس NoSql و یک Search Engine (موتور جستجو) سورس باز و فوق سریع (بر پایه Lucene) هست که قابلیت جستجو و کوئری زدن زدن (به صورت full text search) با سرعت و قدرت بالا رو داره از اون برای نگهداری لاگ ها استفاده خواهیم کرد
🔹پنل Kibana هم یه پلاگین داشبور سورس باز و قدرتمند با امکانات زیاد برای نمایش اطلاعات دیتابیس Elastic هست و از اون برای نمایش خطا ها و جستجو کردن و نمودار گرفتن استفاده می کنیم
🔸 کتابخانه Serilog هم میشه گفت بهترین کتابخانه Logging هست. نسبت به NLog جدید تره و طراحی مدرن تری داره و میزان رشد محبوبیتش هم بیشتره؛ پس میشه گفت از NLog هم بهتره (البته خیلی اختلاف ندارند)
این کتابخونه قابلیت های زیادی داره که به لطف پلاگین های زیادی که برای Serilog وجود داره (اصطلاحا بهش میگن Sinks) براش فراهم شده و از لحاظ پرفرمنسی هم از NLog سریع تره.
🔹 تنها نکته مهم، استفاده از روش Structred Logging نسبت به حالت معمولی است. شاید فکر کنید دو دستور زیر هیچ تفاوتی نمیکنه!
مقالات آموزش این سلوشن :
https://bit.ly/2EAjpTh
https://bit.ly/2EBUYFc
https://bit.ly/2X7g1Xn
https://bit.ly/2Exvs3C
مخزن نمونه کد :
https://github.com/thecarlo/elastic-kibana-netcore-serilog
_____________
@DotNetZoom
#PerformanceTuning
کتابخانه های مختلفی برای لاگ کردن خطا ها در دات نت وجود داره، از جمله Elmah، NLog, Log4net و ...
کتابخانه Elmah بهترین انتخاب برای پروژه های کوچک و متوسطه، کار باهاش راحته و پنل ساده ای هم داره، ولی توی پروژه های بزرگ که تعداد لاگ ها خیلی زیاد میشه، دیگه Elmah جوابگو نیست، هم به خاطر سرعت کمش نسبت به بقیه کتابخانه ها و هم به خاطر پنل ضعیف اش که حتی یه سرچ هم نداره
در این شرایط راه های مختلفی هست مثل استفاده از سرویس های نگهداری لاگ Cloud-based مثل setrny.io , elmah.io و ...
راه حل بعدی استفاده از برنامه های مدیریت لاگ مثل Seq هستند که بر خلاف مورد قبلی، یک سرویس خارجی نیست و روی سرور خودتون لاگ ها رو نگهداری میکنه و داشبورد قدرتمندی برای سرچ و کوئری گرفتن در اختیارتون میذاره (ولی پولیه)
🔰 راه حل حرفه ای تر و البته رایگان، استفاده از Serilog و ElasticSearch و Kibana هست
🔸دیتابیس ElasticSearch در واقع یک دیتابیس NoSql و یک Search Engine (موتور جستجو) سورس باز و فوق سریع (بر پایه Lucene) هست که قابلیت جستجو و کوئری زدن زدن (به صورت full text search) با سرعت و قدرت بالا رو داره از اون برای نگهداری لاگ ها استفاده خواهیم کرد
🔹پنل Kibana هم یه پلاگین داشبور سورس باز و قدرتمند با امکانات زیاد برای نمایش اطلاعات دیتابیس Elastic هست و از اون برای نمایش خطا ها و جستجو کردن و نمودار گرفتن استفاده می کنیم
🔸 کتابخانه Serilog هم میشه گفت بهترین کتابخانه Logging هست. نسبت به NLog جدید تره و طراحی مدرن تری داره و میزان رشد محبوبیتش هم بیشتره؛ پس میشه گفت از NLog هم بهتره (البته خیلی اختلاف ندارند)
این کتابخونه قابلیت های زیادی داره که به لطف پلاگین های زیادی که برای Serilog وجود داره (اصطلاحا بهش میگن Sinks) براش فراهم شده و از لحاظ پرفرمنسی هم از NLog سریع تره.
🔹 تنها نکته مهم، استفاده از روش Structred Logging نسبت به حالت معمولی است. شاید فکر کنید دو دستور زیر هیچ تفاوتی نمیکنه!
logger.Debug("UserName is : Ali");
logger.Debug("UserName is : {username}", "Ali");
ولی عملکرد این دو یکسان نبوده و خط دوم که به صورت Structred هست اطلاعات را به صورت جداگانه ضبط و ثبت میکنه درنتیجه در کنار متن خطا، یک فیلد به نام username با مقدار Ali نیز ذخیره میکنه که کار جستجو و کوئری زدن رو راحت تر میکنهمقالات آموزش این سلوشن :
https://bit.ly/2EAjpTh
https://bit.ly/2EBUYFc
https://bit.ly/2X7g1Xn
https://bit.ly/2Exvs3C
مخزن نمونه کد :
https://github.com/thecarlo/elastic-kibana-netcore-serilog
_____________
@DotNetZoom
Forwarded from فلسفه دیزاین
کتاب تست مامان: نحوهی درست یادگیری از مشتری
کتابی که در این مطلب میخواهیم معرفی کنیم، کتاب هنر یادگرفتن از مشتری است، چیزی که ما در نهایت به عنوان محصول تولید میکنیم باید پاسخگوی نیاز مشتری باشد و هیچچیزی دردناکتر از شکست یک محصول نیست. ابزار ما سوالها و اهدافی هست که باید به درستی از کاربر پرسیده شود تا هر پاسخی که دریافت میکنیم سازنده و کارآمد برای محصول ما باشد.
یادگرفتن از مشتری مثل کندوکاو باستانشناسان برای پیدا کردن زیرخاکیهاست. همه چیز اون پایینه ولی خیلی حساس و شکننده. با هر بیلی که به زمین میزنیم به حقیقت نزدیک میشویم ولی کافیه کندوکاو ناکارآمد باشه تا گنجی که اون زیر هست، تکه تکه شه.
برای پیداکردن جواب درست باید سوال ما درست باشه. ابزار ما سوالات و اهدافمون هستن. اما باید خوب یادشون بگیریم. کار راحتی نیست اما اگر به گنج اون پایین فکر کنیم اون موقع به ارزش این مهارت پی میبریم.
اما چیزهایی که از این کتاب یاد گرفتم:
- هر ایدهای که دارین نه تنها از مادرتون بلکه از هیچکس دیگر دربارهی خوببودن آن نپرسید.
- در همان ابتدا ایدهی خودتون رو تعریف نکنید.
- دربارهی زندگی و عادات مشتری سوال بپرسید نه دربارهی ایدهی خودتون.
- درباره گذشته و رفتار مشتریها بپرسید نه دربارهی آینده، هرچیزی که به آینده مربوط هست یک دروغ خوشبینانهست.
پیشنهاد میکنم در ادامه، مقالهای که خلاصهای از برداشتهای فصول مختلف کتاب هست، مطالعه کنید یا خود کتاب را تهیه کنید و از خواندن آن لذت ببرید. 🙂
https://bit.ly/dxgn640
(زمان حدودی مطالعه: ۶ دقیقه)
نویسنده: محمدرضا وفائی
#طراحیمحصول #معرفیکتاب #مدیریتمحصول
@Dexign فلسفه دیزاین
_____
کتابی که در این مطلب میخواهیم معرفی کنیم، کتاب هنر یادگرفتن از مشتری است، چیزی که ما در نهایت به عنوان محصول تولید میکنیم باید پاسخگوی نیاز مشتری باشد و هیچچیزی دردناکتر از شکست یک محصول نیست. ابزار ما سوالها و اهدافی هست که باید به درستی از کاربر پرسیده شود تا هر پاسخی که دریافت میکنیم سازنده و کارآمد برای محصول ما باشد.
یادگرفتن از مشتری مثل کندوکاو باستانشناسان برای پیدا کردن زیرخاکیهاست. همه چیز اون پایینه ولی خیلی حساس و شکننده. با هر بیلی که به زمین میزنیم به حقیقت نزدیک میشویم ولی کافیه کندوکاو ناکارآمد باشه تا گنجی که اون زیر هست، تکه تکه شه.
برای پیداکردن جواب درست باید سوال ما درست باشه. ابزار ما سوالات و اهدافمون هستن. اما باید خوب یادشون بگیریم. کار راحتی نیست اما اگر به گنج اون پایین فکر کنیم اون موقع به ارزش این مهارت پی میبریم.
اما چیزهایی که از این کتاب یاد گرفتم:
- هر ایدهای که دارین نه تنها از مادرتون بلکه از هیچکس دیگر دربارهی خوببودن آن نپرسید.
- در همان ابتدا ایدهی خودتون رو تعریف نکنید.
- دربارهی زندگی و عادات مشتری سوال بپرسید نه دربارهی ایدهی خودتون.
- درباره گذشته و رفتار مشتریها بپرسید نه دربارهی آینده، هرچیزی که به آینده مربوط هست یک دروغ خوشبینانهست.
پیشنهاد میکنم در ادامه، مقالهای که خلاصهای از برداشتهای فصول مختلف کتاب هست، مطالعه کنید یا خود کتاب را تهیه کنید و از خواندن آن لذت ببرید. 🙂
https://bit.ly/dxgn640
(زمان حدودی مطالعه: ۶ دقیقه)
نویسنده: محمدرضا وفائی
#طراحیمحصول #معرفیکتاب #مدیریتمحصول
@Dexign فلسفه دیزاین
_____
Medium
The Mom Test by Rob Fitzpatrick
A delightful book for Product Managers
Forwarded from Iran Agile
👈 الویت بندی بکلاگ محصول با یک سوال ساده
اولویت بندی برای مدیران محصول یک چالش همیشگی است، بکلاگ محصول هرگز پایان نمییابد. اگر مدیر محصول باشید، یاد گرفته اید که گفتن "نه" همیشه آسان نیست.
به جای گفتن "نه" ، یک سوال ساده وجود دارد که می تواند به شما کمک کند: " انجام این چگونه از اهداف کسب و کار ما پشتیبانی می کند؟"
اما چگونه باید این کار را در واقعیت انجام داد؟
👇👇👇
https://brainmates.com.au/brainrants/prioritise-your-product-backlog-with-one-simple-question/
@iranagile
اولویت بندی برای مدیران محصول یک چالش همیشگی است، بکلاگ محصول هرگز پایان نمییابد. اگر مدیر محصول باشید، یاد گرفته اید که گفتن "نه" همیشه آسان نیست.
به جای گفتن "نه" ، یک سوال ساده وجود دارد که می تواند به شما کمک کند: " انجام این چگونه از اهداف کسب و کار ما پشتیبانی می کند؟"
اما چگونه باید این کار را در واقعیت انجام داد؟
👇👇👇
https://brainmates.com.au/brainrants/prioritise-your-product-backlog-with-one-simple-question/
@iranagile
Forwarded from DotNetZoom (Ali)
✅ این Mock یا Mocking چیه؟!!
#سوال_درخواستی
🔸 در واقع Mock کردن (Mocking) یک تکنیک تست نویسی است که در آن قسمتی از کد را با یک پیاده سازی دلخواه جایگزین میکنیم و از آن برای شبیه سازی یک عملیات واقعی استفاده میشه.
🔹 معمولا ماک کردن زمانی استفاده میشه که یک متد یا کلاس، وابستگی یا وابستگی هایی داره که توی تستمون تداخل ایجاد میکنه.
🔸 مثلا فرض کنید یک سرویسی رو میخواین تست کنین که داخلش از سرویس SmsSender استفاده شده (یعنی به سرویس SmsSender وابستگی داره)، درنتیجه هربار که اون تست رو انجام میدید یه SMS هم ارسال میکنه که خب لازم نیست
در این صورت میایم و سرویس SmsSender رو ماک میکنیم که دیگه Sms ارسال نکنه ولی true رو برگردونه (به این معنی که درست کار کرده)
🔹 این باعث میشه ما بتونیم عملکرد (functionality) همون متد رو تست کنیم به جای اینکه تست مون را درگیر و وابسته به عوامل ثالث (مثل ارسال SMS) کنیم
🔰حالا چه وقتایی معمولا ماک استفاده میشه؟
1️⃣ وابستگی ما در دسترس نباشه
مثلا سرویس شما قراره یه اطلاعاتی رو از وب سرویس بخونه، خب اگه اینترنت قط باشه، تا بالاترن سطح سرویس هامون که به این وابسته بوده fail میشه، پس میایم ماک اش میکنیم و میگیم با فرض اینکه وب سرویس در دسترسه و داره درست اطلاعات رو بر میگردونه، حالا برو ببینم خودت چند مرده حلاجی؟!
2️⃣ وابستگی ما کند باشه
مثلا یه تست برای انجام شدنش نیاز به یه کوئری به دیتابیس داره که 60 ثانیه زمان میبره، پس میایم و ادامه ماجرا ...
3️⃣ وابستگی ما باید توی تست رفتارش عوض بشه
مثل همین مثال سرویس SmsSender
4️⃣ و چندین سناریو دیگه ...
🔰 بهترین کتابخانه های Mocking در دات نت این ها هستند
1️⃣ Moq
2️⃣ NSubstitute
3️⃣ FakeItEasy
🔰حالا یه سوالی که پیش میاد اینه که این کتابخانه های Mocking چطوری کار میکنن؟!
اساس کار این ابزار ها به 2 صورت هست
1️⃣ بر اساس interface :
که عملا توی runtime، یک کلاس الکی درست میکنن که از interface شما ارث بری کرده و بهتون اجازه میده که پیاده سازی متد هاش رو تغییر بدین
2️⃣ بر اساس virtual :
در این روش متد هایی که میخواین قابل mock شدن باشن باید virtual تعریف بشن، در این صورت میاد و توی runtime یک کلاس ایجاد میکنه که از کلاس مورد نظر شما ارث بری کرده ولی متد های virtual اش رو override (بازنویسی) کرده و بهتون اجازه میده که پیاده سازی متد هاش رو تغییر بدین
_____________
@DotNetZoom
#سوال_درخواستی
🔸 در واقع Mock کردن (Mocking) یک تکنیک تست نویسی است که در آن قسمتی از کد را با یک پیاده سازی دلخواه جایگزین میکنیم و از آن برای شبیه سازی یک عملیات واقعی استفاده میشه.
🔹 معمولا ماک کردن زمانی استفاده میشه که یک متد یا کلاس، وابستگی یا وابستگی هایی داره که توی تستمون تداخل ایجاد میکنه.
🔸 مثلا فرض کنید یک سرویسی رو میخواین تست کنین که داخلش از سرویس SmsSender استفاده شده (یعنی به سرویس SmsSender وابستگی داره)، درنتیجه هربار که اون تست رو انجام میدید یه SMS هم ارسال میکنه که خب لازم نیست
در این صورت میایم و سرویس SmsSender رو ماک میکنیم که دیگه Sms ارسال نکنه ولی true رو برگردونه (به این معنی که درست کار کرده)
🔹 این باعث میشه ما بتونیم عملکرد (functionality) همون متد رو تست کنیم به جای اینکه تست مون را درگیر و وابسته به عوامل ثالث (مثل ارسال SMS) کنیم
🔰حالا چه وقتایی معمولا ماک استفاده میشه؟
1️⃣ وابستگی ما در دسترس نباشه
مثلا سرویس شما قراره یه اطلاعاتی رو از وب سرویس بخونه، خب اگه اینترنت قط باشه، تا بالاترن سطح سرویس هامون که به این وابسته بوده fail میشه، پس میایم ماک اش میکنیم و میگیم با فرض اینکه وب سرویس در دسترسه و داره درست اطلاعات رو بر میگردونه، حالا برو ببینم خودت چند مرده حلاجی؟!
2️⃣ وابستگی ما کند باشه
مثلا یه تست برای انجام شدنش نیاز به یه کوئری به دیتابیس داره که 60 ثانیه زمان میبره، پس میایم و ادامه ماجرا ...
3️⃣ وابستگی ما باید توی تست رفتارش عوض بشه
مثل همین مثال سرویس SmsSender
4️⃣ و چندین سناریو دیگه ...
🔰 بهترین کتابخانه های Mocking در دات نت این ها هستند
1️⃣ Moq
2️⃣ NSubstitute
3️⃣ FakeItEasy
🔰حالا یه سوالی که پیش میاد اینه که این کتابخانه های Mocking چطوری کار میکنن؟!
اساس کار این ابزار ها به 2 صورت هست
1️⃣ بر اساس interface :
که عملا توی runtime، یک کلاس الکی درست میکنن که از interface شما ارث بری کرده و بهتون اجازه میده که پیاده سازی متد هاش رو تغییر بدین
2️⃣ بر اساس virtual :
در این روش متد هایی که میخواین قابل mock شدن باشن باید virtual تعریف بشن، در این صورت میاد و توی runtime یک کلاس ایجاد میکنه که از کلاس مورد نظر شما ارث بری کرده ولی متد های virtual اش رو override (بازنویسی) کرده و بهتون اجازه میده که پیاده سازی متد هاش رو تغییر بدین
_____________
@DotNetZoom
GitHub
GitHub - devlooped/moq: The most popular and friendly mocking framework for .NET
The most popular and friendly mocking framework for .NET - devlooped/moq
Forwarded from فلسفه دیزاین
دیزاین اسپرینت: روشی برای حل مساله
ما در استودیو دیزاین نیاز به یک راهکار سریع و خوب برای ایدهپردازی روشمند در جهت حل مسائل طراحی محصول را کاملا حس کردیم و پس از آزمودن روشهای مختلف و بعضا ابتکاری خودمان، بر آن شدیم که از دیزاین اسپرینت در برخی پروژهها بهره ببریم.
دیزاین اسپرینت روشیست که ساخت محصول اولیه، تست و استخراج ایرادات آن را با سرعت بالا امکانپذیر میکند. این روش یک فرآیند پنج روزه برای پاسخدهی به سوالات حساس بیزینس از طریق دیزاین، پروتوتایپ کردن و تست ایدهها با مشتری است.
در مقاله امروز به توضیح این روش و بررسی نکات کلیدی آن پرداختهایم. این مقاله برپایه کتاب The Design sprint نوشته شده است.
https://bit.ly/dxgn641
(زمان حدودی مطالعه: ۱۳ دقیقه)
نویسنده: فرشید ایپکچی
#طراحی_محصول #دیزاین_اسپرینت
@Dexign فلسفه دیزاین
_____
ما در استودیو دیزاین نیاز به یک راهکار سریع و خوب برای ایدهپردازی روشمند در جهت حل مسائل طراحی محصول را کاملا حس کردیم و پس از آزمودن روشهای مختلف و بعضا ابتکاری خودمان، بر آن شدیم که از دیزاین اسپرینت در برخی پروژهها بهره ببریم.
دیزاین اسپرینت روشیست که ساخت محصول اولیه، تست و استخراج ایرادات آن را با سرعت بالا امکانپذیر میکند. این روش یک فرآیند پنج روزه برای پاسخدهی به سوالات حساس بیزینس از طریق دیزاین، پروتوتایپ کردن و تست ایدهها با مشتری است.
در مقاله امروز به توضیح این روش و بررسی نکات کلیدی آن پرداختهایم. این مقاله برپایه کتاب The Design sprint نوشته شده است.
https://bit.ly/dxgn641
(زمان حدودی مطالعه: ۱۳ دقیقه)
نویسنده: فرشید ایپکچی
#طراحی_محصول #دیزاین_اسپرینت
@Dexign فلسفه دیزاین
_____
Forwarded from Iran Agile
🔗 12 روش برای ایجاد روحیه تیمی از راه دور در طولانی مدت و نه به عنوان یک فعالیت کوتاه مدت
اکنون، بیش از هر زمان دیگری، این سوال وجود دارد که "چگونه روحیه تیمی را از راه دور ایجاد کنیم؟"
از زبان بدن تیم خود در تماس های زوم یا اسکایپ یا ...، می توانید تشخیص دهید. افراد به نظر بی روحیه می رسند، سطح انرژی پایین است.
شما در این احساس تنها نیستید. سی و نه درصد از مدیران در کارگاه اخیر KYT Live! جلسه با صدها مدیر از سراسر جهان ، سطح فعلی روحیه در تیم آنها را "پایین" توصیف کرد (از 140 شرکت کننده در نظرسنجی).
در میان همه گیری ها و انتخابات ایالات متحده و همه که اکنون از راه دور کار می کنند ، یک طوفان ترس ، اضطراب و کسالت به بسیاری از تیم ها راه یافته است.
به عنوان یک رهبر، احساس فشار می کنید: البته شما می خواهید همه چیز را برگردانید. برای اینکه روحیه تیم خود را بالا ببرید و بفهمید چگونه روحیه تیمی را از راه دور ایجاد کنید. اما چگونه این کار را باید انجام داد؟
👇👇👇
https://knowyourteam.com/blog/2020/10/29/how-to-build-team-morale-remotely/
@iranagile
اکنون، بیش از هر زمان دیگری، این سوال وجود دارد که "چگونه روحیه تیمی را از راه دور ایجاد کنیم؟"
از زبان بدن تیم خود در تماس های زوم یا اسکایپ یا ...، می توانید تشخیص دهید. افراد به نظر بی روحیه می رسند، سطح انرژی پایین است.
شما در این احساس تنها نیستید. سی و نه درصد از مدیران در کارگاه اخیر KYT Live! جلسه با صدها مدیر از سراسر جهان ، سطح فعلی روحیه در تیم آنها را "پایین" توصیف کرد (از 140 شرکت کننده در نظرسنجی).
در میان همه گیری ها و انتخابات ایالات متحده و همه که اکنون از راه دور کار می کنند ، یک طوفان ترس ، اضطراب و کسالت به بسیاری از تیم ها راه یافته است.
به عنوان یک رهبر، احساس فشار می کنید: البته شما می خواهید همه چیز را برگردانید. برای اینکه روحیه تیم خود را بالا ببرید و بفهمید چگونه روحیه تیمی را از راه دور ایجاد کنید. اما چگونه این کار را باید انجام داد؟
👇👇👇
https://knowyourteam.com/blog/2020/10/29/how-to-build-team-morale-remotely/
@iranagile
Forwarded from DotNetZoom (Ali)
✅ مقایسه پرفرمنس gRPC و REST
طبق این بنچمارک میتونین ببینین که توی درخواست های سبک ( مثل یه GET ساده با دیتای کم حجم) gRPC و REST تفاوتی خاصی با هم ندارن
ولی توی درخواست های سنگین (که حجم دیتای انتقالی زیاد باشه) :
🔸توی حالت GET (دریافت اطلاعات) gRPC بیش از 7 برابر سریع تر از REST عمل میکنه
🔹وتوی حالت POST (ارسال اطلاعات) gRPC بیش از 11 برابر سریع تر از REST عمل میکنه
🔸دلیل اصلی این سرعت بسیار بالا اینه که gRPC از Protocol Buffers برای سریالایز و فشرده سازی اطلاعات استفاده میکنه و نیز به صورت پیشفرض از HTTP/2 و استفاده میکنه که اون هم یه مکانیزم فشرده سازی داره
🔹برای کار با gRPC در حالت عادی باید از CLI مخصوص اون "protoc" برای کامپایل و تولید کلاس های سرویس از روی فایل های "proto." استفاده کنید. ولی با Visual Studio میتونین همین کار رو کامپایلر built-in اش راحت تر انجام بدین
🔸جمع بندی اینکه gRPC میتونه گزینه بسیار خوبی برای ارتباطات بیین Micro-service ها باشه
لینک مقاله و ریپازیتوری گیتهاب این بنچمارک
Evaluating Performance of REST vs. gRPC
Github Repository
________________
@DotNetZoom
طبق این بنچمارک میتونین ببینین که توی درخواست های سبک ( مثل یه GET ساده با دیتای کم حجم) gRPC و REST تفاوتی خاصی با هم ندارن
ولی توی درخواست های سنگین (که حجم دیتای انتقالی زیاد باشه) :
🔸توی حالت GET (دریافت اطلاعات) gRPC بیش از 7 برابر سریع تر از REST عمل میکنه
🔹وتوی حالت POST (ارسال اطلاعات) gRPC بیش از 11 برابر سریع تر از REST عمل میکنه
🔸دلیل اصلی این سرعت بسیار بالا اینه که gRPC از Protocol Buffers برای سریالایز و فشرده سازی اطلاعات استفاده میکنه و نیز به صورت پیشفرض از HTTP/2 و استفاده میکنه که اون هم یه مکانیزم فشرده سازی داره
🔹برای کار با gRPC در حالت عادی باید از CLI مخصوص اون "protoc" برای کامپایل و تولید کلاس های سرویس از روی فایل های "proto." استفاده کنید. ولی با Visual Studio میتونین همین کار رو کامپایلر built-in اش راحت تر انجام بدین
🔸جمع بندی اینکه gRPC میتونه گزینه بسیار خوبی برای ارتباطات بیین Micro-service ها باشه
لینک مقاله و ریپازیتوری گیتهاب این بنچمارک
Evaluating Performance of REST vs. gRPC
Github Repository
________________
@DotNetZoom
Forwarded from فلسفه دیزاین
مرتبسازی کارت یا Card Sorting – روشی برای معماری اطلاعات بهتر
مرتبسازی کارت روشی برای تحقیق در حوزهی تجربهی کاربری است که کاربران موضوعات را به صورت گروهی دستهبندی میکنند. بخشی از ساخت یک وبسایت کارآمد، سازماندهی اطلاعات به گونهای است که افراد آنچه را که میخواهند به راحتی پیدا کنند. اغلب اوقات، محتوا بر اساس آنچه برای شرکتها و استارتاپها معنی دارد نه برای کاربران ساخته میشود. یکی از راههای اصلی برای فهمیدن این که یک سرویس با مدل ذهنی کاربران مطابقت دارد، از طریق مرتبسازی کارت است.
در این مقاله، با مفهوم و جزییات مرتبسازی کارت بیشتر آشنا شوید.
https://bit.ly/dxgn647
(زمان مورد نیاز برای مطالعه: ۱۲ دقیقه)
نویسنده: محمدرضا وفائی
#مرتبسازیکارت #تجربهکاربری #تحقیق
@Dexign فلسفه دیزاین
__
مرتبسازی کارت روشی برای تحقیق در حوزهی تجربهی کاربری است که کاربران موضوعات را به صورت گروهی دستهبندی میکنند. بخشی از ساخت یک وبسایت کارآمد، سازماندهی اطلاعات به گونهای است که افراد آنچه را که میخواهند به راحتی پیدا کنند. اغلب اوقات، محتوا بر اساس آنچه برای شرکتها و استارتاپها معنی دارد نه برای کاربران ساخته میشود. یکی از راههای اصلی برای فهمیدن این که یک سرویس با مدل ذهنی کاربران مطابقت دارد، از طریق مرتبسازی کارت است.
در این مقاله، با مفهوم و جزییات مرتبسازی کارت بیشتر آشنا شوید.
https://bit.ly/dxgn647
(زمان مورد نیاز برای مطالعه: ۱۲ دقیقه)
نویسنده: محمدرضا وفائی
#مرتبسازیکارت #تجربهکاربری #تحقیق
@Dexign فلسفه دیزاین
__
Nielsen Norman Group
Card Sorting: Uncover Users' Mental Models for Better Information Architecture
Card sorting is a UX research technique in which users organize topics into groups. Use it to create an IA that suits your users' expectations.
Forwarded from Iran Agile
👈 هشت روش متفاوت تخمین زدن برای تیمهای چابک
T-Shirt Sizing 👕
Sprint Poker 🃏
Three Point Method 🔺
Affinity Estimation 📊
Relative Mass Evaluation ⚖️
Dot Voting 🟢
Maximum Allowable Size ⛔
Big, Uncertain, Small 🎰
https://www.parabol.co/blog/agile-estimation-techniques
@iranagile
T-Shirt Sizing 👕
Sprint Poker 🃏
Three Point Method 🔺
Affinity Estimation 📊
Relative Mass Evaluation ⚖️
Dot Voting 🟢
Maximum Allowable Size ⛔
Big, Uncertain, Small 🎰
https://www.parabol.co/blog/agile-estimation-techniques
@iranagile
Forwarded from DotNetZoom (Ali)
❇️ آموزش عیب یابی و رفع مشکلات Performance ایی برنامه های ASP.NET Core (زبان اصلی زیر نویس دار)
از پایین ویدئو گزینه [Subnoscript/captions] میتوانید زیرنویس آن را فعال کنید
[04:10] - Introducing the demo
[06:03] - Performance Diagnostic tools
[08:37] - Collecting performance data with PerfCollect
[16:24] - Inspecting performance data with PerfView
[25:30] - Common ASP.NET Core Performance Issue
[28:49] - ASP.NET Core Performance Best Practices
Useful Links
PerfView
PerfCollect
ASP.NET Core performance best practices
____________
@DotNetZoom
از پایین ویدئو گزینه [Subnoscript/captions] میتوانید زیرنویس آن را فعال کنید
[04:10] - Introducing the demo
[06:03] - Performance Diagnostic tools
[08:37] - Collecting performance data with PerfCollect
[16:24] - Inspecting performance data with PerfView
[25:30] - Common ASP.NET Core Performance Issue
[28:49] - ASP.NET Core Performance Best Practices
Useful Links
PerfView
PerfCollect
ASP.NET Core performance best practices
____________
@DotNetZoom
Docs
Diagnosing ASP.NET Core performance issues
In the episode, Mike Rousos shows us how we can use tools like PerfView and PerfCollect to diagnose performance problems in ASP.NET Core applications. He discusses how we can use the tools for performance analysis on both Linux and Windows servers. Also,…
👍1
Forwarded from فلسفه دیزاین
قانون پارکینسون یا اصل محدودیت زمانی
«هر کار به اندازهی زمانی که برای آن تخصیص داده شده طول میکشد.»
قانون پارکینسون مفهومی رایج در مدیریت است. نام آن از نام تاریخدان انگلیسی سیریل نورثکوت پارکینسون گرفته شده که در سال ۱۹۵۵ در مقالهای طنزآمیز در اکونومیست به این قانون اشاره کرده است.
این قانون زمینهی گسترش بیرویه بوروکراسی را بیان میکند. از دید این قانون هر کار تا زمانی که برای آن تعیین شده طول میکشد و این مدت ارتباط چندانی با میزان و ماهیت کار ندارد.
این نحوه عمل در سازمانها رخ میدهد و بوروکراسیها بدون گسترش اهدافشان، خود گسترش مییابند.
گاهی اوقات دقت کردهایید که هنگام انجام دیزاینی که به دقایق ۹۰ آن رسیده، تازه ایدهها به سراغتان میآیند و بهرهوری لازم به اوج خود میرسد؟! اما چه فایده که به پایان مهلت آن کار رسیدهاید و دیگر فرصتی نیست.
اینکه هر قسمت از وظیفه یا کار باید محدودیت زمانی داشته و انتهای آن بسته باشد به این دلیل است که انسان با تعصبها و ناهنجاریهای شناختیای که دارد در پیشبینی و تخمین زدن، بسیار بد عمل میکند. به نظر میرسد برای انجام کاری چه یک هفته وقت گذاشته شود و چه یک روز، ما آن را تا نزدیک موعد مقرر آن انجام نمیدهیم. پس بهتر نیست که زمان مناسب و لازم را برای آن در نظر بگیریم؟
البته این بدان معنی نیست که شما به عنوان مثال یک اپلیکیشن بزرگ را در یک روز به صورت کامل ببندید که نتیجه جز فاجعه چیزی نخواهد بود.
باید یک تعادل مناسب بین حجم کاری که در حال انجام آن هستیم و زمان مورد نیاز آن ایجاد کنیم و چه بهتر که این زمان به اندازههای کوچکتر تقسیم شوند تا به کلیات نتایجی که نیاز داریم سریعتر برسیم و درصورت شکست، لااقل زمان زیادی را هدر نداده باشیم.
فکر میکنم برای واکاوی بیشتر این موضوع، خواندن مقالهی زیر راهگشا باشد:
https://bit.ly/dxgn648
پ.ن: خوشحال میشویم که تجربیات خود را در مورد مدیریت زمان با ما در زیر همین پست در قسمت نظرات به اشتراک بگذارید.
(زمان حدودی مطالعهی مقاله: ۶ دقیقه)
نویسنده: حسین میرزاده
#تجربه_کاربری #قانون_پارکینسون #مدیریت_زمان #محدودیت
@Dexign فلسفه دیزاین
__
«هر کار به اندازهی زمانی که برای آن تخصیص داده شده طول میکشد.»
قانون پارکینسون مفهومی رایج در مدیریت است. نام آن از نام تاریخدان انگلیسی سیریل نورثکوت پارکینسون گرفته شده که در سال ۱۹۵۵ در مقالهای طنزآمیز در اکونومیست به این قانون اشاره کرده است.
این قانون زمینهی گسترش بیرویه بوروکراسی را بیان میکند. از دید این قانون هر کار تا زمانی که برای آن تعیین شده طول میکشد و این مدت ارتباط چندانی با میزان و ماهیت کار ندارد.
این نحوه عمل در سازمانها رخ میدهد و بوروکراسیها بدون گسترش اهدافشان، خود گسترش مییابند.
گاهی اوقات دقت کردهایید که هنگام انجام دیزاینی که به دقایق ۹۰ آن رسیده، تازه ایدهها به سراغتان میآیند و بهرهوری لازم به اوج خود میرسد؟! اما چه فایده که به پایان مهلت آن کار رسیدهاید و دیگر فرصتی نیست.
اینکه هر قسمت از وظیفه یا کار باید محدودیت زمانی داشته و انتهای آن بسته باشد به این دلیل است که انسان با تعصبها و ناهنجاریهای شناختیای که دارد در پیشبینی و تخمین زدن، بسیار بد عمل میکند. به نظر میرسد برای انجام کاری چه یک هفته وقت گذاشته شود و چه یک روز، ما آن را تا نزدیک موعد مقرر آن انجام نمیدهیم. پس بهتر نیست که زمان مناسب و لازم را برای آن در نظر بگیریم؟
البته این بدان معنی نیست که شما به عنوان مثال یک اپلیکیشن بزرگ را در یک روز به صورت کامل ببندید که نتیجه جز فاجعه چیزی نخواهد بود.
باید یک تعادل مناسب بین حجم کاری که در حال انجام آن هستیم و زمان مورد نیاز آن ایجاد کنیم و چه بهتر که این زمان به اندازههای کوچکتر تقسیم شوند تا به کلیات نتایجی که نیاز داریم سریعتر برسیم و درصورت شکست، لااقل زمان زیادی را هدر نداده باشیم.
فکر میکنم برای واکاوی بیشتر این موضوع، خواندن مقالهی زیر راهگشا باشد:
https://bit.ly/dxgn648
پ.ن: خوشحال میشویم که تجربیات خود را در مورد مدیریت زمان با ما در زیر همین پست در قسمت نظرات به اشتراک بگذارید.
(زمان حدودی مطالعهی مقاله: ۶ دقیقه)
نویسنده: حسین میرزاده
#تجربه_کاربری #قانون_پارکینسون #مدیریت_زمان #محدودیت
@Dexign فلسفه دیزاین
__
Medium
Parkinson’s Law: Why Constraints Are The Best Thing You Can Work With
“Work expands to fill the time available for its completion.”
Forwarded from Iran Agile
"ما ساختمانهایمان را شکل می دهیم، پس از آن ساختمانها ما را شکل میدهند." چرچیل.
بله، این افراد هستند که سازمانها، فرایندها و فرهنگ را شکل میدهند. اما همین افراد به همان اندازه که کنترل کننده آن تصمیمات هستند، اسیر آن تصمیمات و سیستمهای خود ساخته نیز هستند.
بسیاری از اوقات شاید بگوییم که فلان فرآیند یا سیستم و ... مشکل دارد، ولی در حقیقت این مشکل افراد هست نه فرآیند یا ابزار. شاید فکر کنیم تغییر آن موارد به معنای تغییر سیستم است، در حالی که این تغییر باید توسط افراد ایجاد شود.
افراد سیستم را میسازند، ولی خود افراد دوباره اسیر سیستم میشوند و سیستم تصمیمهای آینده را شکل میدهد؟
در اینجا بین انجمن چابک، دوگانگی بزرگی وجود دارد، یک دسته فکر میکنند که افراد در مرکز چابکی هستند ولی دسته دوم فکر میکنند سیستم در مرکز هست زیرا این سیستم است که به افراد و روابط شکل میدهد.
مربی ها، افراد را در مرکز امور قرار میدهند ولی مشاورها تمرکز روی سیستم دارند.
اما واقعاً کدام در مرکز توجه باید باشد؟
👇👇👇👇
https://www.allankellyassociates.co.uk/archives/4834/the-people-problem-problem-and-the-great-agile-divide/
@iranagile
بله، این افراد هستند که سازمانها، فرایندها و فرهنگ را شکل میدهند. اما همین افراد به همان اندازه که کنترل کننده آن تصمیمات هستند، اسیر آن تصمیمات و سیستمهای خود ساخته نیز هستند.
بسیاری از اوقات شاید بگوییم که فلان فرآیند یا سیستم و ... مشکل دارد، ولی در حقیقت این مشکل افراد هست نه فرآیند یا ابزار. شاید فکر کنیم تغییر آن موارد به معنای تغییر سیستم است، در حالی که این تغییر باید توسط افراد ایجاد شود.
افراد سیستم را میسازند، ولی خود افراد دوباره اسیر سیستم میشوند و سیستم تصمیمهای آینده را شکل میدهد؟
در اینجا بین انجمن چابک، دوگانگی بزرگی وجود دارد، یک دسته فکر میکنند که افراد در مرکز چابکی هستند ولی دسته دوم فکر میکنند سیستم در مرکز هست زیرا این سیستم است که به افراد و روابط شکل میدهد.
مربی ها، افراد را در مرکز امور قرار میدهند ولی مشاورها تمرکز روی سیستم دارند.
اما واقعاً کدام در مرکز توجه باید باشد؟
👇👇👇👇
https://www.allankellyassociates.co.uk/archives/4834/the-people-problem-problem-and-the-great-agile-divide/
@iranagile
Forwarded from کدهک
آموزش RabbitMQ و پیاده سازی الگوی Messaging
در این ویدیو به معرفی RabbitMQ می پردازیم و نحوه استفاده از آن را در NET Core. بررسی می کنیم. از RabbitMQ به عنوان Message Broker استفاده میشود که میتواند پیامها را درون صف نگه دارد و به ترتیب در اختیار سایر سرویس ها قرار دهد. این ابزار در پیاده سازی Distributed System ها و میکروسرویس ها کاربرد زیادی دارد.
https://codehaks.com/go/fpw
در این ویدیو به معرفی RabbitMQ می پردازیم و نحوه استفاده از آن را در NET Core. بررسی می کنیم. از RabbitMQ به عنوان Message Broker استفاده میشود که میتواند پیامها را درون صف نگه دارد و به ترتیب در اختیار سایر سرویس ها قرار دهد. این ابزار در پیاده سازی Distributed System ها و میکروسرویس ها کاربرد زیادی دارد.
https://codehaks.com/go/fpw
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
✅ قابلیت Decompile کد های #C در Visual Studio
قبلا در مورد اضافه شدن قابلیت Decompile کد های سی شارپ در VSCode توسط ILSpy گفته بودیم
این قابلیت برای Visual Studio هم وجود داره اما در حالت پیش نمایش هست و به صورت پیشفرض فعال نیست
جهت فعال سازی این قابلیت باید از منو Tools گزینه Options را انتخاب کرده و از قسمت Text Editor > C# > Advanced گزینه Enable navigation to decompiled sources رو تیک بزنین
بعد از فعال سازی روی کلاس/متدی که سورسش رو ندارین راست کلید و گزینه "Go to Definition" رو انتخاب کنین براتون Decompile کنه و کدشو نشونتون بده
این امکان هم توسط کتابخانه معروف ILSpy انجام شده و بار اولی که ازش استفاده کنین یه سوال (در مورد قبول License کتابخونه ILSpy) میپرسه که گزینه Yes رو باید بزنین
جهت استفاده از این قابلیت باید حداقل ویژوال استادیو 2019 نسخه 16.5 به بالا نصب داشته باشین (از منوی Help گزینه Check for Update میتونین چک کنین)
جهت مطالعه بیشتر اینجا و اینجا
______________
@DotNetZoom
قبلا در مورد اضافه شدن قابلیت Decompile کد های سی شارپ در VSCode توسط ILSpy گفته بودیم
این قابلیت برای Visual Studio هم وجود داره اما در حالت پیش نمایش هست و به صورت پیشفرض فعال نیست
جهت فعال سازی این قابلیت باید از منو Tools گزینه Options را انتخاب کرده و از قسمت Text Editor > C# > Advanced گزینه Enable navigation to decompiled sources رو تیک بزنین
بعد از فعال سازی روی کلاس/متدی که سورسش رو ندارین راست کلید و گزینه "Go to Definition" رو انتخاب کنین براتون Decompile کنه و کدشو نشونتون بده
این امکان هم توسط کتابخانه معروف ILSpy انجام شده و بار اولی که ازش استفاده کنین یه سوال (در مورد قبول License کتابخونه ILSpy) میپرسه که گزینه Yes رو باید بزنین
جهت استفاده از این قابلیت باید حداقل ویژوال استادیو 2019 نسخه 16.5 به بالا نصب داشته باشین (از منوی Help گزینه Check for Update میتونین چک کنین)
جهت مطالعه بیشتر اینجا و اینجا
______________
@DotNetZoom
اولین #گپ_تکنیکال «فلسفه نرمافزار»
با موضوع «Open Source and Community Driven Activity»
همونطور که میدونین تلگرام امکان Voice Chat رو اخیرا به کانالها اضافه کرده، امکانی که تجربه خیلی جالبی رو به تلگرام اضافه کرده که خیلی مشابه Clubhouse هست و باعث میشه بتونیم گپهای باحالی با هم بزنیم. انگار رفتیم و تو یه کافه نشستیم و با هم گپ تکنیکال میزنیم.
ما هم تصمیم گرفتیم اولین گپ تکنیکال رو از طریق همین ابزار برگزار کنیم.
تو این دورهمی #مهران_داودی، #یاسر_مرادی و #محمد_جواد_ابراهیمی هم صحبت خواهند کرد.
امروز، یکشنبه، ۸ فروردین، ساعت ۲۰:۰۰ منتظرتون هستیم. حتما تلگرامتون رو آپدیت کنین و برای اینکه اون تایم یادتون نره میتونین کانال (@SoftwarePhilosophy) رو تو تلگرامتون پین کنین موقع شروع متوجه بشید.
@SoftwarePhilosophy
با موضوع «Open Source and Community Driven Activity»
همونطور که میدونین تلگرام امکان Voice Chat رو اخیرا به کانالها اضافه کرده، امکانی که تجربه خیلی جالبی رو به تلگرام اضافه کرده که خیلی مشابه Clubhouse هست و باعث میشه بتونیم گپهای باحالی با هم بزنیم. انگار رفتیم و تو یه کافه نشستیم و با هم گپ تکنیکال میزنیم.
ما هم تصمیم گرفتیم اولین گپ تکنیکال رو از طریق همین ابزار برگزار کنیم.
تو این دورهمی #مهران_داودی، #یاسر_مرادی و #محمد_جواد_ابراهیمی هم صحبت خواهند کرد.
امروز، یکشنبه، ۸ فروردین، ساعت ۲۰:۰۰ منتظرتون هستیم. حتما تلگرامتون رو آپدیت کنین و برای اینکه اون تایم یادتون نره میتونین کانال (@SoftwarePhilosophy) رو تو تلگرامتون پین کنین موقع شروع متوجه بشید.
@SoftwarePhilosophy