Troy Martin Hughes

Troy Martin Hughes has been a SAS practitioner for more than 20 years, has managed SAS projects in support of federal, state, and local government initiatives, and is a SAS Certified Advanced Programmer, SAS Certified Base Programmer, SAS Certified Clinical Trials Programmer, and SAS Professional V8. He has an MBA in information systems management and additional credentials, including: PMP, PMI-ACP, PMI-PBA, PMI-RMP, SSCP, CSSLP, CISSP, CRISC, CISM, CISA, CGEIT, Network+, Security+, CySA+, CASP+, Cloud+, CSM, CSP-SM, CSD, A-CSD, CSP-D, CSPO, CSP-PO, CSP, SAFe Government Practitioner, and ITIL Foundation.

He has given more than 100 presentations, trainings, and hands-on workshops at SAS user group conferences, including SAS Global Forum, SAS Analytics Experience, WUSS, MWSUG, SCSUG, SESUG, PharmaSUG, BASAS, and BASUG.

He is the author of three groundbreaking books that model SAS best practices, including SAS® Data Analytic Development: Dimensions of Software Quality (2016), SAS® Data-Driven Development: From Abstract Design to Dynamic Functionality, Second Edition (2022), and PROC FCMP User-Defined Functions: An Introduction to the SAS® Function Compiler (2023). Troy is a U.S. Navy veteran with two tours of duty in Afghanistan.


By This Author

Troy Martin Hughes | SAS Support

PROC FCMP User-Defined Functions: An Introduction to the SAS® Function Compiler

In PROC FCMP User-Defined Functions, readers are introduced to the SAS® Function Compiler, which enables users to create user-defined functions and subroutines. These modular, callable software components complement the diverse array of SAS built-in functions and extend the SAS programming language, creating more building blocks for constructing future software!

The book opens by introducing the role of functions in software design and explaining how functions improve software quality characteristics. It then moves on to basic PROC FCMP syntax, including how to define and call user-defined functions. Next, readers learn about the SAS array and hash object, the primary data structures leveraged by PROC FCMP, and how PROC FCMP can manipulate them behind the scenes.

Finally, the Python Component Object is introduced, which facilitates the interoperability of SAS and Python. PROC FCMP runs Python functions natively inside a SAS wrapper, which allows open-source functions to be incorporated without needing to be rewritten in SAS. 

PROC FCMP is a game changer. This book empowers readers to not only build better software, but also to embrace a more productive and efficient software development environment.

Troy Martin Hughes | SAS Support

SAS Data Analytic Development: Dimensions of Software Quality

SAS Data Analytic Development is the developer’s compendium for writing better-performing software and the manager’s guide to building comprehensive software performance requirements. The text introduces and parallels the International Organization for Standardization (ISO) software product quality model, demonstrating 15 performance requirements that represent dimensions of software quality, including: reliability, recoverability, robustness, execution efficiency (i.e., speed), efficiency, scalability, portability, security, automation, maintainability, modularity, readability, testability, stability, and reusability. The text is intended to be read cover-to-cover or used as a reference tool to instruct, inspire, deliver, and evaluate software quality.

A common fault in many software development environments is a focus on functional requirements—the what and how—to the detriment of performance requirements, which specify instead how well software should function (assessed through software execution) or how easily software should be maintained (assessed through code inspection). Without the definition and communication of performance requirements, developers risk either building software that lacks intended quality or wasting time delivering software that exceeds performance objectives—thus, either underperforming or gold-plating, both of which are undesirable. Managers, customers, and other decision makers should also understand the dimensions of software quality both to define performance requirements at project outset as well as to evaluate whether those objectives were met at software completion.

As data analytic software, SAS transforms data into information and ultimately knowledge and data-driven decisions. Not surprisingly, data quality is a central focus and theme of SAS literature; however, code quality is far less commonly described and too often references only the speed or efficiency with which software should execute, omitting other critical dimensions of software quality. SAS® software project definitions and technical requirements often fall victim to this paradox, in which rigorous quality requirements exist for data and data products yet not for the software that undergirds them.

By demonstrating the cost and benefits of software quality inclusion and the risk of software quality exclusion, stakeholders learn to value, prioritize, implement, and evaluate dimensions of software quality within risk management and project management frameworks of the software development life cycle (SDLC). Thus, SAS Data Analytic Development recalibrates business value, placing code quality on par with data quality, and performance requirements on par with functional requirements.