CodeCrafters
765 subscribers
92 photos
50 videos
42 files
170 links
Download Telegram
اسکوپ کریپ چیست؟؟؟

این پست مناسب دوستانی هست که پروژه‌های فریلنسری میگیرن


در طول این سالها با دوستانی که برخورد کردم یک موضوع مشترک وجود داشت

یکی از چالش‌های دنیای پروژه‌های فریلنسری توقعات خارج از چهارچوب اولیه توافق شده بین کارفرما و توسعه دهنده هست بابت اشنایی با جنبه‌های مختلف آن و مدیریت بهتر دو لینک زیر رو بخونید



https://productive.io/blog/scope-creep-prevent/


https://mag.hostiran.net/scope-creep-web-design/


@code_crafters
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
به قول حضرت عشق جان من است او. 3>
مگه بهتر از کامپیوترها هم هست؟ :)
اولین خاطره کامپیوتریت چی بود؟
#Nostalgic
🧑‍💻👩‍💻 @code_crafters
6
اجایل مجموعه ای از اصول و ارزش ها هست که معمولا در توسعه نرم افزار استفاده میشود و باعث افزایش بهره وری تیم میشود.

Agile (چابک)
اجایل یک رویکرد تکراری و افزایشی است که بر انعطاف پذیری، همکاری، و اراعه ارزش ها به مشتریان تاکید دارد.

اجایل برنامه ریزی انطباق پذیر، توسعه مداوم و چرخه های بازخورد سریع رو ترویج میدهد.
اجایل به افراد و تعاملات بیش از ابزار ها، به یک نرم افزار کار کننده بیش از مستندات جامع، به مشارکت مشتری بیش از قرارداد، و به پاسخ به تغییرات بیشتر از پیروی کردن از برنامه ارزش میدهد.

12 اصل اجایل پیشنهاد داده است که به شما برای حفظ این ارزش ها کمک کند :

1- رضایت مشتری در اولویت قرار داشته باشد. یک تیم توسعه نرم افزار باید پیوسته و به طور مداوم محصول خود را اراعه دهد.

2- از هر گونه تغییرات استقبال بشود، حتی اگر پروژه در مراحل پایانی قرار دارد.

3- تحویل زود به زود نرم افزار قابل استفاده به مارکت. طبق اصل 1و2 شما باید سریع نرم افزار رو اراعه بدید و تغییرات رو اعمال بکنید. اجایل به شما یک فاصله زمانی 2-3 هفته تا 2-3 ماهه پیشنهاد میدهد تا نرم افزار خود را در مارکت پابلیش کنید. ترجیح به فاصله زمانی کمتر است.

4- ذی‌نفعان کسب و کار و دولوپر ها باید به صورت روزانه با هم مشارکت داشته باشند.

5- مسئولیت پروژه را برعهده افراد با انگیزه بگذارید. به انها ازادی عمل دهید و ان‌ها به دلیل با انگیزه بودنشان بسیار جدی پیگیر پروژه خواهند بود.

6- تیم نرم‌افزار به صورت رو در رو اطلاعات را به همدیگر انتقال دهند زیرا بیشترین تاثیر را دارد.

7- معیار سنجش تیم، خروجی کار باشد.

8- توسعه پایدار به صورت ثابت و مداوم حامیان مالی و توسعه دهندگان.

9- توجه مداوم به برتری فنی و طراحی خوب چابکی رو افزایش میدهد.

10- سادگی – هنر افزایش کار های انجام نشده. از افزودن فیچر های غیر ضروری اجتناب کنید.

11- بهترین معماری ها و نیاز ها و طراح ها از تیم های خود سازمانده پدیدار میشوند. بجای اینکه در یک تیم یک نفر مسعول هدایت تیم باشد باید تمام اعضای تیم مشارکت داشته باشند و از ایده های اعضای تیم استفاده کنند.

