The SPACE of Developer Productivity

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

The SPACE of Developer Productivity (Link)
Nicole Forsgren, Margaret-Anne Storey, Chandra Maddila, Thomas Zimmermann, Brian Houck, Jenna Butler,
ACM Queue, 28 February 2021

Abstract:
Developer productivity is about more than an individual’s activity levels or the efficiency of the engineering systems relied on to ship software, and it cannot be measured by a single metric or dimension. The SPACE framework captures different dimensions of productivity, and here we demonstrate how this framework can be used to understand productivity in practice and why using it will help teams better understand developer productivity and create better measures to inform their work and teams.

Myths and Misconceptions About Developer Productivity:
– Myth 1: Productivity is all about developer activity.
– Myth 2: Productivity is only about individual performance.
– Myth 3: One productivity metric can tell us everything.
– Myth 4: Productivity measures are useful only for managers.
– Myth 5: Productivity is only about engineering systems and developer tools.

The Dimensions Of Productivity:
– Satisfaction and well-being: How fulfilled, happy, and healthy one is
– Performance: An outcome of a process
– Activity: The count of actions or outputs
– Communication and collaboration: How people talk and work together
– Efficiency and flow: Doing work with minimal delays or interruptions

The Levels:
Individual: One person
Team or Group: People that work together
System: End-to-end work through a system(like a development pipeline)

Example Metrics:

پاییز ۱۳۹۳: دوره متدهای چابک

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

الگوی ایجاد نرم‌افزار: مار و پله!

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

پیش‌گفتار:
مدتی است که با خود می‌اندیشم تجربیات‌م را در حوزه‌ی نرم‌افزار در اینجا بنویسم، هم ماندگار خواهد شد و هم شاید به دوستی کمک کند. نمی‌دانم “الگوی ایجاد نرم‌افزار” عبارت مناسبی هست یا نه، ولی تا یافتن عبارت مناسب‌تر از آن استفاده خواهم کرد.

بازی مار و پله
مار و پله، یک بازی کودکانه و کلاسیک است (اینجا) که احتمالا همه‌ی خوانندگان آن را تجربه کرده‌اند. با انداختن تاس که یک پدیده‌ی تصادفی است، شما به جلو حرکت می‌کنید و هدف بازی، رسیدن به خانه 100 ام است. یکی از ویژگی‌های جذاب مار و پله، وجود مارها در مسیر حرکت‌ مهره است. اگر وارد خانه‌ای شوید که نیش مار در آن قرار دارد، باید مسیر بدن مار را طی کنید و به خانه‌ای بروید که دم مار در آن قرار گرفته است. و متاسفانه دم مار در خانه‌هایی قرار دارد که شما قبلا از آنها گذشته‌اید.

مرجع عکس: اینجا

 

داستانی تکرارپذیر در برنامه‌نویسی نرم‌افزار
در برنامه‌نویسی نرم‌افزار گاهی پیش می‌آید که برنامه‌ای را گام به گام پیش می‌برید. با تعریف هر گام و تلاش برای انجام آن، پیشرفتی در پروژه ایجاد می‌شود. این پیشرفت ممکن است کوچک یا بزرگ و حتی شگفت‌انگیز باشد. در ادامه‌، ناگهان با مساله‌ای رو به رو می‌شوید که قابل حل نیست یا با گام‌هایی که تا اینجا برداشته‌اید قابل حل نست. و این اتفاق باعث می‌شود تمام گام‌هایی که قبلا طی کرده‌اید کم‌ارزش یا کلا بی‌ارزش شوند.

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

الگوی مار و پله‌ی نرم‌افزار
این اتفاق در برنامه‌نویسی از جهاتی شبیه به بازی مار و پله است. با هر بار تاس انداختن، امتیاز می‌آورید و به خانه 100 نزدیک می‌شوید؛ احساس پیروزی می‌کنید، خوشحال می‌شوید، دیگران هم شما را تشویق می‌کنند، سرمست از باده‌ی پیروزی هستید که ناگهان سر و کله‌ی ماری پیدا می‌شود و مهره‌ی شما را چنان نیش می‌زند که لبخند بر لب‌تان خشک می‌شود: روز از نو، روزی از نو.

