يک استراتژی برای افزايش کيفيت فردی(A Personal Quality Strategy)

  • یوسف مهرداد بی‌بالان

A Personal Quality Strategy عنوان مقاله‏ای است از WATTS S. HUMPHREY.
در اين مقاله، به مراحل مختلف کيفيت و نيز استراتژیهای مختلف برای پوشش‏دهی مسائل کیفی در توسعه نرم‏افزار اشاره شده است. همچنین تجربیاتی برای بهبود کارایی توسعه‏دهندگان نرم‏افزار تشریح شده است.
در ادامه نیز به بررسی چالشهای پیش رو در این زمینه و نیز چگونگی استفاده از استراتژی‏های مذکور برای حل این چالشها پرداخته شده است.

در این مقاله، کيفيت از دید توسعه نرم‏افزار به پنج مرحله تقسیم شده است:

Stage 1 – Basic code quality: syntax and coding constructs
Stage 2 – Detailed design: the logical construction of programs and the actions required so that these programs perform their specified functions
Stage 3 – High-level design: system issues such as interfaces, compatibility, performance, security, and safety
Stage 4 – Requirements focused: determining the meaning of the requirements and particularly deducing what is written between the lines.
Stage 5 – User driven: users and what we must do to provide them with truly great products. While last in this list, user concerns must have top priority.

توصيه می‏کنم اصل مقاله را در اینجا مطالعه نمایید.

گزیده:
آدمی فقط در یك صورت حق دارد به دیگری از بالا نگاه كند و آن هنگامیست كه بخواهد دست دیگری را كه بر زمین افتاده، بگیرد تا او را بلند كند.
گابریل گارسیا ماركز (از میان نامه‏های ارسالی دوست خوبم آقای مهندس حامد عسگری)

شجاعت

  • یوسف مهرداد بی‌بالان

يک بار در يکي از دبيرستانهاي تهران هنگام برگزاري امتحانات سال آخر ششم دبيرستان به عنوان موضوع انشاء اين مطلب داده شد که “شجاعت يعني چه؟” محصلي در قبال اين موضوع فقط نوشته بود: ”شجاعت يعني اين” و برگه‏ي خود را سفيد به ممتحن تحويل داده بود و رفته بود! اما برگه‏ي آن جوان دست به دست بین دبيران گشته بود و همه به اتفاق و بدون استثناء به ورقه سفيد او نمره 20 دادند.

گزیده:

ترديدهايمان خائنيني هستند كه با نصايح خود، مارا از هدفمان باز مي‏دارند، در حالي كه تصميمي راسخ و شروعي به موقع، فتح و پيروزي را نصيبمان مي‏سازد. شكسپير

علت مؤفقیت

  • یوسف مهرداد بی‌بالان

موفقيت من دو علت اساسي داشت:
نخست پرداختن به كاري كه از آن لذت مي بردم
و
دوم گوش دادن به نداي باطني خويش

والت دیسنی

کاربرد تئوری بازی‏ها (Game Theory)

  • یوسف مهرداد بی‌بالان

دیروز برای شرکت در جلسه دفاع پروژه دو تن از دانشجويان رفته بودم دانشگاه.
نکته‏ بسیار مهم، موضوع تحقیق بود. “هدف از اين تحقيق در ابتدا آشنايی با مفاهيم مختلف نظريه بازی و سپس يافتن کاربرد اين مفاهيم در علوم مختلف و به ويژه در علم کامپيوتر می باشد. ” یکی از موضوعاتی که بدان پرداخته شده بود “کاربرد نظريه بازي در ترغيب کارکنان سازمان به اشتراک دانش” بود. هر چند ایده جای کار داشت، ولی در این سطح، بالاتر از حد انتظار بود.
مدلسازی اشتراک دانش در قالب مدل تئوری بازی و تحلیل و بررسی آن، یکی از کارهای تحقیقاتی قشنگ و در عین حال کاربردی این عزیزان بود.”تبادل دانش راهي براي به اشتراک گذاشتن دانش است. پردازش هاي مربوط به تبادل دانش را مي‏توان به عنوان بازيهاي بين عاملهاي خودخواه فرموله کرد. در اين بازيها هر عامل دانش را با ديگران به اشتراک مي‏گذارد، تنها براي اينکه سودمندي خود را افزايش دهد.
کارهای دیگری از کاربردهای تئوری بازیها و طراحی و پیاده‏سازی بازی دوز در این قالب کارهای ابداعی دیگر این گروه بود که آنها هم جای تأمل داشتند.
به خانم دکتر تقی‏یاره؛ استاد گرامی‏ام؛ و به خانمها مريم رضوی و فرناز قوامی فر به خاطر انجام اين تحقيق تبریک عرض می‏کنم و امیدوارم بیش از پیش شاهد عناوین کاربردی در پروژه‏های دانشگاهی باشیم.
نکته: مطالب داخل “” از پایان‏نامه عزیزانبرداشته شده است.

