Factors affecting the development of software

When developing software the following should be considered.

User needs

When developing software the end user needs should be considered during all stages of the SDLC, but particular focus during the Design stage. Some example user needs are:

  • The functions the software must provide
  • The features the user requires
  • The performance expected by the user
  • The accessibility of particular users
  • The efficiency of the software

There can be other user needs based on a given context and user type.

User interface

The user interface is how an end user interacts with the software. This could be by mouse, keyboard, touch, voice, or biometric – therefore it isn’t always necessarily a button or graphical menu. While a modern operating system may have a menu and buttons, a digital assistant may only interface with an end user using voice or a command line interface may only allow keyboard input and text output.

All user interfaces have input components and output components. A typical modern Graphical User Interface (GUI) will have mouse control/touch control, buttons, drop down lists, drag and drop, navigation (menu), search boxes, tool tips, pop up boxes (modal window).

When designing user interfaces the hierarchical organisation of functions should be considered and targeted to the specific user needs of the software.

Concepts that may be within a user interface question are usability (how easy software is to use), accessibility (how accessible it is to users with disabilities), and inclusivity (considering different cultural backgrounds, genders, skill levels etc).

See also visual interfaces and navigation systems within database systems.

Processing efficiency

Processing efficiency relates to the software running efficiently on suitable hardware. CPU speeds and architecture should be considered when developing the software and also the speed of access and amount of cache and RAM – this would be identified during the data gathering process and benchmarking.

Development time

A project is time-based. To ensure a project is delivered on time a GANTT and PERT chart are utilised.

Technical specifications

Technical specifications identify the hardware specifications required to run the software efficiently. This can include all PC system components, as well as system-wide specification (network connections, network storage, internet availability).