دو مورد از دستهبندیهای اصلی تست در فرایند توسعه نرمافزار، تست عملکردی و غیر عملکردی هستند. این تستهای دوگانه همانطور که از نام آنها مشخص است، بر بخشهای عملکردی نرمافزار و بخشهای غیر عملکردی آن تمرکز میکنند. این گروه از تستها شامل تعدادی از تستهای نرمافزاری دیگر میشوند. در این مقاله قصد داریم درباره انواع و تفاوتهای دقیق بین هر[...]
وبلاگ
چطور فرصتهای یادگیری ماشین را پیدا کنید؛ حتی وقتی که دانشمند داده نیستید.
دسته بندی: مقالات HBR
1401/01/27
0 نظر
5 دقیقه زمان مطالعه
داشتن شهود در مورد نحوه عملکرد الگوریتمهای یادگیری ماشین - حتی در کلیترین مفهوم - به یک مهارت تجاری مهم تبدیل شده است. همانطور که Andrew Ng نوشته است: " تقریباً تمام پیشرفتهای اخیر اتفاق افتاده در هوش مصنوعی (AI) از الگویی پیروی میکند، که در آن از برخی دادههای ورودی (A) برای ایجاد پاسخ سریع و ساده (B) استفاده[...]
روش مسیر بحرانی یا Critical Path Method(CPM) یک تکنیک مدلسازی زمانبندی پروژه است. Morgan R. Walker و James E. Kelly این تکنیک را در اواخر دههی ۱۹۵۰ ابداع کردند. برنامهریزان پروژه از این روش برای توسعه برنامههای پروژهها در حوزههای مختلف که شامل IT، تحقیق و ساختوساز میشوند، استفاده میکنند.روش مسیر بحرانی در مدیریت پروژه مفهومی طولانی و پیچیده است. برای درک[...]
۷ استراتژی برای بهبود رفاه و سلامت کارمندان
دسته بندی: مقالات HBR
1401/01/22
0 نظر
4 دقیقه زمان مطالعه
شرکت شما ممکن است به این افتخار کند که کارفرمای خوبی است. اما حتی با بهترین نیات، شرکت شما میتواند سلامت و رفاه کارمندان را به دلیل روش سازماندهی کار تحتتاثیر قرار دهد. شرایط کاری و نیازهای محیط کار منبع مهمی از استرس برای بسیاری از آمریکاییها هستند؛ تحقیقات نشان داده است که طراحی محیط کار میتواند اثرات قابل توجهی[...]
احتمالا عناوین مورد کاربرد (Use Case) و داستان کاربر (User Story) را فراوان شنیدهاید و شاید هم در تحلیل سیستمهای خود از آنها استفاده کرده باشید. در این مقاله به معرفی هر کدام از این دو عبارت، کاربردها و تفاوتهای آنها میپردازیم. Alistair Cockburn، از نویسندگان بیانیه چابک چنین میگوید: «.A user story is to a use case as a[...]
آیا هوش مصنوعی میتواند به ما بیاموزد که چگونه از نظر احساسی باهوشتر شویم؟
دسته بندی: مقالات HBR
1401/01/14
0 نظر
7 دقیقه زمان مطالعه
بحث در مورد این که آیا AI (هوش مصنوعی) جایگزین انسانها در نیروی کار خواهد شد یا خیر، اغلب به یک توضیح مفید و دوگانه خلاصه میشود: AI در کارهای تکراری و دستی جایگزین انسانها خواهد شد، در حالی که انسانها در مهارتهای نرم مانند ارتباطات، خلاقیت و ایجاد رابطه احساسی نسبت به هوش مصنوعی برتری خواهند داشت.با اینکه این[...]
معماری میکروسرویس (MicroService) چیست؟
دسته بندی: طراحی نرم افزار
1401/01/09
0 نظر
5 دقیقه زمان مطالعه
معماری میکروسرویس یکی از انواع معماری و طراحی نرمافزار است که در آن، اجزای سازنده یک نرمافزار به سرویسهای کوچک و مجزا تقسیم میشوند که هم به صورت مستقل و هم به صورت یکپارچه امکان فعالیت دارند. در این مقاله قصد داریم به مزایا و معایب استفاده از معماری میکروسرویس (Microservice) و مقایسه آن با معماری یکپارچه (Monolithic) که بسیاری[...]
اینکه ما دقیقا نمیدانیم دلیل تصمیماتی که یک سیستم یادگیری ماشین میگیرد، چیست؟ باعث میشود بسیاری از تلاشها برای استفاده از این تکنولوژی جدید متوقف شوند. یعنی عدم شفافیت در مورد اینکه چرا یک سیستم کاری را انجام میدهد؟! در واقع نمیدانیم که یک سیستم یادگیری ماشین دقیقا بر چه اساسی یک پیشبینی را انجام میدهد. مانند زمانی که یک[...]
مدتی است که وقتی در سایتهای مربوط به داتنت میگردیم، از گمانهزنیهای مختلف در مورد امکانات C# 10 زیاد میشنویم. اگر وارد C# GitHub Page شویم، امکاناتی را میبینیم که ممکن است به این ورژن برسند، در ورژنهای بعدی اضافه خواهند شد یا رد (Reject) شدهاند. ولی اگر بخواهیم بدانیم دقیقا چه امکاناتی به C# 10 اضافه خواهد شد، باید[...]
جنبش اجایل یا چابک، در طول ۲۰ سال گذشته، حتی خارج از توسعه نرمافزار، شتاب حیرتانگیزی به پیدا کرده است. حالا چیزهایی مثل منابع انسانی اجایل، مدیریت پروژه اجایل، خدمات مشتری اجایل، فروش اجایل، عملیات اجایل و… وجود دارد. اما تقریبا نیمی از سازمانهایی که تغییر به اجایل را انجام میدهند، در تلاشهای خود با شکست مواجه میشوند. اگر تیم[...]
چگونه با استفاده از Gitops به طور حرفهای Secret ها را مدیریت کنیم
دسته بندی: دواپس
1400/12/18
2 نظر
12 دقیقه زمان مطالعه
یکی از زیرساختهای اصلی GitOps، استفاده از Git به عنوان source در کل سیستم است. بسیاری از برنامهنویسها، با نحوه ذخیرهسازی پروژه و source code در گیت آشنایی دارند؛ اما GitOps حکم میکند که شما باید تمامی بخشهای اپلیکیشن خود مانند تنظیمات kubernetes manifests, db scripts, cluster definitions و... را نیز ذخیره کنید. اما درباره secret چطور؟ چگونه میتوانیم با[...]
۸ گام برای گذار از توسعهدهنده به تحلیلگر کسبوکار
دسته بندی: تحلیل نرم افزار
1400/12/10
0 نظر
7 دقیقه زمان مطالعه
یکی از سوالاتی که اخیرا زیاد با آن مواجه میشویم این است که افراد میگویند: «من مدتی است که توسعهدهنده نرمافزار هستم و حالا میخواهم در مورد یک نقش جدید یاد بگیرم. من درباره شغل تحلیلگر کسبوکار هیجان زده هستم، اما هیچ ایدهای برای انتقال به حرفه جدید ندارم.» امروزه فناوری فرصتهای فوقالعادهای را برای بهبود کسبوکار ارائه میدهد. تحلیلگر[...]
چطور از ابزارهای Open Source محافظت کنیم؟
دسته بندی: مقالات HBR
1400/12/08
0 نظر
7 دقیقه زمان مطالعه
نرم افزار رایگان و متن باز (Free and open source software (FOSS برای توسعه بسیاری از فناوریهایی که ما هر روز استفاده میکنیم از ماشین گرفته تا تلفن و هواپیما و … ضروری است. در حالی که به طور سنتی این ابزارها توسط جمعی از توسعهدهندگان داوطلب توسعه مییابد و به صورت رایگان منتشر میشوند، شرکتها هم هر روز نقش[...]
امروزه و در دنیای برنامه نویسی، همه چیز درباره هزینهها است. صرفهجویی یک مسئله بزرگ در مهندسی نرمافزار محسوب میشود و ساخت اشیا از کلاسها، یک گام پرهزینه است. برای بهبود کارایی، هنگامی در مورد ساخت اشیا از کلاسها حرف میزنیم که یک الگوی طراحی بسیار جالب با ایده مناسبی وجود داشته باشد. ایده اصلی الگوی طراحی Prototype این است[...]
داشتن زیرساختهای تجزیه و تحلیل داده، پیشنیاز ورود به دنیای AI!
دسته بندی: مقالات HBR
1400/11/30
0 نظر
5 دقیقه زمان مطالعه
شرکتها به تازگی شروع به کشف روشهای مختلفی کردهاند که نشان میدهد، چگونه تکنولوژیهای AI میتوانند به طور بالقوه کسب و کارها را از نو بسازند. اما شرکتها چطور میتوانند بفهمند که واقعا برای این فنآوریهای پیشرفته آماده هستند یا نه؟ قبل از هر چیز، مدیران باید از خود بپرسند که آیا در مسئلههایی که هزینه زیادی دارند و سرعت[...]
هرچه بیشتر عمر کنیم، تکنولوژی هم به پیشرفت خود ادامه میدهد و نقش هوش مصنوعی در زندگی روزمره ما هم افزایش پیدا میکند. با گذشت زمان، راحتتر میتوانیم آیندهای را تصور کنیم که در آن ماشینها تواناییهای انسانی ما را تقویت و به ما کمک کنند که انتخابهای بهتری در زندگی داشته باشیم. مثلا به جای سوال پرسیدن از یک[...]
با ورود به عصر ارتباطات، استفاده کاربردی از انواع دادهها و اطلاعات مانند بیگ دیتا (Big Data) که با نام کلان داده هم شناخته میشود، به عنوان سرمایههای اصلی هر کسب و کاری اهمیت زیادی پیدا کرده است. هر حرکت علمی، اقتصادی، اجتماعی و فرهنگی که در جامعه، سازمانها و شرکتها انجام میشود، باعث توسعه مشارکت افراد در جهان اینترنت[...]
محیط کار هیبریدی و ۴ استراتژی برای ساخت آن
دسته بندی: مقالات HBR
1400/11/26
0 نظر
5 دقیقه زمان مطالعه
پاندمی جهانی کرونا چالشها و فرصتهای جدیدی را در هر صنعتی ایجاد کرده است؛ با شروع به کار مجدد اقتصاد، رقابت شدیدی در خواهد گرفت. کسانی برنده خواهند شد که نیازهای مشتری خود را به وضوح درک کنند. همچنین برای شناسایی راهحلهای مختلف، نمونهسازی اولیه، تکرار همکاری میکنند و ایدههای جدید به بازار میآورند. این رفتارها تنها زمانی اتفاق میافتند[...]
اگر به والها و یا به (continuous delivery (cd سریع و بدون مشکل نرمافزار خود علاقمند هستید، پیشنهاد میکنیم ادامه این مقاله را که در مورد داکر است، بخوانید. شواهد نشان میدهند که کانتینرهای نرمافزاری، آینده صنعت آیتی هستند؛ پس به سراغ دو وال container، یعنی موبی داک و مالی (Moby Dock and Molly) میرویم. داکر چیست؟ داکر که از[...]
تخمین زمان یا هزینه فعالیتها: تعریف، روشها، کاربردهای عملی
دسته بندی: مدیریت پروژه
1400/11/12
5 نظر
15 دقیقه زمان مطالعه
قبل از شروع تخمین زمان یا هزینه فعالیتها یک پروژه، باید مدتزمانی که انتظار میرود تمام فعالیتهای مربوط به پروژه انجام شود را بدانید.قبل از اینکه بخواهید زمانبندی یک پروژه را شروع کنید، باید مدتزمانی که انتظار میرود تمام فعالیتهای مربوط به پروژه انجام شود را بدانید. چارچوبهای مدیریت پروژه مانند Project Management Body of Knowledge PMBOK ، از ابزارها[...]
نقشه راه محصول Product Road Map و برنامه ارائه Release Plan
دسته بندی: تحلیل نرم افزار
1400/11/05
1 نظر
5 دقیقه زمان مطالعه
برنامه ارائه (Release Plan) و تهیه نقشه راه محصول (Product Road Map)، هر دو برای دستیابی به موفقیت محصول اهمیت دارند؛ ولی دقیقا تفاوت بین این دو چیست؟ چطور میتوان از هر دو ابزار متناسب و همزمان بهره برد؟ برنامه ارائه (Release Plan) چیست؟ برنامه یا طرح ارائه، اینکه چطور یک نسخه اصلی توسعه داده میشود را پیشبینی میکند. به[...]
در این مقاله ما سه روش اصلی برای Branching و مدیریت branchهایی که توسط Git ساخته میشوند را بررسی میکنیم. بعد از خواندن این مقاله میتوانید به راحتی تصمیم بگیرید که کدام روش برای چرخه توسعه شما مناسبتر است. Git Flow Git Flow یکی از روشهای Branching که شناخته شدهترین روش کار در این لیست است. این روش در سال[...]
وقتی از دواپس صحبت میکنیم، عبارت تحویل و پیادهسازی مداوم یا همان CI/CD را زیاد میشنویم. در مقالههای قبلی درباره CI/CD، که در واقع سنگ بنای اصلی DevOps هستند، صحبت کردیم. CI و CD با معرفی اتوماسیون و نظارت در طول چرخه توسعه نرمافزار، ارزش زیادی در این زمینه ایجاد کردند. در این مقاله میخواهیم با ۱۰ تا از بهترین[...]
چگونه به کسی آموزش دهیم که مشکلات تجاری را به سوالات تحلیل نرمافزار تبدیل کند؟
دسته بندی: تحلیل نرم افزار
1400/10/07
0 نظر
8 دقیقه زمان مطالعه
افرادی که در سازمان وظیفه تحلیل نرمافزار ترجمه تحلیلها به دادههای قابل فهم برای سایر اعضا را دارند عهدهدار یکی از مهمترین اقدامات در یکپارچهسازی شرکت هستند. تحلیلگران به بخش تجاری کمک میکنند که مشکلات و راهحلها را تعریف کنند. سپس به واحد فنی برای تحلیل مشکلات و پیدا کردن راه حل کمک و در نهایت به واحد عملیات در[...]
تحلیل رگرسیون چند جمله ای چیست؟ (Polynomial Regression)
دسته بندی: هوش تجاری
1400/10/03
1 نظر
9 دقیقه زمان مطالعه
رگرسیون چند جمله ای یا Polynomial Regression یکی از الگوریتمهای یادگیری ماشین است که برای پیشبینی استفاده میشود. به طور مثال از این رگرسیون به شکلی گسترده برای پیشبینی بیماری کووید ۱۹یا دیگر بیماریهای واگیردار استفاده میشود. این مفهوم از مفاهیمی است که درک آن در حرفههایی مثل هوش تجاری که با علم داده سر و کار دارند، بسیار کارآمد[...]
سرمایه گذاری و مدیریت دارایی روی بلاکچین با هوش مصنوعی
دسته بندی: هوش تجاری
1400/09/23
1 نظر
10 دقیقه زمان مطالعه
در حال حاضر از بلاکچین برای ذخیره و معامله اوراق مالی مانند رمزارزها، توکنهای امنیتی (security tokens) و دیگر توکنها استفاده میکنیم. باید در نظر بگیریم که این حوزه یک بازار نوپا است که تنها چند سال از عمر آن میگذرد. مبحث توکنهای امنیتی حتی نوپاتر از بلاکچین است؛ طبق بررسیها ارزش کل بازار توکنهای امنیتی در ژانویه ۲۰۲۰ میلادی[...]
gRPC یک فریمورک (framework) قدرتمند متن باز است که بر پایه RPC(Remote Procedure Call) طراحی شده و میتواند در تمامی محیط های توسعه قابل پیادهسازی باشد. این تکنولوژی امکان ارتباط و هماهنگی شفاف و راحت بین کلاینت و سرور را فراهم و همچنین ساخت سیستمهای متصل را سادهتر میکند از ویژگی های جالب این تکنولوژی میتوان به اتصال بین سرویسها[...]
GitOps متد و راهی برای توسعه نرمافزار روی سیستمهای ابری (Cloud) و تمرکز اصلی آن بر ابزارهای توسعهمحور (Developer-centric) مانند Git است که تقریبا اکثر برنامهنویسها با آن آشنایی دارند. ایده اصلی GitOps داشتن یک Git repository (مخزن گیت) است که همیشه توصیفی از محیط زیرساخت و عملیات را دارد و تمامی مراحل Git را که شامل Pull و Push[...]
تحلیلگر تجاری و ۱۰ روش به اضافه کردن ارزش به سازمان
دسته بندی: تحلیل نرم افزار
1400/09/09
0 نظر
6 دقیقه زمان مطالعه
یکی از دوستان من به عنوان یک تحلیلگر تجاری ۱۰ سال سابقه کاری درخشان داشت و تغییرات بسیار قابل توجهی حتی در بعد فنی نیز در سازمانها ایجاد کرده بود. او میگفت: « طی چندین مصاحبه که با سازمانهایی آیندهنگر انجام دادم، متوجه شدم که هر بار سازمانها نقش (Business Analysts) BA را به عنوان یک هزینه اضافی در پروژه[...]
طراحی سیستمهای Restful امروزه یکی از چالشهای برنامهنویسی است؛ چرا که این روش از طراحی نرمافزار در سطوح مختلف سیستم تاثیر زیادی دارد و از عملکرد سیستم در سطح سرویسدهی تا تصمیمات افزایش مقیاس در سطح استراتژیک را تحت تاثیر قرار میدهد. با توجه به این که این معماری در سطح بالا تعریف شده است و پیادهسازی آن دارای قوانین[...]
بلاکچین و هوش مصنوعی! شما با شنیدن این دو اسم به یاد چه چیزهایی میافتید؟ احتمالا با شنیدن اسم هوش مصنوعی، رباتهایی را در ذهن تصور میکنید که میتوانند حرکتهای انسانگونه انجام دهند. با شنیدن اسم بلاکچین هم احتمالا قبل از هر چیز به ارزهای دیجیتال و مخصوصا بیتکوین فکر میکنید. اما نه هوش مصنوعی فقط رباتهاست و نه بلاکچین[...]
اگر در یک تیم برنامهنویسی مشغول به کار باشید، با موقعیتهایی روبرو میشوید که در آن افراد بر روی قسمتهای مختلف یک پروژه کار میکنند. در این حالت نیاز است که این بخشها با هم ادغام شوند تا یک کد منسجم به وجود بیاید. راه حلی که برای این فرایند وجود دارد، ادغام مداوم (Continuous Integration) یا CI است. در[...]
در فرایند توسعه نرمافزار، روشها و رویکردهای مختلفی برای توسعه و انتشار نرمافزار وجود دارد. یکی از روشهای توسعه نرمافزار، توسعه و تحویل مداوم یا Continuous Delivery است. در این روش نرمافزار به صورت اتوماتیک در دورههای کوتاه آپدیت و آماده انتشار میشود. وجود فرایند تحویل مداوم برای پیادهسازی صحیح و سریع دواپس ضروری است. در این مقاله با مفهوم[...]
آشنایی با مفاهیم Authentication و Authorization
دسته بندی: توسعه نرم افزار
1400/08/11
1 نظر
5 دقیقه زمان مطالعه
به عنوان برنامهنویس به احتمال زیاد با چالشهای زیادی در زمینه سطح دسترسی و احراز هویت مواجه شدهاید. در این مقاله سعی داریم دو مفهوم Authentication و Authorization را شرح دهیم و به بررسی برخی تفاوتهای آنها بپردازیم. با ما همراه باشید. Authentication چیست؟ به مجموعه فعالیتهایی که هویت شما یا دستگاه شما را تایید میکنند، Authentication گفته میشود. به طور مثال هنگامی که[...]
تولید نرمافزار، یکی از خلاقانهترین فعالیتهای بشر در طول تاریخ است. برنامهنویسها، به محدودیتهایی مثل قوانین فیزیک مقید نیستند. آنها میتوانند دنیاهای مجازی بینظیری خلق کنند که هیچ وقت قبل از آن وجود نداشته است اما وجود پیچیدگی در نرمافزار را نمیتوان نادیده گرفت. برنامهنویسی نیاز به مهارتهای جسمانی یا تناسب فیزیکی خاصی ندارد. تمام آن چیزی که لازم است،[...]