Software Proposal Assignment 2
System Development Methodology
Available Methods:
- Traditional Waterfall Method
- The sequence for the waterfall method is as follows. Requirements need to be identified, then there needs to be a design phase followed by implementation and testing, once testing is done then it will need to be deployed and lastly maintenance will need to be performed for upkeep.
- Waterfall method is good for fixed projects with clear requirements.
- This method has limited flexibility, once progress begins it is hard to adapt and pivot.
- Agile Methodology
- As mentioned previously Agile is a very flexible method and there is also a lot of feedback involved.
- Agile method is good for group collaboration but that is not the only thing customer input is also considered and lastly software documentation is worked over.
- This method is well suited for high adaptability so if changes need to be made this is the perfect method.
- eXtreme Programming (XP)
- Extreme Programming is a subset of the Agile method but is more focused on quality.
- Extreme Programming Practices include paired programming, test driven development and multiple small releases which improve overtime.
- This method encourages frequent communication and simplicity.
- Scrum
- Scrum is another subset of the Agile method, but in this instance, Scrum breaks down development into short sprints usually about two – four weeks at a time.
- Scrum emphasizes having stand-up meetings, reviews and designating team roles. An example of these would be Scrum Master, Product Owner and Development Team.
- The Scrum method increases transparency between the development team and accountability.
- Object-Oriented Analysis and Design (OOAD)
- Object-Oriented Analysis and Design makes use of real-life objects
- This method also promotes the following qualities reusability and scalability along with promoting easier maintenance.
- OOAD is compatible with multiple modern programming languages examples being Java, Python, and Ruby to name a few.
- Rational Unified Process (RUP)
- Rational Unified Process features structured and iterative framework which was developed by IBM.
- RUP features the following phases, the very first phase is inception, followed by elaboration and the last two phases being construction and transition.
- The RUP method focuses on the following items risk reduction, architecture-first development, and ongoing testing.
Chosen Method(s):
- Agile Methodology (Scrum subtype)
- Object-Oriented Analysis and Design (OOAD)
Justification:
- The reason why I chose Agile with Scrum is because these offer flexibility, iterative feedback, and rapid prototyping, which is ideal for adapting to business needs at Wholesome Goods.
- Scrum encourages collaboration and progress tracking through structured sprints which I think will work well because there will be multiple small developments over a few short weeks span it will also improve collaboration among the team which is always a good thing.
- OOAD helps build a clean, modular system that’s easier to maintain and scale over time.
System Acquisition
Six Sources for Software:
- Information Technology Services
- An option for Information technology Services would be to reach out to a software developer or other third-party organization or even a consultancy.
- This will feature full customization, but it is often expensive.
- Packaged Software
- A few Off-the-shelf solutions that we could possibly investigate would be some inventory apps like QuickBooks or Zoho. To name a few.
- These will offer affordable solutions but may not meet all the requirements that we have when trying to develop our software.
- Enterprise Solutions
- Enterprise Solutions include large-scale systems some examples of these would be SAP, and Oracle to name a few. The best part is these systems can often integrate with different departments.
- The downside to Enterprise Solutions is they are highly powerful but complex and costly often too much for mid-sized companies (Wholesome Goods is a small to medium size company I do not recommend this option)
- Cloud Computing
- Cloud computing could also be investigated. There are several hosted services examples being SaaS platforms, AWS, and Google Cloud.
- There are some benefits such as them being scalable, cost-effective, and reducing infrastructure management which in the long term saves the organization’s capital.
- Open-Source Software
- There are also publicly available codebases MySQL, Laravel, Bootstrap just being a few that might work for what we are trying to achieve.
- Free or low-cost, highly customizable, but may require internal technical expertise.
- In-House Development
- We could also research into software that is built internally by our own organization’s developers.
- It would allow the system to be fully customizable; and also gives us control over security and feature sets.
- The only downside would be this is a time-consuming process and requires a lot of in-house expertise.
Chosen Source(s):
- Open-Source Software
- In-House Development
Justification:
- The reason why I have made this selection is because using open-source tools will reduce cost and provide a flexible foundation (e.g., database, UI components) Which mentioned previously will help reduce the organizations capital usage.
- In-house development will ensure the solution is tailored to Wholesome Goods’ specific inventory processes.
- Together, they provide a cost-effective and scalable solution with full control over development and customization.
System Development Methodology Available Methods: Traditional Waterfall Method The sequence for the waterfall method is as follows. Requirements need to be identified, then