arrow
Return

Cognitive Driven Development helps software teams to keep code units under the limit!☆

delete2023-12-01
delete0
delete
OA
AI
G
Gustavo Pinto *
A
Alberto F. De Souza
DOI:10.1016/j.jss.2023.111830delete
deleteOriginal
deleteShare
deleteSave
View PDF
Abstract

Abstract

En 中文
Software design techniques are key elements in the process of designing good software. Over the years, a large number of design techniques have been proposed by both researchers and practitioners. Unfortunately, despite their uniqueness, it is not uncommon to find software products that make subpar design decisions, leading to design degradation challenges. One potential reason for this behavior is that developers do not have a clear vision of how much a code unit could grow; without this vision, a code unit can grow endlessly, even when developers are equipped with an arsenal of design practices. Different than other design techniques, Cognitive Driven Development (CDD for short) focuses on (1) defining and (2) limiting the number of coding elements that developers could use at a given code unit. In this paper, we report on the experiences of a software development team using CDD for building from scratch a learning management tool at Zup Innovation, a Brazilian tech company. By curating commit traces left in the repositories, combined with the developers' perception, we organized a set of findings and lessons that could be useful for those interested in adopting CDD. For instance, we noticed that by using CDD, despite the evolution of the product, developers were able to keep the code units under a small amount of size (in terms of lines of code). Furthermore, although limiting the complexity is at the heart of CDD, we also discovered that developers tend to relax this notion of limit so that they can cope with the different complexities of the software. Still, we noticed that CDD could also influence testing practices; limiting the code units' size makes testing easier to perform. (c) 2023 Elsevier Inc. All rights reserved.
Keywords:
Cognitive Driven Development
Design techniques
Software design
AI Summary

AI Summary

Key information extracted from the uploaded paper, including a brief overview, abstract, background, key highlights, visual analysis, and future outlook.

Journal

Journal of Systems and Software cover
Journal of Systems and Software
IF:
4.1
Papers:
5.4K
Citations:
8.4K

Organization

No organization information available