Software development – beyond the obvious
This blog outlines some basic software development steps that will assist managers to collaborate with developers. Most managers aren’t software development specialists and therefore require the unique skills of developers to assist them in completing the project successfully.
There are two key ingredients to getting software development right: 1. it needs to be friendly to the end-user and 2. it needs to meet management specifications.
Having software specifically tailored to an organisation’s needs can give it a competitive advantage. There are three main concerns when evaluating the competitive advantage that new software can deliver:
- The value the software can add to the organisation. Software is valuable if it can reduce costs or enable the organisation to deliver higher quality products or services.
- Software must be unique in the way that competitors can’t have access to the same software, if they do then neither company has an advantage over the other.
- A competitive advantage is achieved if the software that is developed is difficult to create or acquire. The correct use of software developers, technical staff and management resources make this possible.
An organisation’s software is a key asset and may act as, or contribute to, its differential. So how do organisations go about developing their software? Here are the steps:
Software Development steps
- Conduct a software investigation
Management and the software development specialist take time to determine the scope and nature of the software for it to meet the organisation’s needs and assist management with decision making.
This step in the development process requires a feasibility study where different software is evaluated against criteria such as costs, benefits, appropriateness, objectives, resource requirements and competitive advantage. These findings are all documented and formalised in a written report known as the preliminary report before continuing with further development.
- Conduct systems analysis
Firstly, software needs are identified to find out what sort of specifications and functionality end-users desire from the software. This step is far more detailed and contains a lot more information that the initial preliminary study. If the project involves replacing an existing system, then once these needs and specifications are identified, the gaps in the current software need to be explored. This is to highlight where it is not performing and why it needs replacing or improvement. Once this gap has been identified the software developer can determine the exact requirements for the new software according to end-user specifications. System analysis revolves determining what is being done, who is doing it, how it is being done and any problems that may develop.
- Design system
A software specialist is absolutely essential for this stage as it contains logical and physical steps that need to be taken in order for the software to meet requirements and accomplish goals that the end-user specified in the first and second steps. Logical aspects of this stage include preparing a model of the software. Physical aspects include developing exact specifications for the software such as elements of the software, information requirements, what sort of coding is required and determining any specific human resource requirements.
Thorough testing is included in this phase and the type of testing required will differ from project to project.
- Implementing software
This phase consists of installing the software and training end-users on how to use the software. Training methods may include:
- Knowledge transfer: An informal training where end-users learn from specialists throughout the implementation phase because they are in constant contact with the specialists. Knowledge transfer is a natural phenomenon that occurs during this phase and ‘sticks’ with end-users.
- Administrator training: This sort of training may happen at the software developer or at the end-user’s premises. End-users are given formal training and supporting documents to achieve extensive training on how to use the software and enable them to transfer knowledge to other members of staff.
- End-user training: This usually takes place in groups of staff in predetermined session lengths.
- Software Maintenance
Once the system is installed, maintenance is carried out to identify any performance gaps in the new software or identify where requirements were not quite understood or materialised. The software is constantly monitored and evaluated to enhance its performance and maintain the organisation’s competitive advantage and software differential.
- Software security measures
Software resources and intellectual property needs to be adequately protected. Software security measures are taken to ensure the software runs smoothly, doesn’t crash, can’t be hacked and is consistently reliable for use by the end-user.
Each software development company may approach these core steps in their own way according to their internal project management plan. Failing to have a predetermined set of processes for software development and implementation may result in losing competitive advantage and wasting the customers time and money.