Choosing the right SDLC (Software Development Lifecycle) methodology for the project is just as important for project success as any project management best practice implementation. Select the bad software model and add time to the development cycle. Increasing the duration of the development cycle will increase the budget and is very likely to prevent the project from being handed over in time.
Choosing an incorrect methodology may also hinder the project's effective management and interfere with project objectives and objectives. Software development methods are another tool in the developer business toolkit, just as best practices in project management are tools for the project manager toolkit. You do not chose a chainsaw to finish its edges on the cabinet door because you know it does not get the desired result. Select the software methodology to avoid overcoming the project results.
I know that not all project managers can choose the software model that they will use in every project. The organization invested heavily in the software methodology and software development support tools. In this case you can not do much. The organization will not look unfavorably to look at a method and tool that has cost thousands of dollars because it suggests another methodology for the project. We give you some tips on how to customize the methodologies that best fit the project requirements in the later article. Meanwhile, before your organization invests in software development methods, either the PMO should be consulted with the benefits of at least the majority of the projects being good fit
This article does not cover all SDLCs but we try to cover the most popular ones.
Scrum is a name, not an abbreviation (so there are no uppercase letters) although some users have created acronyms and are often used with agile software development. Scrum is typically chosen because of its iterative nature and can quickly work on working software. These are the reasons why new products are being developed. Generally, there is no such role for a project manager in this methodology, the 3 most important roles: script master (project manager substitution), product owner and system designer and builder. You can only get one role to ask if your organization is committed to the methodology, using the scrum master. If you have to decide whether this is really the best method for the project, you should re-examine the role of the project manager. Find the right master director and return to the bench or complete the role of the scrum master.
Scrum is capable of software development projects where it is important for the project to quickly develop software. Scrum is an iterative methodology and uses sprints called cycles to build a functioning system. Requirements are recorded on a "backlog" and select requirements with product manager. The requirements are selected on the basis of two criteria: the requirement prevails over the arrears and the requirements are a viable system
Sprint, which can last up to 2-4 weeks, must comply with sprint requirements. This is one reason why a project manager is not required for this methodology. There is no need to manage the requirements because the requirements under development are not changing. All changes must meet the arrears requirements
Scrum is capable of software development projects where the product is a new software product. Again, I mean, the organization taking the project is not new. The method has been developed to address the need for a software development method that is needed for learning, but not all requirements are known to the organization, and the focus is to quickly demonstrate a rapidly-running prototype. You have to be careful when selecting the requirements to ensure that each sprint ensures that the inventory has developed a software system capable of presenting a set of services that support the required requirements.
It must also be ensured that these requirements are well-known and understand that they can not be changed after the start of the sprint. This means that changes to the requirements need to go through the new requirement requirements, which makes the change of the requirements very expensive.
This method divides stakeholders into two groups: pigs and chickens. The inventors of this methodology chose this analogy based on the history of pigs and chicken – it is something that is adapted to this. A pig and a chicken walked along the road one morning and noticed the poor children who looked like they did not eat for days. The compassionate chicken told the pig: "Why do not we make these kids with ham and eggs?" The pig said, "I'm not satisfied with your suggestions, I'm just inclusive of breakfast, I'm absolutely committed!" The point is that the product owner, the scrum master and the team are in the "pig" group. Everything else is in the "chicken" group. You will be in the "chicken" group if you choose the Scrum methodology as a project manager.
The waterfall methodology calls for each stage of the development cycle to be repeated once. Requirements are collected and translated into functional specifications once, functional specifications have to be converted once, plans are integrated into the software components simultaneously and the components are tested once. The advantage of this methodology is the emphasis. Each analyst can focus his efforts on creating functional standards over a period of time rather than effort scattered throughout the project. Focusing resources in this way also reduces the window under which resources are needed. Programmers will not be enabled until all functional specifications are written and disabled
This disadvantage of this approach is that you are unable to teach anything during the project during the project. The most important difference between the waterfall approach and iterative methods such as Scrum or RUP is learning the lessons of the current iteration, which increases the efficiency of the team. The methodology of waterfalls is an ideal method if the project team has developed software systems that are very similar to the project and can not learn about development that would improve their performance. A good example of a project that would benefit from the methodology of waterfalls is a project that adds the functionality of the system to a project team built in a not too distant past. Another example is an environment that fits well with the methodology of waterfalls, a program that maintains the software system where the project is planned for some periods to improve the system. For example, an ordering and configuration software system that will be increased every 4 months.
The waterfall methodology is not particularly suitable for projects where requirements are not clearly understood at the beginning. Iterative approaches allow product owners or user communities to examine the result of building part of the requirements. Due to the subgroup of requirements for building iteration, product owners or user communities may re-examine the requirements or requirements that need to be built. This option will not be the method of waterfall, so you need to be sure of the requirements before you begin the build phase. Functionality of interpretation requirements is not a single aspect of development that can benefit from an iterative approach. Design and construction of the system can also profit from these activities iteratively. Use the waterfall method when your team knows the developed system and development tools. When developing the system, you must first avoid the system or use a completely new toolkit to develop the system.
The Rational Unified Process or RUP combines the iterative approach with usage cases, system development. RUP is IBM-supported, and IBM provides tools such as Rational Rose that support the methodology. The RUP divides the project into four phases:
1. Initial phase demands, business cases and high level of use cases
2. The processing phase – refined use cases, architecture, refined risk list, sophisticated business case and a project plan
3. Construction phase – establish system
4. The transition phase – system transition from development to production
RUP also defines 9 disciplines: 6 engineering disciplines and 3 supporting disciplines: configuration and change management, project management and the environment.
Iteration is not limited to a particular project phase – it can be used to guide the initial phase, but it can be used most for the construction phase. The project manager is responsible for a comprehensive project plan that defines the results of each phase and a detailed iteration plan that manages the tasks and tasks for each phase. The iterations aim to better identify and mitigate the risks.
RUP is essentially the cross between Scrum and the waterfall, as it only applies the iterative approach of the project phases, where most advantages arise. The RUP also emphasizes the structure of the system. The strength of RUP is adaptability to different types of projects. Simulate each aspect of the Scrum method so that all four phases can iterate or simulate the waterfall method by avoiding iterations. The RUP will be especially useful if you have some knowledge of the technology, but you need assistance in Usage Matters to clarify the requirements. Using Cases can be combined with storyboarding when a user interface develops a software system that simulates interaction between the user and the system. Avoid using RUP where your team is very familiar with the technology and system being developed, and product owners and users do not need cases that help clarify their requirements.
RUP is one of the methodologies when this is the case, then there is probably no other methodology to choose, but you can tailor the RUP to the project. Use iterations to eliminate the risks and unknowns that arise from your team's lack of knowledge of technology or system, or to eliminate iterations where you would otherwise use the waterfall method.
Common Application Development (JAD) is IBM. The main focus is to accommodate and interpret the requirements, but it can also be used to treat other phases with other methods (eg Waterfall). JAD collects participants in a room to articulate and clarify the system requirements. The project manager needs the workshop to provide background information on the goals, goals and system requirements of the project. The workshop requires the assistant, the clerk who sets the requirements, the participants contributing to the requirements and the members of the development team who are intended to be observers.
With JAD, you can quickly clarify and refine your requirements as each player will gather one room. Developers can prevent misunderstandings or ambiguity between requirements by interviewing participants. This method can only be used with almost any software methodology. Avoid using it where the organization's needs can not be clearly understood or in large, complex projects.
RAD uses abbreviated Rapid Application Development as an iterative approach and prototypes to accelerate application development. Prototyping starts with the creation of data models and business process models that determine the software application. Prototypes are used to validate and refine business and data models in an iterative cycle until the data model and software equipment are fine enough to begin construction.
The purpose of RAD is to enable development teams to set up and install software systems in a relatively short time. This is partly replaced by the collection, analysis and design of the standard requirements for prototype and modeling, prototypes and modeling enable the team to demonstrate application components more quickly than conventional methods such as waterfalls. The advantage of this method is that it promotes rapid development by eliminating the design cost. The disadvantage is that eliminating the top shielding eliminates a large part of the safety net that prevents the requirements from being misunderstood or completely omitted.
RAD is suitable for projects where the requirements are fairly well known and the data are industry or business standard or already exist in the organization. It can be used for a small development team or a project where the system can be broken down into individual applications that require small teams. RAD can not be used for large, complex projects or projects where requirements are not well known.
Lean Software Development (LSD) applies the principle of waste collection from the manufacturing world to software development business. The goal of LSD is to produce software on the 1/3 of time, 1/3 and 1/3 of the budget, by mistakes in comparable methods. This Lean 7 principle applies to software development:
1. Removal of Waste
2. Strengthen Learning (Technical and Business)
3. Decide as soon as possible
4. As fast as possible
5. Authorization of Team
6. Integration Building
7. See all of this
Although Lean Manufacturing has been working for a long time, application software development is relatively new, so it would not be a mature process.
LSD would be able to have a tutor in the method who has practical experience using lean methods for a software development project. "Enhanced" learning means that the development team has deeply recognized the available software tools and a wide range of knowledge that includes understanding the business's needs for the business. LSD would be suitable for a project where the developer team has these properties.
LSD is dependent on faster migration and subsequent finalization of requirements to eliminate most of the requests for change and will not be eligible for a project where delayed finalization is not possible to change the requirements or the size and complexity of the system developed would quick transition.
Extreme Programming (XP)
Extreme programming places emphasize requirements during the development cycle and testing so that the code generated is of good quality and low error rates in the field. XP requires developers to write a concise, clear and simple code to resolve problems. This code is thoroughly tested by unit tests to ensure that the code works accurately as the programmer intends and accepts tests to ensure that the code meets the customer's needs. These tests accumulate so that each new code passes through it and reduces the error in the field.
XP The developer team needs to carefully monitor customer needs and requirements. Clarification of ambiguity raises questions and gives the customer feedback that clarifies the requirements. This capability has a certain degree of familiarity with the customer's business; the team will less understand customer needs if they do not understand their business.
XP's intent is to enhance encoding, testing, and attention to the point where it is less dependent on design. At some point it is expected that the system will be sufficiently complicated to plan. The intention of the design is not to ensure that encoding is tight, but the various components fit and work smoothly.
XP would be a good software development method where the developer team is aware of the business of customers and has the means to perform the level of testing required for this method. Devices include automated unit testing and reporting tools, recording and tracing tools, and multiple test platforms. Developers who are also business analysts and can directly compile a requirement to the code are necessary because design is more architectural than detail. This skill is also needed if developers directly implement the changes in the software.
XP is not suitable for a development team with no business analytics experience and where testing is performed by a Quality Assurance team rather than a development team. The method can be used for large complex projects and simple smaller ones.
There is no law specifying that one or the other software project must choose the methodology. The list provided here is not a complete list and some methodologies do not appear (eg, Agile) so if you feel that there is another methodology that is more appropriate to your project, run it. You also need to explore combining elements of each method to create custom methods for your project. For example, the intention to eradicate waste from the development of software can be applied to any method you choose and likely to generate waste in any development store.
Be careful about choosing a method that fits well with your team, stakeholders, and clients, as well as your project. When it comes to a new development methodology that your team tries to learn at the same time, it strives for stringent deadlines, it is not a good idea. On the other hand, if you have room for maneuver, you would like to learn new ways of using your project.