گزیده:
از آناني كه سعي دارند جاه طلبيها و آرزوهاي بزرگ شما را تحقير كنند، دوري كنيد. انسان هاي ناچيز هميشه چنين عكس العملي دارند، در حالي كه اشخاص بزرگ سعي مي كنند با رفتار خويش، احساس به عظمت رسيدن را در شما تقويت كنند. مارك تواين

معماری سازمانی سرویس گرا (SOEA)

  • یوسف مهرداد بی‌بالان

آقای مهندس طاهری‏راد عزيز آدرس وبلاگی را که متعلق به آقای امیر رضا مهجوریانيکی از دانشجويان جناب آقای دکتر شمس است، برايم گذاشته بودند که مطالب جالبی در مورد SOA در خود دارد.
يادم رفته بود آن را در وبلاگ قرار دهم. از دوست خوبم آقای طاهری‏راد عزيز بسیار سپاسگذارم.
آدرس وبلاگ: معماری سازمانی سرویس گرا (SOEA)

گزیده: لغت نامه مهندسين در جلسات كارفرما
– تا چند دقيقه ديگر به اين موضوع مى رسيم. يعنى: فراموشش كنيد، الان به اندازه كافى مشكل داريم!
– ثابت شده كه …. يعنى: من فكر مى كنم كه …..!

The Limits of Software – Part IV – The Impact of Economics

  • یوسف مهرداد بی‌بالان

Developing software costs money. Barry Boehm, in his classic work on software engineering economics, based upon 20 years of empirical evidence, concludes that the performance of a project can be predicted according to the following equation
Performance@ ComplexityProcess * Team * Tools
Where
•PerformanceEffort or time
•ComplexityVolume of human-generated code
•ProcessMaturity of process and notation
•TeamSkill set, experience, and motivation
•ToolsSoftware process automation

From this equation, we can observe that the complexity of a system can either be amplified by a bad process or dampened by a good process and that the nature of a team and its tools are relatively equal contributors to the performance of a project.
Developing software costs money, and so for any sustainable business activity, any investment in software development must provide a good return on that investment. Thus, we might dream up suspicious uses of software that have no or marginal economic value (such as selling dog food over the Internet), but to do so will ultimately end in economic collapse. Alternatively, we might dream up meaningful uses of software, and to the degree we can develop that software efficiently and use that software as a strategic weapon in our business, and to do so will yield business success.

گزیده: (لغت نامه مهندسين در جلسات كارفرما)
– بقيه نتايج در گزارش بعدى ارائه مى شود… يعنى: بقيه نتايج را تا فشار نياوريد نخواهيم داد!
– بعلت اهميت تئورى و عملى اين موضوع… يعنى: به علت علاقه من به اين موضوع!
– حالا ما آماده ايم صحبتهاى شما را بشنويم… يعنى: شما هر چه مى خواهيد صحبت كنيد كه البته تاثيرى در كارى كه ما انجام خواهيم داد ندارد!

The Limits of Software – Part III- The Problems of Functionality (Continue)

  • یوسف مهرداد بی‌بالان

A further complication is the fact that, for industrial-strength software, there are typically a large number of stakeholders who shape the development process, most of whom are completely unimpressed by the underlying technology for technologies sake. These stakeholders will bring to the table a multitude of hidden and not-so-hidden economic, strategic, and political agendas that often warp the development process through the presence of competing concerns.

For software that matters, the requirements of a system will typically change during its development, not just because of reasons of technology churn or resilience, but also because the very existence of a software development project alters the rules of the problem.
Seeing early products such as design documents and prototypes and then using a system at each executable release are all forcing functions that lead users to better understand and articulate their real needs.

At the same time, this process helps developers master the problem domain, enabling them to ask better questions that illuminate the dark corners of a system’s desired behavior.

Because a large software system is a capital investment, we cannot afford to scrap an existing system every time its requirements change (or for that matter, to absorb considerable amounts fo scrap and rework).

Planned or not, large systems tend to evolve continuously over time, a condition that is often incorrectly labeled software maintenance. To be more precise, it is maintenance when we correct errors; it is evolution when we respond to changing requirements; it is preservation when we continue to use extraordinary means to keep an ancient and decaying piece of software in operation. Unfortunately, experience suggests that an inordinate percentage of software development resources are spent on software preservation.

گزیده:

Will you love me for the rest of my life?
No, I’ll love you for the rest of mine. – From Phenomenon

برای خروج از جستجو کلید ESC را بفشارید