Structured Approach - A method of development which follows a series of steps, mainly developed in an order of processes ( set process, to be done in a specific order)
Agile development - Agile development is the same as a waterfall development, but allows for modification of step process (allows for the change of step process, to be done in any order specific to developer)
Prototyping - the process of modeling a part or full solution, using feedback to improve/refine project.
Rapid Application Development (RAD) - When developers want to have the immediate software, without having to spend a lot of time/money on it. Less planning while having the program suited towards the developer. May include the agile, waterfall or spiral software development.
End User Approach - Is when the user develops their own software. These projects are usually not large and don't take much time. This approach is usually often done by people who are part of a small business or similar and needs a specific solutions for themselves.
Reduces complexity (modularity)
Focuses on ideal (logical) system
Standardises (team design)
Provides a future orientation
Relies less on artistry (engineering approach)
Does not allow for much reflection or revision
Once reached to testing stage, it is difficult to go back and change something which was not well-documented or thought upon in the concept stage
Fast development
Allows developers to fix problems when encountered
accommodates change systematically
encourages collaboration along with communication in real time
Development is rushed if time isn't managed correctly
Solution could have multiple versions out before it is 100% complete
Constant communication can be difficult to maintain
Fixing problems on the spot can be difficult
Reduced time and costs - Prototyping improves the quality of specifications and requirements provided to the customers.
Improved and increased User Development - Prototyping requires user involvement and enables them to see and interact with a working model or project.
Insufficient Analysis - Focusing on a limited prototype will distract developers from properly analysing the complete project
User Confusion - Mistaking prototype for completed project
Developer Misunderstanding of User
Excessive Development Time
Process can be measured
Quickly generates productive code
Quick, consistent user feedback
Adaptability
Needs modular systems
Not suitable for large scale projects
Demands for the user feedback
Dependent on developer's skill
This is most often done by people who are part of a small business and just need a specific solution for themselves.
Includes standard software packages which give the end user sufficient knowledge to customise the product to suit their particular needs.
When the end user has a need or idea for a specific software solution, they develop the software using tool with which they are familiar
Cheap and Quick (no need for copyright, no need to hire developers)
Lacks formal stages
Development is unstructured, informal and is often undertaken with little initial planning
No need to record the solution and therefore little prospect of future development.