Miroslaw Staron, Silvia Abrahão, Birgit Penzenstaler, Alexander Serebrenik
This edition of the “Practitioners’ Digest” brings you recent articles on approaches to addressing selected human and technical aspects of software development, from finding security vulnerabilities, system-level testing, to understanding the impact of personality on requirements engineering activities, published at selected software engineering conferences.
{"title":"Human Aspects and Security in Software Development","authors":"Miroslaw Staron, Silvia Abrahão, Birgit Penzenstaler, Alexander Serebrenik","doi":"10.1109/ms.2024.3385455","DOIUrl":"https://doi.org/10.1109/ms.2024.3385455","url":null,"abstract":"This edition of the “Practitioners’ Digest” brings you recent articles on approaches to addressing selected human and technical aspects of software development, from finding security vulnerabilities, system-level testing, to understanding the impact of personality on requirements engineering activities, published at selected software engineering conferences.","PeriodicalId":55018,"journal":{"name":"IEEE Software","volume":"33 1","pages":""},"PeriodicalIF":3.3,"publicationDate":"2024-06-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141530563","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
At Google, we’ve been running a quarterly large-scale survey with developers since 2018. In this article, we will discuss how we run EngSat, some of our key learnings over the past 6 years, and how we’ve evolved our approach to meet new needs and challenges.
{"title":"Measuring Developer Experience With a Longitudinal Survey","authors":"Sarah D’Angelo, Jessica Lin, Jill Dicker, Carolyn Egelman, Maggie Hodges, Collin Green, Ciera Jaspan","doi":"10.1109/ms.2024.3386027","DOIUrl":"https://doi.org/10.1109/ms.2024.3386027","url":null,"abstract":"At Google, we’ve been running a quarterly large-scale survey with developers since 2018. In this article, we will discuss how we run EngSat, some of our key learnings over the past 6 years, and how we’ve evolved our approach to meet new needs and challenges.","PeriodicalId":55018,"journal":{"name":"IEEE Software","volume":"26 1","pages":""},"PeriodicalIF":3.3,"publicationDate":"2024-06-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141550527","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Effective data processing workflows are crucial in data science, business analytics, and machine learning. Domain-specific tools can be invaluable, but often custom workflows are needed. Key to their success is splitting data and tasks into manageable chunks to enhance reliability, troubleshooting, and parallelization. Avoid monolithic programs; instead, favor modular designs that simplify data management and processing. Utilizing tools like xargs and GNU parallel can leverage multiple cores or hosts efficiently. Logging and documenting your workflow are essential for monitoring progress and understanding the process. Handling data subsets allows for quicker feedback and testing. Prepare for invalid data and system failures by designing processes that can gracefully manage exceptions and ensure results are reproducible and incremental, avoiding over-engineering. Simplify where possible, leveraging powerful, mature Unix tools and focusing optimization efforts on parts of the code responsible for the bulk of runtime costs. Adhere to software engineering practices to maintain the quality and integrity of your workflow, ensuring it remains a reliable asset to your organization.
有效的数据处理工作流对数据科学、业务分析和机器学习至关重要。特定领域的工具可能非常宝贵,但往往需要定制工作流。成功的关键在于将数据和任务分割成易于管理的小块,以提高可靠性、故障排除和并行化。避免使用单体程序,而应采用模块化设计来简化数据管理和处理。利用 xargs 和 GNU parallel 等工具可以有效利用多个内核或主机。记录和文档化工作流程对于监控进度和了解流程至关重要。处理数据子集可以加快反馈和测试。通过设计能够从容管理异常的流程,为无效数据和系统故障做好准备,并确保结果的可重现性和增量性,避免过度工程化。尽可能简化,利用功能强大、成熟的 Unix 工具,并将优化工作重点放在造成运行时大部分成本的代码部分。坚持软件工程实践,保持工作流程的质量和完整性,确保其成为企业的可靠资产。
{"title":"Engineering Data Processing Workflows","authors":"Diomidis Spinellis","doi":"10.1109/ms.2024.3385665","DOIUrl":"https://doi.org/10.1109/ms.2024.3385665","url":null,"abstract":"Effective data processing workflows are crucial in data science, business analytics, and machine learning. Domain-specific tools can be invaluable, but often custom workflows are needed. Key to their success is splitting data and tasks into manageable chunks to enhance reliability, troubleshooting, and parallelization. Avoid monolithic programs; instead, favor modular designs that simplify data management and processing. Utilizing tools like xargs and GNU parallel can leverage multiple cores or hosts efficiently. Logging and documenting your workflow are essential for monitoring progress and understanding the process. Handling data subsets allows for quicker feedback and testing. Prepare for invalid data and system failures by designing processes that can gracefully manage exceptions and ensure results are reproducible and incremental, avoiding over-engineering. Simplify where possible, leveraging powerful, mature Unix tools and focusing optimization efforts on parts of the code responsible for the bulk of runtime costs. Adhere to software engineering practices to maintain the quality and integrity of your workflow, ensuring it remains a reliable asset to your organization.","PeriodicalId":55018,"journal":{"name":"IEEE Software","volume":"49 1","pages":""},"PeriodicalIF":3.3,"publicationDate":"2024-06-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141550528","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
In between what we could do and what we should do lies a configuration abyss, full of poor choices, where opportunities are missed and many mistakes are made. Prof. Sven Apel knows just how poorly humans can make choices. Accordingly he explores the design and testing of tools that support better choices about software.
{"title":"Are You Trapped in the Configuration Abyss? An Interview With Prof. Sven Apel","authors":"Brittany Johnson, Tim Menzies","doi":"10.1109/ms.2024.3383658","DOIUrl":"https://doi.org/10.1109/ms.2024.3383658","url":null,"abstract":"In between what we could do and what we should do lies a configuration abyss, full of poor choices, where opportunities are missed and many mistakes are made. Prof. Sven Apel knows just how poorly humans can make choices. Accordingly he explores the design and testing of tools that support better choices about software.","PeriodicalId":55018,"journal":{"name":"IEEE Software","volume":"15 1","pages":""},"PeriodicalIF":3.3,"publicationDate":"2024-06-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141513512","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Birgit Penzenstadler, Brittany Johnson, Muneera Bano, Per Lenberg
This special issue shows that the state of wellbeing in software engineering is concerning. Clarity on values and clarity on values and integrity help increase resilience. Hence, make time for a weekly reflection practice, and treat it the same as you would an important meeting.
{"title":"Well-Being and Resilience: Developers Thrive!","authors":"Birgit Penzenstadler, Brittany Johnson, Muneera Bano, Per Lenberg","doi":"10.1109/ms.2024.3391804","DOIUrl":"https://doi.org/10.1109/ms.2024.3391804","url":null,"abstract":"This special issue shows that the state of wellbeing in software engineering is concerning. Clarity on values and clarity on values and integrity help increase resilience. Hence, make time for a weekly reflection practice, and treat it the same as you would an important meeting.","PeriodicalId":55018,"journal":{"name":"IEEE Software","volume":"62 1","pages":""},"PeriodicalIF":3.3,"publicationDate":"2024-06-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141530562","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Kelson Silva, Jorge Melegati, Xiaofeng Wang, Mauricio Ferreira, Eduardo Guerra
This article presents the case of a start-up applying a technique named ArchHypo that uses hypotheses to express uncertainties related to the software architecture. Ten months after identifying the hypotheses, it was assessed how the usage of this technique impacted their decisions.
{"title":"Using Hypotheses to Manage Technical Uncertainty and Architecture Evolution in a Software Start-up","authors":"Kelson Silva, Jorge Melegati, Xiaofeng Wang, Mauricio Ferreira, Eduardo Guerra","doi":"10.1109/ms.2024.3383628","DOIUrl":"https://doi.org/10.1109/ms.2024.3383628","url":null,"abstract":"This article presents the case of a start-up applying a technique named ArchHypo that uses hypotheses to express uncertainties related to the software architecture. Ten months after identifying the hypotheses, it was assessed how the usage of this technique impacted their decisions.","PeriodicalId":55018,"journal":{"name":"IEEE Software","volume":"16 1","pages":""},"PeriodicalIF":3.3,"publicationDate":"2024-06-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141550476","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Bianca Trinkenreich, Marco Aurelio Gerosa, Igor Steinmacher, Anita Sarma
{"title":"Guidelines for Cultivating a Sense of Belonging to Reduce Developer Burnout","authors":"Bianca Trinkenreich, Marco Aurelio Gerosa, Igor Steinmacher, Anita Sarma","doi":"10.1109/ms.2024.3404361","DOIUrl":"https://doi.org/10.1109/ms.2024.3404361","url":null,"abstract":"","PeriodicalId":55018,"journal":{"name":"IEEE Software","volume":"56 1","pages":""},"PeriodicalIF":3.3,"publicationDate":"2024-05-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141153553","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Jesús Sánchez Cuadrado, Daniel Ávila, Sara Pérez-Soler, Pablo C. Cañizares, Esther Guerra, Juan de Lara
{"title":"Integrating Static Quality Assurance in CI Chatbot Development Workflows","authors":"Jesús Sánchez Cuadrado, Daniel Ávila, Sara Pérez-Soler, Pablo C. Cañizares, Esther Guerra, Juan de Lara","doi":"10.1109/ms.2024.3401551","DOIUrl":"https://doi.org/10.1109/ms.2024.3401551","url":null,"abstract":"","PeriodicalId":55018,"journal":{"name":"IEEE Software","volume":"35 1","pages":""},"PeriodicalIF":3.3,"publicationDate":"2024-05-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141059137","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Zhili Zeng, Tao Xiao, Maxime Lamothe, Hideaki Hata, Shane McIntosh
{"title":"How Trustworthy is Your CI Accelerator? A Comparison of the Trustworthiness of CI Acceleration Products","authors":"Zhili Zeng, Tao Xiao, Maxime Lamothe, Hideaki Hata, Shane McIntosh","doi":"10.1109/ms.2024.3395616","DOIUrl":"https://doi.org/10.1109/ms.2024.3395616","url":null,"abstract":"","PeriodicalId":55018,"journal":{"name":"IEEE Software","volume":"43 1","pages":""},"PeriodicalIF":3.3,"publicationDate":"2024-05-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140835242","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"The Crucial Role of Personal Values on Wellbeing and Resilience in the Software Industry","authors":"Ozan Raşit Yürüm, Özden Özcan-Top","doi":"10.1109/ms.2024.3395059","DOIUrl":"https://doi.org/10.1109/ms.2024.3395059","url":null,"abstract":"","PeriodicalId":55018,"journal":{"name":"IEEE Software","volume":"28 1","pages":""},"PeriodicalIF":3.3,"publicationDate":"2024-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140835244","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}