Saturday, January 14, 2012

choosing the Right Sdlc For Your task

Choosing the right Sdlc (Software development Lifecycle) methodology for your task is as leading to the success of the task as the implementation of any task supervision best practices. Pick the wrong software methodology and you will add time to the development cycle. Adding extra time to the development cycle will growth your funds and very likely preclude you from delivering the task on time.

Choosing the wrong methodology can also hamper your effective supervision of the task and may also interfere with the delivery of some of the project's goals and objectives. Software development methodologies are another tool in the development shop's tool inventory, much like your task supervision best practices are tools in your task manager's tool kit. You wouldn't Pick a chainsaw to end the edges on your kitchen cabinet doors because you know you wouldn't get the results you want. Pick your software methodology carefully to avoid spoiling your task results.

I realize that not every task manager can Pick the software methodology they will use on every project. Your assosication may have invested heavily in the software methodology and supporting tools used to found their software. There's not much you can do in this case. Your assosication won't look conveniently on a invite to cast aside a methodology and tools they've spent thousands of dollars on because you propose a different methodology for your project. We'll give you some tips on how to tailor some of the methodologies to good fit with your task requirements later in this article. In the meantime, before your assosication invests in software development methodologies you, or your Pmo, ought to be consulted so that at least a majority of projects are benefited from a good fit.

This article won't cover every Sdlc out there but we will effort to cover the most popular ones.

Scrum