12- در فواصل منظم اعضای تیم بر چگونگی موثر تر شدن همفکری میکنند و سپس تیم خود را بر اساس بازتاب این تفکر باید اصلاح کنند.

اجایل بر کوچک کردن بخش های پروژه و تسک های قابل مدیریت تمرکز میکند که بهشون استوری های یوزر میگویند.
اجایل از تیم های کراس-فانکشنال ( تیم هایی که اعضایی با مهارت های مختلف دارند)، همکاری اعضای تیم و مشارکت مکرر مشتری در طول فرایند توسعه نرم افزار حمایت میکند.
فریمورک هایی که بر اساس اصول اجایل ساخته شدند مانند اسکرام، کانبان، Extreme Programming (XP) و ... به طور گسترده ای در شیوه های توسعه استفاده میشوند.
اگر شما به اصول و ارزش های اجایل پایبند باشید، تیم شما بدون در نظر گرفتن فریمورک اجایل محسوب میشود و استفاده کردن از یک فریمورک خاص ضروری نیست.
#agile
#project_managment_system


@code_crafters
👍42
در پست قبلی با عنوان اجایل موضوعی مطرح گردید و این سوال در ذهن شکل گرفت که آیا امروزه اجایل به ابزاری جهت مانیتورینگ و بهره وری کارمندان تبدیل شده؟؟؟


یکم شرح مسئله کنم

موضوع اصلی و ماجرا از جایی نشات میگیره که این سوال پیش میاد ، ایا اجایل در همه سازمان و تمام بخش‌ها و کارمندان اجرایی شده یا نه ، اگر بخشی یا کارمندی ازین متدلوژی دوری جسته باشه و پیاده سازی نشده باشه چه اتفاقی خواهد افتاد


علاوه بر این شناسایی کارمندان با استعداد و با پشتکار و خلاقیت بالا که برای سازمان سودمند خواهند بود چگونه صورت گیرد


بهتره با موضوع okr هم آشنا بشیم تا بتونیم در خصوص موضوعات بالا تصمیم گیری به عمل آوریم

لذا در چند پست بعدی در خصوص okr مطالبی رو با شما به اشتراک خواهیم گذاشت


در خصوص پیگیری این دست پست‌ها در کانال هشتگ زیر رو جستجو کنید


#project_managment_system

@code_crafters
👍1
اسکرام :
اسکرام یک فریمورک مشخص بر پایه اصول و ارزش های اجایل هست. اسکرام یک رویکرد ساختار يافته برای مدیریت پروژه های پیچیده مخصوصا اون هایی که مرتبا نیاز به تغییر دارند، اراعه میدهد.
اسکرام پروژه را به بخش های کوچک تکرار شونده ای به نام اسپرینت که معمولا 1-4 هفته طول میکشد تقسیم میکند. هر اسپرینت شامل تعدادی تسک های از پیش تعیین شده است که باید در اون مدت زمانی تکمیل بشود.


در اسکرام 3 نقش کلیدی وجود دارد :

1- اسکرام مستر: رهبر پروژه هست و مسعول اموزش دادن شرکت هست. اسکرام مستر با مشخص کردن اهداف پروژه و اسپرینت ها به پروداکت اونر کمک میکنه. همچنین مسعولیت منیج کردن میتینگ ها با اسکرام مستر هست.

2- پروداکت اونر : صاحب محصول. مسعول به هدف رساندن محصول هست. یکی از کار های مهمی که انجام میدهد درست کردن بک‌لاگ هست.

3- دولوپمنت تیم : شامل دولوپرها، تستر ها، دیزاینر ها و ... .
در مورد نقش اسکرام مستر و پروداکت اونر در پست های بعدی بیشتر صحبت خواهیم کرد.


رویداد های اسکرام :

1- برنامه ریزی اسپرینت
برنامه ریزی کردن برای اسپرینت پیشِ رو برای تسک هایی قرار است انجام بشود

