نوشته های معشوقه نرم افزار

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

تحویل مداوم یعنی چه ؟


پیش نوشت : این مطلب به عنوان یک مقدمه برای continuous delivery در نظر گرفته شده است. شما می توانید برای دسترسی به مطالب بیشتر در این خصوص به سایت تخصصی این موضوع در جعبه سایت های تخصصی این وبلاگ ، مراجعه نمایید.


What is Continuous Delivery?

Continuous Delivery is the ability to get changes of all types—including new features, configuration changes, bug fixes and experiments—into production, or into the hands of users, safely and quickly in a sustainable way.

Our goal is to make deployments—whether of a large-scale distributed system, a complex production environment, an embedded system, or an app—predictable, routine affairs that can be performed on demand.

We achieve all this by ensuring our code is always in a deployable state, even in the face of teams of thousands of developers making changes on a daily basis. We thus completely eliminate the integration, testing and hardening phases that traditionally followed “dev complete”, as well as code freezes.



Why continuous delivery?

تاریخ مهندسی نرم افزار


هیچگاه مایل نبودم که تاریخ را مطالعه کنم. مگر تاریخی که مربوط به نرم افزار یا شاخه های مربوطه آن باشد. 

هیچ وقت هم به یک منبع کامل و کافی و معتبر، دسترسی نداشتم. تا این که با یکی از بزرگان نرم افزار آشنا شدم . 

بله آقای Capers Jones

 

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

کتاب های او را در لیست زیر می تواند مشاهده کنید. 

  1. Programming Productivity
  2. Software Assessments, Benchmarks and Best Practices
  3. Estimating Software Costs 2nd Edition
  4. Software Engineering Best Practices
  5. The Economics of Software Quality
  6. The Technical and Social History of Software Engineering



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



چه کرده است این مرد. واقعا نمی توان با هیچ زبانی،   شگرفی این کتاب را بیان کرد.

کتابی است جامع  و کامل. 

کتاب شامل 12 فصل است که از بدو تولد نرم افزار در سال های 1940 تا 1949 در زمان جنگ جهانی دوم ، شروع شده و در ادامه به بررسی نسل های مختلف نرم افزار در طی سال های مختلف می پردازد. 

درفصل 11 و 12 به بررسی نرم افزار های مدرن می پردازد. اسامی  و بعضی از اصطلاحات و واژگان این دو فصل را تا بحال مشاهده نکرده ام. 

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

در این دوفصل نرم افزار های مدرن را طوری مهندسی می کند که اگر بتوانید مطالب آن را دقیقا بفهمید، می توانید بزرگترین مهندسان نرم افزار را هم به چالش بکشید.

در این لینک هم می توانید قسمتی از متن کتاب را از  سایت انتشارات PEARSON  دانلود و مطالعه نمایید.

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


مهندسی نیاز ها (معرفی کتاب )


به نظر من (که شخصی و پر از ایراده ) باید هر کسی که می خواد نرم افزار طراحی کنه یا به قول خودشون Develop کنه ، باید از مهندسی نیازها و به خصوص  نیاز مندی های نرم افزار آگاه باشه.

کارهایی از قبیل نرم افزار های بزن در رو ( منظورم خودساخته های مهندسان) ، خیلی قدیمی شده و این روزها - البته خیلی کم توی ایران - از تکینک های نیاز سنجی نرم افزار و مهندسی اونها توی طراحی هاشون استفاده می کنند.



این کتابِ  Software Requirements(+) که یکی از رساله های خیلی مهم در مورد نیاز سنجی نرم افزار توی دنیاست ، خیلی از مشکلاتی رو که در طی توسعه نرم افزار به وجود میاد رو حل کرده و برای جلوگیری از بروز  این مشکلات  ، راهکارهای خیلی موثری رو قرار داده . 

این رو هم بگم که ،  این کتاب برای  نرم افزارهایی در مقیاس Enterprise تا low-level کاربرد داره و می تونه خیلی از مشکلات رو در همون اول کار شناسایی و برطرف کنه . 

بیشتر از این توضیح نمیدم . چون درمقابل این کتاب، در حد و اندازه ای نیستم که توضیح بدم . 


Designed By Saeed Felegari استفاده از مطالب همراه با معرفی منبع آزاد است سعید فعله‌گری