Scrum is a name rather than an acronym (which is why I haven't capitalized the letters), although some users have created acronyms, and is generally used together with agile software development. Scrum is typically chosen because of its iterative nature and its ability to deliver working software quickly. It is chosen to found new products for those reasons. There is typically no role for a task manager in this methodology, the 3 key roles are: the scrum scholar (replacing the task manager), the goods owner, and the team who found and build the system. There is only one role that you would be asked to play if your assosication is committed to using this methodology, scrum master. If you should resolve that this would in fact be the best methodology for your project, you'll have to re-examine your role as task manager. You can whether recognize a suitable scrum scholar and return to the bench, or fill the role of scrum master.

Scrum suits software development projects where its leading for the task to deliver working software quickly. Scrum is an iterative methodology and uses cycles called sprints, to build a working system. Requirements are captured in a "backlog" and a set of requirements is chosen with the help of the goods manager. Requirements are chosen based on 2 criteria: the requirement takes priority over others left in the backlog and the set of requirements chosen will build a functioning system.

During the sprint, which can last from 2 to 4 weeks maximum, no changes can be made to the requirements in the sprint. This is one of the reasons that a task manager isn't necessary for this methodology. There is no need for requirements supervision because no changes are allowed to the requirements under development. All changes must occur in the requirements set in the backlog.

Scrum will be suitable for software development projects where the goods is a new software product. By new I mean that it is new to the assosication undertaking the project, not in general. The methodology was industrialized to address a need for a recipe to build software when its necessary to learn on the fly, not all requirements are known to the assosication and the focus is on delivering a working prototype quickly to demonstrate capabilities. You need to be true when choosing requirements to deliver in each sprint to ensure that the set industrialized builds a software law that is capable of demonstrating the feature set supporting the requirements included.

You also need to ensure that these requirements are well known and understood as no changes are allowed once the sprint starts. This means that any changes to the requirements must come straight through a new set of requirements in the backlog development changes to these requirements very expensive.

This methodology divides stakeholders into 2 groups: pigs and chickens. The inventors of this methodology chose this analogy based on the story of the pig and the chicken - it goes something like this. A pig and a chicken were walking down the road one morning and happened to notice some poor children who looked like they hadn't eaten for days. The generous chicken said to the pig: "Why don't we make those children a morning meal of ham and eggs?" The pig said: "I'm not happy with your suggestion. You're just complicated in development the breakfast, I'm totally committed!" The point to this is the goods owner, scrum master, and team are all in the "pig" group. All others are in the "chicken" group. You will be in the "chicken" group if you Pick the Scrum methodology as a task manager.

Waterfall

Waterfall methodology calls for each phase of the development cycle to be repeated once only. Requirements will be gathered and translated into functional specifications once, functional specifications will be translated to found once, designs will be built into software components once and the components will be tested once. The benefit of this methodology is its focus. You can consolidate the effort of all your analysts on producing functional specifications while one period rather than have the effort dispersed throughout the whole project. Focusing your resources in this way also reduces the window while which resources will be required. Programmers will not be engaged until all the functional specifications have been written and approved.

The disadvantage of this coming is its inability to teach the task team whatever while the project. A key incompatibility between the waterfall coming and an iterative methodology, such as Scrum or Rup, is the opportunity to learn lessons from the current iteration which will improve the team's effectiveness with the next iteration. The waterfall methodology is an ideal methodology to use when the task team has built software systems very similar to the one your task is to deliver and has nothing to learn from development that would improve their performance. A good example of a task which would benefit from the waterfall methodology is a task to add functionality to a law the task team built in the not too distant past. another example of an environment that is well suited to the waterfall methodology is a agenda to contend a software law where a task is scheduled for specific periods to improve the system. For example, an order and configuration software law which is enhanced every 4 months.

The waterfall methodology does not lend itself particularly well to projects where the requirements are not clearly understood at the outset. Iterative approaches allow the goods owners or user community to examine the follow of building a sub-set of requirements. Exercising the sub-set of requirements in the iteration's build may cause the goods owners or user community to re-examine those requirements or requirements to be built. You won't have that opportunity with the waterfall recipe so you need to be safe bet of your requirements before you begin the build phase. Interpreting requirements into functionality is not the only aspect of development that can benefit from an iterative approach. Designing the law and building it can also benefit from doing these activities iteratively. You should use the waterfall recipe when your team is well-known with the law being industrialized and the tools used to found it. You should avoid using it when developing a law for the first time or using a fully new set of tools to found the system.

Rup

The Rational Unified Process, or Rup, combines an iterative coming with use cases to govern law development. Rup is a methodology supported by Ibm and Ibm provides tools (e.g. Rational Rose) that reserve the methodology. Rup divides the task into 4 phases:

1. Inception phase - produces requirements, company case, and high level use cases

2.Elaboration phase - produces refined use cases, architecture, a refined risk list, a refined company case, and a task plan

3. building phase - produces the system

4. Transition phase - transitions the law from development to production

Rup also defines 9 disciplines: 6 engineering disciplines, and 3 supporting disciplines: Configuration and convert Management, task Management, and environment so is intended to work hand in hand with task supervision best practices.

Iteration is not little to a specific task phase - it may even be used to govern the inception phase, but is most applicable to the building phase. The task manager is responsible for an extensive task plan which defines the deliverables for each phase, and a detailed iteration plan which manages the deliverables and tasks belonging to each phase. The purpose of the iterations is to good recognize risks and mitigate them.

Rup is essentially a cross between Scrum and waterfall in that it only applies an iterative coming to task phases where the most benefit can be derived from it. Rup also emphasizes the architecture of the law being built. The strengths of Rup are its adaptability to different types of projects. You could simulate some of the aspects of a Scrum recipe by development all 4 phases iterative, or you could simulate the waterfall recipe by choosing to avoid iterations altogether. Rup will be especially beneficial to you when you have some familiarity with the technology but need the help of Use Cases to help expound your requirements. Use Cases can be combined with storyboarding when you are developing a software law with a user interface to simulate the interaction between the user and the system. Avoid using Rup where your team is very well-known with the technology and the law being industrialized and your goods owners and users don't need use cases to help expound their requirements.

Rup is one of those methodologies that your assosication is very likely to have invested heavily in. If that's your situation, you probably don't have the authority to select another methodology but you can tailor Rup to suit your project. Use iterations to eliminate risks and unknowns that stem from your team's unfamiliarity with the technology or the system, or eliminate iterations where you would otherwise use the waterfall method.

Jad

Joint Application Development, or Jad, is another methodology industrialized by Ibm. It's main focus is on the capture and interpretation of requirements but can be used to carry on that phase in other methodologies such as waterfall. Jad gathers participants in a room to contend and expound requirements for the system. The task manager is required for the workshop to contribute background information on the project's goals, objectives, and law requirements. The workshop also requires a facilitator, a scribe to capture requirements, participants who lead requirements, and members of the development team whose purpose is to observe.

Jad can be used to quickly expound and refine requirements because all the players are gathered in one room. Your developers can avert misunderstandings or ambiguities in requirements by questioning the participants. This recipe can be used with just about any software methodology. Avoid using it where the organization's needs are not clearly understood or on large, complicated projects.

Rad

Rad is an acronym for Rapid Application development uses an iterative coming and prototyping to speed application development. Prototyping begins by building the data models and company process models that will define the software application. The prototypes are used to verify and refine the company and data models in an iterative cycle until a data model and software found are refined sufficient to begin construction.

The purpose of Rad is to enable development teams to create and deploy software systems in a relatively short period of time. It does this in part by replacing the primary methods of requirements gathering, analysis, and found with prototyping and modeling, the prototyping and modeling allow the team to prove the application components faster than primary methods such as waterfall. The benefit of this recipe is it facilitates rapid development by eliminating found overhead. It's disadvantage is that in eliminating found overhead it also eliminates much of the security net which prevents requirements from being improperly interpreted or missed altogether.

Rad is suitable for projects where the requirements are fairly well known in expand and the data is whether an manufactures or company standard, or already in existence in the organization. It is also suitable for a small development team, or a task where the law can be broken down into personel applications that want small teams. Rad is not suitable for large, complicated projects or projects where the requirements are not well understood.

Lsd

Lean Software Development, or Lsd, applies the law of waste reduction from the manufacturing world to the company of developing software. The goal of Lsd is to yield software in 1/3 the time, on 1/3 the budget, and with 1/3 the defects of comparable methods. Lean does this by applying 7 law to the effort of software development:

1. Eliminate waste

2. Amplify learning (both technical and business)

3. resolve on requirements as late as possible

4. Deliver as fast as possible

5. Empower the team

6. Build integrity

7. See the whole

Although Lean Manufacturing has been colse to for some time, its application to the process of developing software is relatively new so I wouldn't call it a mature process.

Lsd would be a suitable recipe to use where you have a branch matter scholar in the recipe who has some practical feel in applying lean methods to a software development project. "Amplified" learning implies that your development team has a depth of knowledge in the software tools provided, and also a breadth of knowledge that includes an understanding of the company needs of the client. Lsd would be suitable for a task where the development team has these attributes.

Lsd depends on a quick turnaround and the late finalization of requirements to eliminate the majority of convert requests, so will not be suitable for a task where a delayed finalization of requirements will have a poor opportunity of eliminating convert requests, or the size and complexity of the law being industrialized would preclude a quick turnaround.

Extreme Programming (Xp)

Extreme programming places emphasis on an ability to accommodate changes to requirements throughout the development cycle and testing so that the code produced is of a high degree of ability and has a low failure rate in the field. Xp requires the developers to write concise, clear, and straightforward code to solve problems. This code is then fully tested by unit tests to ensure that the code works exactly as the programmer intends and acceptance tests to ensure that the code meets the customer's needs. These tests are accumulated so that all new code passes straight through them and the chances for a failure in the field are reduced.

Xp requires the development team to listen carefully to the needs and requirements of the customer. Ambiguities will be clarified by request questions and providing feedback to the customer which clarifies the requirements. This ability implies a safe bet degree of familiarity with the customer's business; the team will be less likely to understand the customer's needs if they don't understand their business.

The intent of Xp is to improve coding, testing, and listening to the point where there is less dependency on design. At some point it is unbelievable that the law will become sufficiently complicated so that it needs a design. The intent of the found is not to ensure that the coding will be tight, but that the varied components will fit together and function smoothly.

Xp would be a suitable software development recipe where the development team is knowledgeable about the customers company and have the tools to conduct the level of testing required for this method. Tools would consist of self-operating unit testing and reporting tools, issue capture and tracking tools, and multiple test platforms. Developers who are also company analysts and can translate a requirement directly to code are a necessity because found is more architectural than detail. This skill is also required as developers implement changes directly into the software.

Xp won't be suitable where the development team does not possess company pathology feel and where testing is done by a ability assurance team rather than by the development team. The recipe can work for large complicated projects as well as straightforward smaller ones.

There is no law that states you must Pick one or the other of these methodologies for your software project. The list I've given you here is not a totally extensive list and some methodologies don't appear on it (e.g. Agile) so if you feel that there is some other methodology that will good suit your project, run with it. You should also look at combining some of the features of each of these methods to convention make a methodology for your project. For example, the desire to eliminate waste from the process of developing software is applicable to any recipe you Pick and there is likely waste that could be eliminated in any development shop.

Be true to Pick a methodology that is a good fit for your team, stakeholders, and customer as well as your project. Bringing in a new development methodology that your team will struggle to learn at the same time they are trying to meet tight deadlines is not a good idea. On the other hand, if you have the latitude you may want to begin learning a new recipe with your project.

No comments:

Post a Comment