What We Know We Don't Know: Empirical Software Engineering

Hillel Wayne

我們知道的未知:實證軟體工程

原文由 Hillel Wayne 發布,訂閱此部落格

此版本的演講發表於 DDD Europe, 2024

科技是一個規模達數兆美元的產業,但我們對於如何把事情做到最好,卻幾乎一無所知。實證軟體工程(ESE)研究的正是軟體領域中什麼方法有效、以及為何有效。我們不仰賴直覺,而是收集資料、執行研究,並透過同儕審查來驗證成果。這場演講將探討我們如何以實證方式在軟體領域中發掘事實、會面臨哪些挑戰,最後則會提供一份如何查找既有研究的指南,並概述我們從 DDD 中學到的一些心得。

投影片請見此處

參考資料

我在演講中引用了許多論文,以下是相關連結,供你自行閱讀:

前言

巨量資料比筆記型電腦還慢

Scalability! But at what COST?

為何我們要在意

章節參考資料

The Pragmatics of TDD

TDD is dead. Long live testing.

研究方法

控制試驗

Comparing syntax highlightings and their effects on code comprehension

自然實驗

Simple Testing Can Prevent Most Critical Failures

失控的自然實驗

A Large Scale Study of Programming Languages and Code Quality in Github(原始的有缺陷研究)

On the Impact of Programming Languages on Code Quality(重現研究)

我撰寫的 6,000 字完整解析

觀察性研究

Fixing Faults in C and Java Source Code: Abbreviated vs. Full-Word Identifier Names(預印本)

DDD

綜述論文

Domain-Driven Design in Software Development: A Systematic Literature Review on Implementation, Challenges, and Effectiveness

值得關注的論文

Design, Monitoring, and Testing of Microservices Systems: The Practitioners’ Perspective

Practitioner Views on the Interrelation of Microservice APIs and Domain-Driven Design: A Grey Literature Study Based on Grounded Theory

Refactoring with domain-driven design in an industrial context

Tackling Consistency-related Design Challenges of Distributed Data-Intensive Systems - An Action Research Study

請注意,綜述論文中還有其他值得一看的論文,這裡僅列出我在演講中提到的幾篇。

補充資料

推薦閱讀

Teaching tech together

Leprechauns of Software Engineering

The Programmer’s Brain

Making Software

免費研究資源

It Will Never Work In Theory

ACM digital library

ArXiv

問答

科學對於 DDD 整體有什麼看法?它到底是好還是不好?

這不是科學能夠回答的問題。這有點像在問「競爭是好是壞」:涵蓋範圍過於廣泛,評判標準也過於模糊,無法得到有意義的答案。

相反地,我們必須檢視人們在實踐 DDD 時所做的具體事項,以及這些事項對專案產生的具體影響。採用限界上下文的微服務架構師,是否比完全不使用 DDD 的人建立了更多的服務?使用事件風暴建模的領域,是否與未使用此方法的領域「看起來不同」?在使用 CQRS 的系統中,最常見、獨特的問題有哪些?

關於如何教導「抽象思考」,是否有任何研究?

就我一時能想到的,我會先去查閱 Shriram Krishnamurthi 的著作。他的團隊專注於如何更有效地教導抽象概念,並已開發出許多探索這個主題的有趣工具。

研究「哪些程式語言更容易出錯」真的有意義嗎?或許不同語言吸引的是不同類型的人,而這才是重點。

Jan Vitek 在他反駁原始論文的影片中也認同這是原始論文的一個根本問題,但他在重現研究中將重點放在方法論上的錯誤,因為那些錯誤更容易被明確證實。更多細節請見我的解析文章

軟體開發者採用一項新技術後,通常要隔多久科學家才會開始研究它?

不知道,抱歉。

本文章由 muse-spark-1.2-contributor 進行翻譯

留言