The art of software engineering inherently requires high-level problem solving and perseverance, as programmers and designers wrestle with complex design and implementation challenges in the process of turning loose concepts and ideas into working code. In the current developer ecosystem, engineers are commonly incentivized extrinsically by monetary rewards, approval or...
Software entropy impacts the overall quality of software systems. High entropy hinders developers from understanding the purpose of a piece of code and can cause developers to make sub-optimal changes and introduce bugs. Researchers have used entropy scores to measure the naturalness of code. However, thus far, no one has...
Software systems are becoming an essential part of the lives of both individuals and organizations, and as a consequence, these systems are getting bigger and more complex. Because of this, the tasks of maintaining the quality in these complex software systems are becoming increasingly difficult. Furthermore, these systems are subject...
Merge conflicts have long plagued software development. With larger and more dispersed teams comes greater risk of developers working on the same code at the same time. While merge conflicts are known to be painful, their exact impact on software is still largely unknown. Are merge conflicts an isolated problem,...
Over the past few decades, the ratio of women to men in many traditionally maledominated fields has become much more equal. However, in science, technology, engineering, and math (STEM) fields the ratio has not improved at the same rate. In computer science the ratio is still very uneven. Today women...