Reconciling modern design practices with agile software development methods
Reconciling modern design practices with agile software development methods
批准号:
RGPIN-2020-05001
负责人:
Ralph, Paul
金额:
$3.5万
依托单位:
依托单位国家:
加拿大
项目类别:
Discovery Grants Program - Individual
财政年份:
2020
资助国家:
加拿大
项目状态:
已结题
起止时间:
2020-01-01 至 2021-12-31
中文摘要
大多数软件之所以失败,是因为它的设计很差。有漏洞的应用程序、不友好的企业系统、不安全的网站、掠夺性游戏、放大仇恨的社交网络、种族主义的人工智能和排放碳的加密货币让我们痛苦,花费我们数十亿美元,并加剧气候危机。然而,软件设计很少被研究(例如,与软件测试相比),并且被广泛误解。
软件专业人员倾向于将设计等同于图形界面(用户体验设计)、系统组织(体系结构设计)、过程(算法设计)或功能选择(功能设计)。然而,设计实际上只是决定了某个物体的属性。设计不是理想的生命周期中的一个阶段,而是渗透到开发过程中,与分析和编程密不可分。“设计思维”包括但不能简化为解决问题、计划、决策、学习或创造。
我的研究项目是关于提高软件专业人员的设计思维和设计成果。我提出了三个相互关联的项目,它们来自不同角度的设计思维:实践、重构和理论发展。
练习。已经提出了许多软件设计实践,但从未进行过经验测试。我们将进行一系列对照实验,以测试三种实践:配对设计、亲和力映射和生成多个高水平设计候选。每个实验都是相似的:软件专业人员被随机分配到处理组或对照组。他们在纸上和这些“纸原型”上设计了一个系统,并对这些系统进行评分,看看这种做法是否会带来明显更好的设计。
重构。开发人员不断地重组软件代码以改进其结构(“重构”)。然而,目前还没有经过经验验证的方法来衡量结构质量。相反,重构是一个基于经验、直觉、主观标准和未经验证的专业准则的完全手动过程。我们将把不同的软件度量组合到一个复杂的结构质量数学模型中,并将其作为一个易于使用的工具来实现,该工具告诉开发人员代码更改如何影响系统的结构。
理论发展。最有效的软件设计实践之一称为以用户为中心的设计(UCD)。然而,UCD与大多数软件团队的工作方式不同。我们将进行纵向扎根的理论研究,以了解如何协调UCD和敏捷方法。
这项研究将通过演讲向我们的行业合作伙伴传播,并通过会议、博客、播客和专业文章向更广泛的软件工程社区传播。我们生成的工具和建议将导致更多可用、有用、可持续和可维护的软件,帮助加拿大发展其每年750亿美元的软件行业。
英文摘要
Most software fails because it is poorly designed. Buggy apps, unfriendly enterprise systems, insecure websites, predatory games, hate-amplifying social networks, racist AI, and carbon-spewing cryptocurrencies make us miserable, cost us billions and exacerbate the climate crisis. Yet, software design is rarely studied (compared to, e.g., software testing) and is widely misunderstood.
Software professionals tend to equate design with graphical interfaces (user experience design), system organization (architectural design), procedures (algorithm design) or feature selection (feature design). However, design is really just determining the properties of some object. Rather than a phase in an idealized lifecycle, design permeates the development process and is inextricable from both analysis and programming. “Design thinking” includes, but cannot be reduced to, problem-solving, planning, decision-making, learning or creativity.
My research program is about improving software professional's design thinking and design outcomes. I propose three interconnected projects that come at design thinking from different angles: practices, refactoring and theory development.
Practices. Numerous software design practices have been proposed but never empirically tested. We will conduct a series of controlled experiments to test three practices: pair designing, affinity mapping and generating multiple high-level design candidates. Each experiment is similar: software professionals are randomly assigned to the treatment or control group. They design a system on paper and these “paper prototypes” and graded to see if the practice leads to significantly better designs.
Refactoring. Developers continuously reorganize software code to improve its structure (“refactoring”). However, there is no empirically-validated method of measuring structure quality. Instead, refactoring is a completely manual process based on experience, intuition, subjective criteria, and unvalidated professional guidelines. We will combine diverse software metrics into a sophisticated mathematical model of structure quality, and implement it as an easy-to-use tool that tells developers how a code change affects the system's structure.
Theory Development. One of the most effective software design practices is called user-centered design (UCD). However, UCD is at odds with agile methodsthe way most software teams work. We will conduct a longitudinal grounded theory study to understand how UCD and agile methods can be reconciled.
This research will be disseminated to our industry partners via presentations and to the wider software engineering community through meetups, blogs, podcasts and professional articles. The tools and recommendations we generate will lead to more usable, useful, sustainable and maintainable software, helping Canada grow its $75 billion/year software industry.
期刊论文(0)
专著(0)
科研奖励(0)
会议论文
Reconciling modern design practices with agile software development methods
-
批准号:RGPIN-2020-05001
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$3.5万
-
财政年份:2022
-
负责人:Ralph, Paul
-
依托单位:
Reconciling modern design practices with agile software development methods
-
批准号:RGPAS-2020-00081
-
项目类别:Discovery Grants Program - Accelerator Supplements
-
资助金额:$2.91万
-
财政年份:2022
-
负责人:Ralph, Paul
-
依托单位:
Reconciling modern design practices with agile software development methods
-
批准号:RGPIN-2020-05001
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$3.5万
-
财政年份:2021
-
负责人:Ralph, Paul
-
依托单位:
Reconciling modern design practices with agile software development methods
-
批准号:RGPAS-2020-00081
-
项目类别:Discovery Grants Program - Accelerator Supplements
-
资助金额:$2.91万
-
财政年份:2021
-
负责人:Ralph, Paul
-
依托单位:
Reconciling modern design practices with agile software development methods
-
批准号:RGPAS-2020-00081
-
项目类别:Discovery Grants Program - Accelerator Supplements
-
资助金额:$2.91万
-
财政年份:2020
-
负责人:Ralph, Paul
-
依托单位:
Design Processes in Information Systems and Engineering: Analysis and Integration
-
批准号:332081-2006
-
项目类别:Postgraduate Scholarships - Master's
-
资助金额:$0.25万
-
财政年份:2006
-
负责人:Ralph, Paul
-
依托单位:
Design Processes in Information Systems and Engineering: Analysis and Integration
-
批准号:332081-2006
-
项目类别:Alexander Graham Bell Canada Graduate Scholarships - Master's
-
资助金额:$1.27万
-
财政年份:2006
-
负责人:Ralph, Paul
-
依托单位:
海外基金