Research Directions

sequoia-trees.jpg

Today, software is ubiquitous, affecting the life of everyone from the most senior researcher in a major software development company to an 80-year-old retiree trying to make a purchase at the local Safeway in Orlando. However, not all software is created equal. Software can be excellent, but just as often, we run across software that, quite frankly, just isn’t all that good. As a result, users experience frustration with software all the time. Most people won’t have to think to hard to point out the last time that the technology they were attempting to use didn’t perform as expected.

Students in the SEQuOIA Laboratory—led by Dr. Charles Knutson—are tackling this problem head-on as they attempt to discover what a truly exceptional software development organization (one which produces truly exceptional software) looks like. SEQuOIA is an acronym which describes what the lab is all about: Software Engineering Quality: Observation, Insight, and Analysis.

The SEQuOIA Laboratory has divided its research into two parts: studying software “ecosystems” and conducting research related to the Artifact-Based Software Project.

Software Ecosystems

There are dozens of software ecosystems to explore. The recent Technology and Engineering Career Fair at BYU gives a small sampling. Among the companies on campus to recruit BYU computer science students were two well-known technology companies representing traditional software ecosystems: Microsoft, a personal computer software company, and Apple, a hardware/software company. However, dozens of non-traditional companies attended as well: Wal-Mart, representing retail giants, ExxonMobil, an oil corporation, and Amazon.com, an e-commerce company and online book seller. Each of these companies, representing different software ecosystems, relies heavily on software, yet each uses software in dramatically different ways. In studying these and other ecosystems, the lab looks at the way in which a piece of software will be used, believing that this has a heavy impact on how it should be produced. The best practices for a software engineer working in the information technology department at a university aren’t the same for an engineer at Microsoft, or ExxonMobil. However, there are some commonalities, and the SEQuOIA Laboratory is endeavoring to discover these universals. By studying these varying ecosystems, the lab hopes to identify the varying software environments and, by extension, discover and catalog the best practices for software companies across the board.

Artifact-Based Software Project

The Artifact-Based Software Project is a new approach to researching the software development process. In the past, software development research presented a multitude of problems to computer scientists; it isn’t something that can be adequately researched in a university lab, as watching students create software is dramatically different than watching software professionals in the industry who have been doing it for years. Furthermore, if a researcher were to go out into the industry to study the process, he or she would only be allowed to observe the existing development process, rather than actually experimenting on the process. And, as the Heisenberg Principle states, observation alone would be of little value, as the very act of observing the process would alter it in some way. The SEQuOIA Laboratory has hit upon a solution with the Artifact-Based Software Project. Artifacts, as defined by Dr. Knutson, are the natural products of the development process: the source code drops, bug tracking reports, emailed discussions, even the choice of languages. Dr. Knutson compares these software artifacts to the “pottery shards” that an anthropologist would study in order to understand the religious beliefs of an ancient culture. Dr. Knutson believes that by studying these artifacts, looking, for example, at the way a company’s source code evolves and changes, he can learn something about their software development process and find correlations between this process and quality of the product, the market share of the product, or other indicators of the success of a product.

Dr. Knutson and the students in the SEQuOIA Laboratory realize that the problems they are tackling and the questions they are asking aren’t going to be easily resolved. However, in the end, they hope that their research will help alter the software development and engineering process, resulting in a more reliable, higher quality product.