2- اسکرام روزانه
در ساعات شروع روز کاری یک میتینگ(انلاین یا حضوری) حداکثر 15 دقیقه ای بین اعضای تیم برگزار میشود و اعضای تیم باید به 3 پرسش پاسخ دهند. چه کاری دیروز انجام داده اند – امروز چه کار قرار هست انجام دهند – چه چیزی پروسه رو بلاک کرده

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

4- رترواسپکتیو
در پایان هر دوره اسپرینت برگزار میشود و اعضای تیم اسکرام باید حضور داشته باشند. هدف این میتینگ شناسایی نقاط قوت و ضعف پروژه و اعمال تغییراتی برای ایجاد اثربخشی بیشتر است. کلید خروجی این میتینگ مجموعه ای از تغییرات و پیشرفت های قابل اجرا در پروسس های تیم، همکاری و روش های انجام کار است.

بک‌لاگ – یوزر استوری – ریلیز بک‌لاگ :
بک‌لاگ مکانی است که تسک ها اولویت بندی میشوند و مدیریت این بخش با پروداکت اونر هست. در این بک‌لاگ یوزر استوری ها قرار دارند که از زبان کاربر هستند و از یک الگوی خاص پیروی میکنند : به عنوان (نقش)، من (هدف) میخواهم که (یک مشکل یا خواسته ای رفع) بشود. این یوزر استوری ها بعدا در یک جایی قرار میگیرند به اسم ریلیز بک لاگ و تعیین میکند چه فیچر هایی در چه ورژنی از برنامه قرار هست اضافه بشه، پس اولویت بندی تسک ها در این قسمت از اهمیت ویژه ای برخوردار هست. سپس در برنامه ریزی اسپرینت تعیین میکنید کدوم از تسک ها با توجه به اولویت ها باید انجام بشود.

استوری پوینت :
یسری واحد برای مشخص کردن بزرگی و سختی یوزر استوری ها هست که تیم دولوپمنت راجع به اون تصمیم میگیرد. برای هر دوره اسپرینت تیم دولوپ میداند که چقدر توانایی انجام کار دارد( با استفاده از ابزار هایی مانند نمودار burndown) و با توجه به ان، یوزر استوری های ریلیز بک‌لاگ در هر دوره اسپرینت تعریف میشوند. برای استوری پوینت ها معمولا از اعداد فیبوناچی استفاده میشود(1،2،3،5،8،13،21...).

نمودار burndown : یک بازنمایی بصری از پیشرفت تیم در یک دوره اسپرینت هست. نمایانگر کار باقی مانده در مقابل زمان هست. این نمودار به تیم و ذی‌نفعان کمک میکند تا متوجه بشوند تیم چقدر از برنامه، انحراف داشته است و تصمیمات اگاهانه ای با توجه به ان بگیرند.
#project_managment_system #scrum
@code_crafters
نمودار burndown
فعلا همین رو داشته باشید، ولی بیشتر درمورد این نمودار توضیح میدم
پروداکت اونر یا صاحب محصول :

پروداکت اونر میانجی بین ذی‌نفع یا کسی که طالب یک چیزی هست و تیم توسعه محصول یا نرم افزار قرار میگیره و ایده هارو تبدیل میکنه به زبانی که گروه توسعه محصول بتونه درک کنه و تولید کنه.
پس پروداکت اونر باید یسری جلسات با هر دو گروه برگزار کند (ذی‌نفع – مدیران- بازار – مارکت) و (تیم توسعه) و به یسری نتایج میرسد طبق خواسته های ذی‌نفعان یا مشتری و تصمیم میگیرد که چه فیچر هایی نیاز به اضافه شدن دارد و باید این فیچر ها اولویت بندی بشوند.

