Software Development Project
Please read this assignment 4 instruction.
1. Prepare a small scale project. Use as your model one of the following:
a. Remodel project
b. Software development project
c. Events management project ( an awards banquet, or events at your choice)
Develop a statement of work for the project, using the format of: (1) background, (2) task, (3) objectives, (4) approach, (5) input source. Next, create a Work Breakdown Structure for the project.
What are the key steps, including work packages, tasks, and any related subtasks for the project?
2. Using the project you have identified in Problem 1, create a Responsibility Assignment Matrix (RAM) for it, identifying at lease six fictitious project team members.
3. Research a real project resources and develop a brief scope statement for the project, a general WBS, and any other information pertaining to the scope managment for that project.
This project provides a template to be used in software development. It includes a simple workflow accompanied with its statuses representing the tasks that go through the development project. Most software projects fail though. According to the Standish group reports, over 80% of the software development projects do not succeed. This is simply because they may be late, over budgeted, have some missing functions or a combination. The records also show that about 30% of the software projects are canceled before they are completed simply because of their poor execution. The projects that use the modern technologies such as the J2EE, XML, Java and Web Services are also no exception to this rule (Subramanyam, Weisstein, & Krishnan, 2010).
It is important to carry out best practices during the project in order to run a successful software development project. It is important to put into consideration the development process and choose the most appropriate development lifecycle process because all other activities during the project will be derived from that process. Most software development projects however use some kind of spiral based methodology over a waterfall process. The choices include the IBM Global services method, Rational Unified Process (RUP) and the eXtreme Programming (XP). What process to use in the project does not matter rather how well the process will be executed.
Gathering and agreeing on the requirements of the project is essential to a successful software project. The development team should understand what needs to be built not necessarily to all the requirements before any design and coding are done. Quality requirements could be divided into functional and non-functional requirements. The use of the use cases documents the functional requirements. Non-functional requirements on the other hand describe the characteristics of the system and performance of the application. They are important because of the major impact they have on the application architecture, performance and design.
The application architecture should also be chosen appropriately. This contributes majorly to projects failure if not chosen well. Tried and true architectural practices are known as patterns and they range from the java patterns, to EJB design patterns (Subramanyam, Weisstein, & Krishnan, 2010). The concept of antipatterns however is brought about by the projects that fail and they are valuable because of the knowledge they provide about what works and what does not.
A good design is mandatory despite having a good architecture. Most project managers either under design or overdesign their applications. Performing object oriented analysis and design using the UML is important for software projects. Code construction is the most visible task for a total project effort. It is equally important to the architecture, analysis, design and test.
Testing is an integral task in the software development project. It is not an afterthought when the schedule becomes tough. Instead, it should be done proactively meaning that the test cases are planned before coding is done and are developed while the application is under design and coding. Lastly, a successful project must be under project management. A good project manager is aware of the existence of the above mentioned tasks and applies the lessons learnt from the previous projects.
Objectives of a Software Development Project
The objectives are what give a project a clear direction and thus the most important thing that one can do in a project. Project objectives provide a measuring stick to make the project more effective. One only qualifies the venture as a success only if the project objectives are met. It is a practical way that enables the project manager to keep track of the progress made during the project and it does not matter whether what was to be done was actually done.
The project objectives should be done during the initial and planning processes of the project management. During the initial stage, the objectives are defined of what the project expects to accomplish. During the planning stage, they are just narrowly defined and they become part of the process in determining how the project will be accomplished.
The objectives should be clear and concise to communicate succinctly what the project should accomplish. Muddled objectives could show that the project was not necessary. The smaller objectives designed to help achieve a greater objective makes the task seem more manageable. However, its main importance is to ensure that members are able to make measurable processes.
The software development project is helpful in keeping the objectives in mind as it gives space for the objectives to be listed thus ensuring that the project manager is on track. By getting ideas from various stakeholders and team members, a project manager puts together a list of objectives that he or she believes will guide the project to a successful outcome. Examples of these objectives are: Control on Project Lifecycle, standards and methodology, metrics, transparency, stakeholders’ rights among others.
The overall goal of the software development project approach is to allow clients to have total visibility all throughout the project. If the project is broken down into logical iterations, the project manager and the team are able to focus on all the aspects of business in detail without feeling overwhelmed. Examples of the software approach include: the document initial scope, draft statement of work with fixed price and schedule, among others.
Inputs and preconditions in the initial stage of the software testing are not feasible not even with a simple product. This is the most fundamental problem in the software testing. The number of defects in a software product can be extremely large and the infrequently occurring defects could be difficult to find during the software testing. Software developer however can test everything. However, they can at the same time use a combinatorial test design to identify the minimum test number for the required coverage (Di Tullio & Staples, 2013).
Work Breakdown Structure
The analysis phase in the project has two tasks: the Glossary and the Requirements Specifications. The Requirements Specification is the divided into three sub-tasks: the Use cases, Supplementary Specification and the Reporting requirements. The sub-tasks however can be broken down further into components that could be estimated for the time, cost or the resources required (Lee & Xia, 2010).
Responsibility Assignment Matrix
R=Responsible Organizational Matrix
P=Performing Organizational matrix
Software Project Management Resources
Resources are always limited all over projects. The human and software resources are always limited since they service multiple projects. Thus, the onus on a software project manager is to organize his project management resources carefully and use them in the right way to achieve the set objectives for the ongoing project. The feasibility to deploy more resources so as to reduce the calendar time is applicably limited in the software development projects. Thus the available resources need to be managed effectively. Example of resources used in the software development project is: time, the human resources, computer resources and money (Di Tullio & Staples, 2013).
The resources are majorly classified into four standpoints: Availability, place of availability, elasticity, and shared and dedicated. Availability could be recurring or depleting. An example of recurring is the human resources that are equally available day-after-day. Depleting resources are like time and money whereby their use depletes them. The place of availability could be classified as movable or immovable. An immovable place of availability is only available in the situated place and cannot be moved from one place to another. For example, the computer resources are not moved from one place to another during the project. A movable place of availability like the human resources and even money can be moved from one place to another.
Elasticity is further classified into elastic and plastic resources. The elastic resources are those that can have their supply either increased or decreased such as the human resources and money. Plastic resources, however, cannot have their supply extended. A good example for this is time. Lastly, the shared resources are those that are needed for only a short time such as the database Administrators. Dedicated resources are those assigned fully to the project such as the programmers.
Di Tullio, D., & Staples, D. (2013). The Governance and Control of Open Source Software Projects. Journal Of Management Information Systems, 30(3), 49-80.
Lee, G., & Xia, W. (2010). Toward agile: An integrated analysis of quantitative and qualitative field data on software development agility. MIS Quarterly, 34(1), 87-114.
Subramanyam, R., Weisstein, F., & Krishnan, M. S. (2010). User Participation in Software Development Projects. Communications Of The ACM, 53(3), 137-141.