Software Development

Posted on in Programming

As Company X begins to move toward a new information system, it must decide on how it will implement a new software strategy. They can choose to use pre-developed, off-the-shelf software or develop their own. Although off-the-shelf software has the benefit of being readily available, few systems are ready to be deployed immediately. These systems frequently require customization in order to fit with an organization's existing business processes. Therefore, it is reasonable for Company X to implement its own system based on custom software built on top of off-the-shelf components.

<!--more-->

The Scrum method of agile development is one of today's popular development techniques. Scrum-based projects are divided into short development iterations called sprints. At the end of each sprint, the software is fully tested and presented for review by the customer. At this time, customers and stakeholders have the opportunity to modify budgets or requirements as necessary. These short development cycles along with frequent stakeholder reviews ensure that time is not wasted by developing features the customer does not need (Keston, 2008). This frequent communication between the stakeholders and the development is the hallmark of the Scrum method.

The Scrum method organizes software developers into small teams of five to nine people. The ScrumMaster is the team leader assigned with overseeing the technical aspects of the project, as well as, managing the team members. The Product Owner is the liaison between the team and the customer. The rest of the team members work together to develop the product. Scrum teams generally do not develop specialized roles within the group. Instead, each member works on tasks assigned during the planning phase of each sprint. This flexibility gives team members the opportunity to work on tasks that interest them and to interact with team members on a frequent basis (Keston, 2008). This flexibility can improve developer morale by allowing them to branch out whenever they feel stagnant.

Every Scrum sprint begins with a planning session. During this session, tasks are take from the project backlog and assigned to the upcoming sprint. Each task is a fairly small work increment that should take no longer than 16 hours to implement. Every day, all members of the development team meet to discuss their status. This is a very short meeting last no more than 15 minutes. This meeting updates all the team members so that everyone knows what stage the sprint is in and what is being actively worked on that day. This meeting is vital since developers are not given specific instructions regarding how a task should be implemented. As long as the task requirements are satisfied, the developers are empowered to implement any technique they feel is appropriate (Keston, 2008).

The Systems Development Life Cycle is a six-step approach to developing and implementing an information system. The traditional life cycle moves through each step sequentially. The Scrum method of development fits within the Systems Development Life Cycle, but modifies the workflow significantly. In the traditional cycle, the requirements determination, systems design, and development are three independent phases (Senn, 2008). The Scrum method implements these phases as well, but iterates between them rapidly. After each development cycle, the project's progress is reviewed and changes are made to the requirements and system design. These iterations happen rapidly, so the requirements and design may change many times before a project is complete.

The rapid iteration process of the Scrum development method would be highly beneficial to Company X. As a company with very little existing information systems infrastructure, it is likely that the original system design will be inadequate. By frequently reviewing the progress of the project, Company X's stakeholders will have an opportunity to change the development's direction if a change is necessary. This is in sharp contrast to traditional software projects that accept requirements from the customer and then sequester the developers until all features have been implemented.

References

Keston, G. (2008). Scrum Project Management Techniques. Faulkner Information Services. Retrieved June 11, 2009, Docid: 00011498.

Senn, J. A. (2004). Information technology: Principles, practices, opportunities (3rd ed.). Upper Saddle River, NJ: Pearson.

My Bookshelf

Reading Now

Other Stuff