یوزر استوری ها توسط پروداکت منیجر به تیم توسعه انتقال داده میشود و یکی از ویژگی های استوری ها، بیان کردن پرسونای (persona) اون هدف هست. پرسونا مجموعه ای از کابران هستند که نیاز و هدف مشترکی دارند. پرسونا به ما کمک میکند که متوجه شویم فیچر مورد نظر قرار است برای چه گروهی اماده شود و تصمیمات بهتری در این زمینه توسط تیم توسعه گرفته شود. داشتن پرسونا به ما کمک میکند تا سلایق مخاطب را بهتر بشناسیم و از این توی دیزاین و ... استفاده کنیم همچنین به پروداکت اونر کمک میکنه تا بتونه استوری هارو بهتر اولویت بندی بکنه. پرسونا به تیم کمک میکند تا همگی درک مشترک و کاملی از کاربر نهایی داشته باشد و با او همزاد پنداری کند.
حال برای رسیدن به پرسونای خاص، باید با کاربران مختلف مصاحبه کنید و مشترکات این کاربران مختلف، پرسونای مد نظر مارو خواهند ساخت. برای هر محصول یک الی دو پرسونا کافی است. برای مشخص کردن پرسونا، مصاحبه با 5 نفر کفایت میکند. پرسش هایی که باید در طی این مصاحبه از کاربر پرسیده شود، نباید پرسش های هدایت شونده باشد و نباید حرف تو دهن کاربر گذاشت. به عنوان مثال از چه وسیله ای برای رفتن به سر کار استفاده میکنید؟ - تایم خوابشون به چه شکل هست؟ - برند های مورد استفادشون چیا هست؟ و ...
از این قبیل سوالات که از کاربرهای مختلف بپرسیم یک سری مشترکات بدست می‌اید و میتوانیم متوجه بشویم که چیزهای موردعلاقه کاربر چیست یا به چه چیزهایی اهمیت میدهد. مثلا با دانستن ساعات کاری انها و ساعات استراحت میدونید که چه زمانی مناسب ارسال نوتیفیکیشن هست یا بقیه موارد.

نحوه اولویت بندی بک‌لاگ با استفاده از ماتریس 4 ربع :

دو محور X,Y از کم به زیاد برچسب میزنید.

محور X تلاش هست. مقدار سعی و تلاشی که مهندسان شما نیاز دارند تا اون فیچر رو انجام بدهند، چقدر سخت قرار هست باشه.

محور Y ارزش هست. چه مقدار ارزش اراعه میده به مشتری شما. ایا قرار هست مشتری شمارو خیلی خوشحال بکنه؟ قرار نحوه استفاده اونها از پروداکت شمارو تغییر بده؟ .
حالا فیچر هارو اولویت بندی میکنید با توجه به ماتریس و درون یکی از 4 خانه قرار میدید. حالا ممکنه یک فیچر خیلی با ارزش داشته باشید و در عین حال تلاش کمی رو میطلبه مثلا ممکنه در طول یک دوره اسپرینت تمام بشه[F1]. حالا ممکنه یک فیچری باشه که مشتری ها خیلی کم درخواست میکنند و زمان و انرژی زیادی بخواد[F2]. یک فیچر دیگه ارزش بسیار زیادی داره و میتونه کسب و کار شمارو زیر و رو بکنه[F3] و همینطور ادامه میدید.

بعد ازینکه ماتریس رو پر کردید ،اونهایی که ارزش پایینی دارند و تلاش بسیار زیادی میخواهند رو از لیست به طور کامل حذف میکنید[F2] مگر اینکه انجام ندادن ان تاثیر منفی روی پروداکت بگذارد .

فیچر های [F4] خوبه که باشند ولی یک تله ای در این قسمت وجود داره و به این صورت هست که اگر سعی کنید تمام کارهایی که تو این قسمت قرار گرفته اند رو انجام بدید زمان زیادی میبره ازتون و در قبالش میبینید ارزش خیلی چشمگیر و قابل توجهی نداشته و در اخر ماه سوپرایز میشیم که تاثیر انچنانی نگذاشته، پس مراقب ان باشید.