امیدوارم که در بازی مار و پله‌تان در نرم‌افزار گرفتار مارها نشوید. هرچند شما بهتر می‌دانید که تمام زیبایی و لذت بازی مار و پله به مارها و تاس‌ش است.

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

طبقه‌بندی مفاهیم (classification)

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

نوشته‌ای از دوست گرانقدرم، روح الله دلپاک که در اینجا (تلگرام: t.me/Break_Point) خواندم:

… یوسف مهرداد، وقتی می‌خواست سختی و پیچیدگی طبقه‌بندی مفاهیم (classification) را توضیح دهد، شعری از «شل سیلوراستاین»، شاعر، داستان‌سرا و کارتونیست آمریکایی را مثال می‌زد:

I asked the Zebra, are you black with white stripes?
Or white with black stripes?
And the zebra asked me,

Are you good with bad habits?
Or are you bad with good habits?

Are you noisy with quiet times?
Or are you quiet with noisy times?

Are you happy with some sad days?
Or are you sad with some happy days?

Are you neat with some sloppy ways?
Or are you sloppy with some neat ways?

And on and on and on and on and on and on he went.

I’ll never ask a zebra about stripes…again.

گاهی یک مثال، از صد صفحه توضیح گویاتر است. این همان گاهی است.
– روح‌الله دلپاک

پ.ن.
– سپاسگزارم روح الله جان!
– نوشته‌ای در این مورد در وبلاگ (داستانک گورخر و Classification!)

ای جوی‌های آرام از رودها بپرسید

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

ای قطره‌های باران با جوی‌ها بگویید
کان رهرو غم آلود زین ره‌گذر کجا رفت؟

ای جوی‌های آرام از رودها بپرسید
زین راهِ راز پیوند آن همسفر چرا رفت؟

ای رودهای سرکش کاشفته وُ سبک پوی
آغوش می‌گشایی دریای بیکران را

آنجا که بی‌نهایت در بی‌کران غنوده است
از موج ها بجویید آن راز جاودان را

ای قطره‌های باران ای جویبار آرام
ای رودهای سرکش و‌ی بحر بی‌کرانه

سرگشته وُ ملولم در دشت خاطر خویش
آیا شما ندارید زان بی‌ نشان نشانه .. ؟

آهنگ قطره‌های باران
خواننده: علیرضا قربانی ترانه: پرتو کرمانشاهی ؛ آهنگسازی: طهمورث پورناظری ؛ تنظیم: سهراب پورناظری

Joke: NLP and Programmers

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

There is an old joke from the 1970s:
Scientists developed a technology to program computers using natural language.
The project was scrapped when they discovered that programmers do not speak the natural language. 🙂

Source: Yann LeCun on Twitter

تیری آنری و درسی برای شرکت‌داری

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

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

یکی از آخرین خبرهایی که خواندم مصاحبه تیری آنری (Thierry Henry) اسطوره‌ی باشگاه آرسنال است که اشاره جالبی به شرکت‌داری و فوتبال دارد.

آنری می‌گوید: “من دیگر باشگاه خودم را نمی‌شناسم، و آنچه که اتفاق افتاده و تلاش آنها برای پیوستن به لیگی که قرار است محدود و بسته باشد، برای من منطقی نیست. آنها این باشگاه را مثل یک شرکت اداره کرده‌اند، نه یک باشگاه فوتبال و نشان دادند که چه در سر دارند. شاید این ناشی از عدم درک ارزش‌های اصلی فوتبال باشد و شاید پول خیلی وسوسه‌انگیز است. هر چه بود آنها اشتباه کردند. بد هم اشتباه کردند.” (به نقل از ورزش سه)

گزیده:

  1. In football you always get judged on your last game. Whoever you are, or how amazing you are, it’s the last game that everyone has seen.
  2. My dad always taught me to never be satisfied, to want more and know that what is done is done.
    Thierry Henry

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