Software Engineering and Development

Develops or selects, integrates, and transitions software technology.

Key Behaviors
  • Tests, debugs, and maintains detailed instructions (programs) for computers to follow and ensure performance of their intended functions.
  • Evaluates software quality and applicability in testing software capabilities.
  • Knows and considers available off-the-shelf software to make ‘build or buy’ decisions.
  • Monitors software configuration changes to anticipate and address the impact of data reliability and customer satisfaction issues.
  • Conceives, designs, and tests logical structures for solving problems by computer.
  • Maintains an awareness of the different programming languages used based on the purpose of the program, individual focus and area supported (e.g., specialist, generalist), and the organization.
  • Compares benefits and limitations of open source software with vendor-developed software.
  • Understands existing and emerging technologies and their applicability in the software implementation environment [e.g., vendor or open source, Service Oriented Architectures (SOA)].
  • Adopts and applies systems engineering perspectives and processes to software development.

Developmental opportunities for this competency are available from the NIH Training Center.