فیچر های قسمت [F3] درسته ارزش زیادی ایجاد میکنند ولی انجام دادن انها سخت است باید اگاه باشید که سود بردن ازین قسمت زمان زیادی رو نیاز داره.

فیچر های قسمت [F1]، خب انجام دادنشون کاملا خوب و درسته و این ها از اولویت بالایی برخوردارند. این بخش به قدری مهم هست که شما هنگامی که این بخش رو تشخیص بدید، انگاه ماموریت خود را به عنوان یک پروداکت اونر حرفه ای انجام داده اید، چون یکی از وظایف شما به حداکثر رساندن ارزش با کمترین هزینه است.
#po #product_owner #project_managment_system
@code_crafters
👍1
phind.com
یه موتور جستجو برای برنامه نویس ها است ... تلفیق جالبی از ریزالت گوگل و GPT که تمام چند صفحه اول رو میخونه و نتیحه رو برامون مینوسیه، کدش رو هم مینویسه،
https://zzzcode.ai/
این هم یه ابزار شدیدا باحاله که هم میتونه داکیومنت براتون درست کنه هم میتونه کد های هر زبانی رو به زبان دیگه تبدیل کنه و هم ....
گفتم شاید بد نباشه شیر کنم که شما هم استفاده کنید


@code_crafters
🔥4
CodeCrafters
در خصوص tune کردن دیتابیس این لینک رو بخونید
برخی از مقالاتی که طی این میتینگ‌با دوستان مرور و بحث شد:
ایندکس و کلاسترد ایندکس ها
https://www.spotlightcloud.io/blog/when-to-use-clustered-or-non-clustered-indexes-in-sql-server



ابزار Load & RPS Test کامند لاین ساده اما کاربردی ای که برای تست فشار و ریکوئست استفاده کردیم:
https://github.com/codesenberg/bombardier

مطالب مربوط به Tuning و برخی راهکار های
SQL/MySQL Tuning:

https://www.turing.com/kb/best-practices-for-mysql-performance-tuning

https://www.devart.com/dbforge/mysql/studio/mysql-performance-tips.html

https://phoenixnap.com/kb/improve-mysql-performance-tuning-optimization

https://tecadmin.net/mysql-performance-tuning-tips/

برخی بهینه سازی های سمت سرور و تعدادی از فیچر های CDN ها مثل کلادفلیر:
- HTTP2 & HTTP3
https://www.section.io/engineering-education/http3-vs-http2/
- TLS 1.3 & HTTPS:
https://www.cloudflare.com/learning/ssl/why-use-tls-1.3/
- RTT:
https://developers.cloudflare.com/speed/optimization/protocol/0-rtt-connection-resumption/
- Compression:
https://blog.cloudflare.com/this-is-brotli-from-origin/



@code_crafters


#meeting
3👍1
یک سال از مرگ مهسا گذشت

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

امروز مسئله حقوق زنان نه تنها یک امر اجتماعی، بلکه یک موضوع واجب الاجرا می‌باشد ،این نه تنها یک خواسته بلکه یک امر حیاتیست که در تار و پود جامعه انسانی رخنه کرده است و جامعه‌ای که نسبت به این مسیله منفعل باشد بدون استثنا رو به فروپاشی خواهد رفت

در خصوص مسیله مهم رنسانس در تاریخ که موجب شد یک شبه کشورهای غربی راه هزار ساله رو طی کنن ،تن دادن جامعه به حقوق انسانی و در ذات اون حقوق زنان بود عبور از جامعه یک قطبی مرد سالاری و درهم شکستن تابوهای فئودالیسم ،ارج نهادن به بنیاد آزادی انسانها تماما در یک برگه و رخداد تاریخی ، تنها و تنها نشان دهنده این موضوع است که حقوق زنان یک موضوعیت با نسبیت قشر جنسی خاصی نیست بلکه یک فاکتور و به طبع آن با تمام جرات میتوان گفت تاثیر گذارترین مسئله‌ای است که تا به امروز در مطالعات جامعه انسانی مشاهده گردیده است



