In: Operations Management
Your company asked you to develop a new software. Explain the following
: 1. What software development methodology you will use and why?
2. List two models, tools, and techniques you will use and explain why you used each one?
1. The software development methodology that I will use is "Agile". It basically refers to "response to change". This is a very flexible and feedback oriented development process where you split the entire cycle of a project into smaller runs (also called sprints). Each sprint is carried out as a smaller project. At the end of this smaller project, this is delivered to the client (company) who will provide feedback as to how to improve/rectify the deployment. Next batch of project will start along with correcting/improving the current delivered one. So at the end of the entire project life cycle, a very customer-oriented product can be delivered
2.
Techniques that we can use are:
a) Structured programming - It means following a definite standard and structure for coding which will enhance quality of coding, testing and customization
b) Performance enhancement - Using tools and techniques to enhance the performance of software without changing the end product
Tools that we can use are:
a) Test case generators - This reads a program and automatically generates test case scenarios for testing purposes
b) Coding auditors - These tools are used to audit the efficiency of a code. It is used to enhance the quality and responsiveness of a particular piece of code
Models that can be used are:
a) Agile : As explained earlier, this splits the entire life cycle of the project to mini-life cycles and codes will be deployed to customer. Based on the feedback from them and by using the above tools and techniques to improve our own code, the deployed code will be enhanced in parallel to new clodes being developed. At the end of the cycle and very user-oriented project can be delivered
b) Waterfall model - This is a traditional model which are still being used nowadays but are rapidly being taken over by the above agile model. This is basically Requirement collection -->Design -->Implementation --> Testing--> Deployment--> Maintenance. This is a very traditional approach and prone to errors.