SDLC stands for Software Development Life Cycle, which is a
process of building an application through different phases.
Q.
How will you go about choosing the right SDLC for your project?
A.
A.
- Firstly choose a base methodology: from a number of SDLC methodoligies like Waterfall, RUP (Rational Unified Process), SCRUM, XP (eXtreme Programming), etc. If you already have a SDLC methodology in place, analyse the existing deficiencies. This can be done by interviewing users of the system.
- Secondly, analyze what other best practices can be adopted from the other SDLC methodologies. For example, you can adopt best practices like daily stand-up meetings, iterative development, peer code reviews, and test driven development with waterfall as the base methodology.
Here are a few factors that will help you decide what SDLC methodology is right for your project
1. Understanding how the business is structured. For example, are the business units siloed by products? the culture of the organization, etc.
2. Complexity of the project. What is the size of the project team? How many streams are there?, etc.
3. Nature of the project. New greenfield project versus enhancements and maintenance to existing systems.
4. Capabilities of your engineers, tools, and current processes in place.
What
Is Agile?
The Agile movement proposes
alternatives to traditional project management. Agile approaches are typically
used in software development to help businesses respond to unpredictability.
In 1970, Dr. Winston Royce presented a paper entitled
“Managing the Development of Large Software Systems,” which criticized
sequential development.
What
is Scrum?
Scrum is the most popular way of
introducing Agility due to its simplicity and flexibility. Because of this
popularity, many organizations claim to be “doing Scrum” but aren’t doing
anything close to Scrum’s
actual definition. Scrum emphasizes empirical
feedback, team self management, and striving to build properly tested product
increments within short iterations. Doing Scrum as it’s actually defined usually comes into conflict with existing habits at
established non-Agile organizations.
Scrum has only three roles: Product
Owner, Team, and Scrum
Master. These are described in detail by the Scrum
Training Series. The responsibilities of the
traditional project manager role are split up among these three Scrum roles.
Scrum has five meetings: Backlog
Grooming (aka Backlog Refinement),
Sprint
Planning, Daily
Scrum (aka 15-minute standup),
the Sprint
Review Meeting, and the Sprint Retrospective Meeting.
Why Agile?
Agile development methodology provides opportunities to assess the direction of a project throughout the development lifecycle. This is achieved through regular cadences of work, known as sprints or iterations, at the end of which teams must present a potentially shippable product increment. By focusing on the repetition of abbreviated work cycles as well as the functional product they yield, agile methodology is described as “iterative” and “incremental.” In waterfall, development teams only have one chance to get each aspect of a project right. In an agile paradigm, every aspect of development — requirements, design, etc. — is continually revisited throughout the lifecycle. When a team stops and re-evaluates the direction of a project every two weeks, there’s always time to steer it in another direction.
Agile is good on papers but when it
comes to actual implementation, changing requirement at each sprint is the real
problem in a product.
In product development, a sprint is a set period of time
during which specific work has to be completed and made ready for review.
Each sprint begins with a planning meeting. During the meeting, the product
owner (the person requesting the work) and the development team agree upon
exactly what work will be accomplished during the sprint. The development team
has the final say when it comes to determining how much work can realistically
be accomplished during the sprint, and the product owner has the final say on
what criteria needs to be met for the work to be approved and accepted.The duration of a sprint is determined by the scrum master, the team's facilitator. Once the team reaches a consensus for how many days a sprint should last, all future sprints should be the same. Traditionally, a sprint lasts 30 days.
After a sprint begins, the product owner must step back and let the team do their work. During the sprint, the team holds daily stand up meeting to discuss progress and brainstorm solutions to challenges.
Scrum is an iterative and incremental agile software development framework for
managing software projects and product or application development. It defines
"a flexible, holistic
product development strategy where a development team works as a unit to reach
a common goal."
"Pigs and chickens" is an analogy used in the
Scrum software development model to define the type of role an attendee can
play at a daily scrum meeting.
Comments
Post a Comment