یاد و خاطره تمام کشته شدگان گرامی باد و به تمام بازماندگان این عزیزان تسلیت میگوییم🖤🖤🖤


زنده باد جنبش زن ،زندگی، آزادی


@code_crafters
💔12🤮6👍1🤣1😴1
روزمرگی‌های شرکت در توسعه برنامه


اون چیزی که داخل تصویر میبینید شاید یک چارت ساده بنظر بیاد اما پیاده سازی اولیه اون حدود ده روز طول کشید و فقط سه روز اون جلسه با نفرات فنی و مدیر مجموعه صورت گرفت

تست اولیه یکی از الگوریتم‌ها درست بود

در مرحله بعدی تست بر روی چندهزار داده صورت خواهد گرفت و بصورت انسانی خروجی سیستم و الگوریتم مورد بررسی نهایی قرار خواهد گرفت


متاسفانه حوصله نوشتن شبه کد رو نداشتم و مستقیم فوکوس کردم روی اجرا کردنش


نکته مهم سعی کنید تمام مسایل مهم و اهمیت دار رو روی تابلوتون بنویسید که جلو چشمتون باشه، گاها حدود نیم ساعت به تابلو خیره میشید لازم هست اون نکات رو ببینید تا بهتر تصمیم بگیرید

#daily

@code_crafters
👍3🔥2
پیرو بحث راهنمایی هایی برای تازه کار ها ( و افراد در حال کار در هر سطحی) رفرنس‌هایی رو قرار میدیم براتون. از جمله مقالات مفید و نظرات اشخاص در استک های مختلف، رود مپ (‌نقشه راه) و توصیه ها.

شخصا برای رود مپ وبسایتی کامل تر از
https://roadmap.sh
ندیدم که چیزایی که نوشته رو توضیح هم‌ داده باشه (کلیک‌ کنید روشون در نمودار بهتون توضیحات، آموزش‌و مقالات بیشتری میده)، برای همه استک ها و زبان ها رودمپ قرار دادند.

معماری و طراحی نرم افزار:
https://roadmap.sh/software-architect
https://roadmap.sh/software-design-architecture

برای داکر و کانتینر ها:
https://roadmap.sh/docker

برای فرانت اند:
https://roadmap.sh/frontend

برای بک اند:
https://roadmap.sh/backend

برای Asp.net Core:
https://roadmap.sh/aspnet-core

برای پایتون:
https://roadmap.sh/python

برای DevOps:
https://roadmap.sh/devops

برای DBA و دیتابیس:
https://roadmap.sh/sql
https://roadmap.sh/mongodb
https://roadmap.sh/postgresql-dba
https://roadmap.sh/graphql

برای امنیت و Cyber Security:
https://roadmap.sh/cyber-security

و یک بخش قشنگ‌دیگه هم درباره Beat Practice ها داره. مثلا best practice های طراحی api، دیتابیس، کلاد ..
https://roadmap.sh/best-practices



@code_crafters

#meeting
👍2🔥2😐1
موضوع Hardening در نرم‌افزار و سرور چون‌‌بحث‌ خیلی مفصلی هم‌ هست موکول کردیم به زمانی که هم زمان بیشتری داشته باشیم برنانه ریزی کنم، هم حال بچه ها روبراه تر باشه تعداد بیشتر بشه و ایشالا همه در سلامت کامل باشن.
بخشیش از رودمپ Cyber-security که بالا هم‌ گذاشتم خواهد بود ( که اشاره ای به مفاهیم و ابزارهای مصرفیمون باشه)، مابقیش سیاست ها و تجربه های ایمن سازی و بهینه سازی در سرور ها.

* لینک ویدئو اخیر جادی رو براتون میزارم که مرتبط با همین‌ بحثم‌ هست، درباره امنیت و مدیریت کاربر ها روی سرور گفته:
https://t.iss.one/jadivarlog/100