CapraTek Software Project Overview
Imagine that you are a software architect that has been hired by CapraTek to create an IEEE Standard 1058-based Software Development Plan for all their future in-house development projects. The document below has been sent to you by CapraTek’s CIO.
I am excited to have you on board to help us in defining our future software develop practices! I just want to share relevant information about our company. It is not a complete picture, but it is enough to get you started. Please feel free to make and state any assumptions you might need to make in areas that I have not provided sufficient information. We can talk about those when we refine our plan. For now, I need a polished first draft to share with our stakeholders by the end of next month.
We are a longtime leader in computer server technology but are now shifting our effort to focus on Alfred!, an integrated wireless smart-home hub that seamlessly connects household electronics, appliances, and devices. While we have traditionally outsourced our software development to third party companies, we have now decided to bring all development in-house with the hope that it will decrease design and development time and improve software quality. Many existing projects have either failed, or gone over time and budget, while much of the current software has become stale, due to poorly maintained code, and needs a proper plan.
One of our biggest challenges is changing the way we produce our product. We are interested in introducing Agile for software development, but many of our personnel are more familiar with traditional project management. Many have a basic understanding of Agile and a keen interest to adopt it, but they need a blueprint from which to work. We understand that there are several Agile methodologies and are looking for guidance on selecting the one that fits best. We hope you can help!
Our Team of Developers
We currently have 10 in-house developers that have experience with a mixed set of programming languages. Based on previously outsourced work, we are planning to increase this to 20–25 developers, but are not sure of what non-developer resources will be required by Agile. The organization is willing to hire additional non-development support staff (that is, PMs, QA, testers, administrators, etc.) based on Agile requirements.
We have three large software development projects planned for next year that are each similar in scope. We need to extend our Alfred! Web application and build both iOS and Android apps for users to control the hub. Using traditional project management techniques, we were able to build our original Alfred! Web application with 6 software developers and one project manager in 12 months. Our plans are to rewrite the entire application to improve the current hub’s performance. There will be few added features in the first iteration. The mobile apps will have similar functionality and will be relegated to phones for the first release, although we will be incorporating responsive design that should increase its reach to other devices.
We currently use the following technology and plan to continue to do so:
Microsoft Xamarin for cross-platform development.
C# applications using Visual Studio.
ASP.NET Web applications using Visual Studio.
Legacy Java applications using NetBeans.
Amazon Web Services (AWS).
Red Hat Linux.
Microsoft Server 2016.
Oracle 12c and SQL Server 2016 databases.
Here are some of the requirements and technical challenges facing projects that we would like addressed:
Servers: Dedicated servers need to be used for each process including databases and Web applications.
Bug Tracking: Most of the issues have been dealt with through e-mails or word of mouth. It is important that issues and bugs are tracked in a single application.
Version Control: Existing applications, when updated, do not have a trail of code being updated. There needs to be more accountability for developers and ensuring that all changes are being tracked against bug tickets.
Asset creation: Any images, videos, or other multimedia needs to be developed in a common tool that can be edited by any other individual. Common standard file formats should be used for any images and videos that are created.
****** Comparing Agile Methodologies
Review the CapraTek Overview found in the discussion Resources as required.
There are several different Agile methodologies that CapraTek might use for its new software development process. Briefly compare two Agile methodologies and provide arguments for the selection of one of them based upon your understanding of CapraTek’s requirements and needs.
Why might your choice be superior to a waterfall approach?