In 1987, American computer architect, software engineer, and computer scientist Fred Brooks suggested that “the hardest single part of building a software system is deciding precisely what to build. No other part of the conceptual work is as difficult as establishing the detailed technical requirements . . . No other part of the work so cripples the resulting system if done wrong. No other part is as difficult to rectify later." Nearly 30 years later, Brooks’ assessment remains true. Poor requirements have long been a problem across both industry and the federal government. Business process and requirements analysts face the challenge of effectively parsing through hundreds and sometimes thousands of requirements in an effort to define system design needs, determine the expected software size, and accurately estimate the software development cost. This detail-oriented and often grueling process requires analysts to be highly experienced and also have a tremendous amount of tolerance for repetitive requirements parsing—and despite even the most meticulous analysis, mistakes are still an inevitability.
Innovation in systems and software engineering has virtually exploded in the 30 years since Brooks made his observation. Machines—once solely reliant upon human programming to operate—are now capable of “learning” processes and automating previously human-dependent functions. Such innovations in automation and machine learning can serve to aid analysts in understanding and parsing requirements, identifying duplication in both language and meaning, and dramatically reducing the time and effort necessary to accurately analyze projects. Breakthroughs in machine learning and natural language processing (NLP) utilize function point counting to size requirements, making it possible to perform system analysis by developing entity relationships using the original requirements.
Today’s analysts from both government and industry can leverage these developments in machine learning, natural language processing, and automation—innovations that undoubtedly would have dazzled computer scientists in 1987—to mitigate the challenges presented by ambiguous requirements, requirements creep, defective requirements, and “gold plating.” These technologies make it possible to verify effective requirements and easily identify defects analysts might otherwise miss. What’s more, such capabilities produce more accurate cost estimates and allow the analyst—who so often is not a subject matter expert—to achieve a deeper understanding of the requirements. Perhaps most importantly, these innovations automate and streamline processes, reducing the risk of errors and producing results within seconds, not multiple man-hours. The result is a system that leverages innovation in technology, augments our human capabilities, saves time and money, and produces more accurate analysis that ever before. Although the challenges facing government and industry requirements activities remain much the same as they were in 1987, the solutions available to us are infinitely more advanced. By effectively leveraging today’s technology, we ensure these challenges truly become a thing of the past.
At Logapps, we pride ourselves on our ceaseless pursuit of innovation: we are committed to introducing new technologies that help our customers work smarter, eliminate time-consuming processes, and incorporate tools that ease the transition to more ad hoc solutions. Logapps’ newest innovation is the Function Point Automation (FPA) Tool—a product that began as a research and development (R&D) endeavor to explore breakthroughs in machine learning and NLP. In our work with diverse federal government agencies—including the Internal Revenue Service (IRS), Navy, and U.S. Courts—we identified challenges common across the government. Analysts struggle to manually sort through scores of data to identify duplicates and isolate poorly written, incomplete, or ambiguous or missing requirements. Accurate software size estimates are difficult to determine, and the traditional manual function point counting method for cost estimation requires expert and trained personnel and an inordinate amount of time and resources to complete—even then, the analysis is prone to error, resulting in inconsistencies that trickle down into product development and hinder the performance of even the most meticulously planned project. The onerous task of requirements analysis and software cost estimation has historically put enormous strain on agencies’ budgets and schedules. Over the course of two years, Logapps analysts applied their research in the areas of NLP and machine learning to develop a tool capable of automating these complex processes and providing a nearly instantaneous cost estimate for a proposed requirement.
For the past nine months, Logapps has piloted the FPA Tool in-house with great success. In one trial, Logapps analysts compared the tool’s performance against the traditional human-based requirements analysis process. The FPA Tool analyzed 840 requirements in 1,147 seconds, compared to the 100 man-hours it took for analysts to perform the same analysis. Across the board, the FPA Tool identified 400 percent more duplicates, similarities, and poorly written/incomplete requirements than the human analysts (80 vs. 20). Using NLP to parse requirements, the FPA Tool produces consistent and immediate estimations, decreasing experts’ time spent analyzing requirements and making it possible to perform quality control and manage software budget sizes for a fraction of the cost and time required under the human-based method. The benefits to the client are multifaceted: for cost estimation analysts, the FPA Tool performs function point counting analysis to estimate the cost of a set of requirements; for requirements writers, the tool provides immediate feedback on the clarity of the requirement statement and the approximate cost of a requirement; and for software developers, the tool identifies and removes duplicate requirements and summarizes the main abilities and functionalities of the software.
Buoyed by the success of the pilot program, Logapps is excited to share the FPA Tool with our clients, transitioning the tool from an in-house R&D project to a product available for use across our federal client portfolio. We view this tool as an extension of our service capability: a vehicle to save time and money, increase customer satisfaction, and leverage our passion for innovation to relieve the burden of complex manual processes—ultimately enabling our clients to devote their resources to managing and delivering exceptional products, not wasting valuable time and effort on tedious data analysis activities.
 Brooks, F. "No Silver Bullet: Essence and Accidents of Software Engineering." Computer 20, 4 (April 1987): 10–19.