Project management - agile, scrum, etc

अब Quizwiz के साथ अपने होमवर्क और परीक्षाओं को एस करें!

SDLC Software Prototype Model

refers to building software prototype which displays the functionality of the product under development but may not actually hold the exact logic

Software Development Life Cycle (SDLC)

-Planning -Defining -Designing -Building -Testing -Deployment

What is RAD

-The RAD(Rapid Application Development) model is based on prototyping + iterative development with no specific planning required. -RAD is a software development methodology that uses minimal planning in favor of rapid prototyping -Phases: analysis, design, build + test distributed into series of rapid prototyping

Spiral Model Application - when is it used?

-When budget constraints & risk evaluation is important -Medium to high-risk projects -Long-term project commitment b/c of potential changes to economic priorities as requirements change with time -Customer not sure of requirements -New product released in places to get enough feedback -Significant changes expected in duration of cycle

Big Bang Model

-focusses all the possible resources in the software development and coding -with very little or no planning -changes required may or may not need to revamp the complete software -ideal model for the product where requirements are not well understood & final release date is not given

SDLC V-model

-verification & validation -extension of the waterfall -association of testing phase for each corresponding development stage -corresponding testing phase of the development phase planned in parallel

Kanban Vs Scrum

1-iterations-Scrum: -The iterations/Sprints are fixed in duration. That normally varies from 2 weeks to 1 month. 1-iterations-Kanban: -This does not work on the duration. This is measured in terms of Cycle times. 2-tracking-Scrum: -Team basically estimates or plans each sprint based on the Backlog sheet. 2-tracking-Kanban: -This is tracked in terms of the Workflow/Work item/Kanban card 3-roles-Scrum: -This process floats on the basis of three roles; -The Product Owner -The scrum master -And the Development 3-roles-Kanban: This doesn't work on the basis of roles. 4-changes-Scrum: -No changes are allowed once the Sprint has started 4-changes-Kanban: This is flexible here. Changes are allowed at any moment 5-work-portioning-Scrum: As Sprint is done in batches, the total work is done/achieved in batches/Sprints 5-work-portioning-Kanban: As Sprint is done in batches, the total work is done/achieved in batches/Sprints

SDLC Spiral Model - what is it about?

4 phases: IDENTIFICATION: -gathering business requirements DESIGN: -architectural design, logical design, physical product design CONSTRUCT OR BUILD: -poc is developed to get customer feedback EVALUATION & RISK ANALYSIS: monitoring technical feasibility, management risks such as schedule slippage & cost overrun

Iterative model - used for which cases?

A new technology is being used and is being learned by the development team while working on the project There are some high-risk features and goals which may change in the future

V-Model-Application - pros & cons

ADVANTAGE: -highly disciplined model, phases completed one at a time -easy to understand + apply -works well for smaller projects where requirements well understood DISADVANTAGE: -high risk and uncertainty -not a good model for long & ongoing projects -Once an application is in the testing stage, difficult to go back + change functionality

Advantages and disadvantages of the iterative and incremental SDLC model

ADVANTAGES: -Same working functionality can be developed quickly & early in the life cycle -Results are obtained early and periodically -Progress can be measured -Less costly to change the scope requirements -with every increment, operational product delivery DISADVANTAGES: -Only applicable to large + bulky software development projects. Hard to break a smaller system into further serviceable increments/models

Spiral Model - advantages and disadvantages

ADVANTAGES: -changing requirements can be accomodated -allow extensive use of prototypes -requirements can be captured more accurately -users see the system early -development can be divided into smaller parts and risky parts can be developed earlier which helps in better risk management DISADVANTAGES: -management is more complex -end of project may not be know early -not suitable for small or low risk projects - could be expensive for small projects -projects is complex -spiral may go on indefinitely

Waterfall advantages and disadvantages

ADVANTAGES: -simple & easy to use -phases processed + completed at one time -works well for smaller projects where requirements well understood -clearly defined stages DISADVANTAGES: -no working software until late in the life-cycle!!! -high amounts of risk and uncertainty -not a good model for long & ongoing projects -not suitable where requirements can change -integration: big bang, bottle-necks only identified at very end

What is agile development?

Agile is a time boxed, iterative approach to software delivery that builds software incrementally from the start of the project, instead of trying to deliver it all at once near the end. In other words: Combination of iterative and incremental process, focus on process adaptability + rapid delivery of working product: -planning -requirements analysis -design -coding/building -unit testing -acceptance training

Continuous software development

Continuous software development is an umbrella term that describes several aspects of iterative software application development, including continuous integration, continuous delivery, continuous testing and continuous deployment. If you use Google products and services, you are not only experiencing the results of continuous software development, you're contributing to the process. Using Agile software development and technical practices like continuous integration (CI), continuous delivery (CD), and continuous deployment (referred to as CDP in this article), Google learns, optimizes, and offers new products as it grows. Continuous development involves testing, updating, releasing, and measuring applications in a continual fashion as they are under development. Companies that develop software as an asset must continuously find ways to create value for their customers and competitive advantages for their business processes. Continuous iteration of your product and features helps you win in the marketplace, as does the actionable feedback that results from implementing continuous software development practices like CD. Continuous deployment (CD) is a software engineering approach in which software functionalities are delivered frequently through automated deployments.[1][2][3] CD contrasts with continuous delivery, a similar approach in which software functionalities are also frequently delivered and deemed to be potentially capable of being deployed but are actually not deployed.[4]

Iterative Model - what is it about?

Does not attempt to start with a full specification of requirements. Development begins by specifying & implementing just part of the software which is then reviewed to identify further requirements During software development more than one iteration of the software may be in process

Agile manifesto principles

INDIVIDUAL & INTERACTIONS: -self-organizations + motivation are important WORKING SOFTWARE: -demo working software best means of communication with clients CUSTOMER COLLABORATION: As the requirements cannot be gathered completely in the beginning of the project continuous customer interactions very important to get proper product requirements RESPONDING TO CHANGE: focussed on quick response to change & continuous development

What is the Agile Manifesto?

Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan

What is scrum

Like Kanban, Scrum is another framework for implementing Agile. Scrum is unique in having characters such as; defined iteration durations, role based tracking/approach etc. Scrum follows a set of fixed length iterations in which the product is developed. Each of these iterations are called as Sprint. Typically, each sprint is fixed somewhere within 2 weeks to 1 month. The start of each Sprint happens with a Sprint Planning meeting which finalizes the backlog/work items planned for that sprint. An estimation of the Sprint is also declared/justified in this phase. Selection of Product Backlog for the specific Sprint is done in this phase. Communicate to all the involved people about the scope and completion targets. Backlog items can also be split when needed. Priorities can be modified on the backlog items in this phase and a call is taken based on it. Each Sprint goes on with Daily stand-Up meetings/Daily Scrum meetings Each team member joins this meeting This does not exceed 15 minutes. What has been done since the last meeting, What is to be done before the next Scrum meeting is discussed during these meetings Blockers, Bottlenecks, dependencies if any are brought to the notice in these meetings. Each Sprint is concluded with the Retrospective meeting Completed work items are showcased/ Demo is given on the work items Two things are analyzed: Success points in the Sprint and the improvement area for the next Sprint. Once the Sprint is over, the same steps repeat for the remaining Backlog items. Scrum is basically operated based on the roles. Three roles to be precise; The Product Owner, Scrum master, and the Development team The Product Owner: They are the ones who know about the Product. List of Backlogs is put together by them. They study the real business and make sure the product deliverables are best suited to address the business needs. The Scrum Master: They are the hounds who live on the delivery flow, sprint planning, reviews, Daily meetings etc. The Development team: They work towards delivering a shippable product at the end of the Sprint. This team does the work such as; analyzing, designing, developing, testing, documenting etc.

Phases V-Model

MODULE DESIGN: -detailed internal design for all system modules is specified, referred to as low level design (LLD) CODING PHASE: VALIDATION PHASE: UNIT TESTING: unit testing: testing @code-level INTEGRATION TRAINING: is associated with architectural design phase SYSTEM TESTING: is directly associated with the System design phase ACCEPTANCE TESTING: associated with business requirement analysis

Agile: pros and cons

PRO: -very realistic approach to software development -promotes teamwork & cross training -functionality can be rapidly developed and demonstrated CON: -not suitable for handling complex dependencies -more risk of sustainability, maintainability, extensibility

Software prototyping - pros & cons

PROS -increased user involvement before implementation -reduces time & costs early on -missing functionality identified easily CONS -risk of insufficient requirement analysis -may increase complexity as scope of system may expand beyond original plans -effort building prototyping may be too much if not monitored properly

Big bang model - pros & cons

PROS: -easy to manage & no formal procedure are required CONS: -very high risk model + changes in the requirements or misunderstood requirements, may even lead to complete reversal or scraping of the project

RAD Pros & Cons

Pros: -changing requirements can be acomodated -progress can be measured -iteration time can be short with use of powerful RAD tools -productivity with fewer people in short time Cons: -Dependency on strong team members -only system that can be modularized (can be built using RA) -only system that can be modularized

Waterfall Model

SDLC approach that assumes the phases can be completed sequentially with no overlap. REQUIREMENTS GATHERING ANALYSIS: -possible requirements of the system to be developed are captured + documented in a requirement spec doc SYSTEM DESIGN: -helps specifying hardware + system requirements + helps in defining overall system architectures IMPLEMENTATION: -system first developed in small programs call units -> unit testing TESTING all units integrated after testing DEPLOYMENT after testing released into the market MAINTENANCE: patches released, better versions released

What is Kanban

To start, Kanban means 'Visual Signal' in Japanese. Kanban process is all about visualizing what you are doing today. Kanban process is nothing but a Board, named as the "Kanban Board" which not only plays a significant role in displaying the workflow but also helps to optimize the flow of task between different teams. Now, there are companies which follow physical boards and there are ones which follow the virtual boards. The latter comes in handy in terms of availability and accessibility in terms of locations. Kanban boards basically have three segments; To Do, In Progress and Done. However, depending on the project, team size, workflow Kanban board can be mapped accordingly. The board can have modified segments such as; to do, In Progress, Code review, In Testing, Deliverable etc

What is the difference between Scrum and Agile?

Wondering about the differences between Scrum vs Agile or Agile vs Scrum is like seeking for the differences between the words "Red" and "Color". Red is a type of color and use of it depends on the specific taste and comfort level of their users. The same could be said about Scrum vs Agile. Scrum is a type of agile methodology. It is essentially an agile process framework. In fact, Scrum and Kanban in software development terms are both specific flavors or types of an agile software methodology. While we can compare Scrum vs Kanban or Kanban vs Scrum (just like we can compare the colors "Red" and "Blue") as we'd be comparing two agile methodologies, however comparing Scrum vs Agile would be like comparing the words "Red" and "Color". Scrum is just one of the many iterative and incremental agile software development method. You can find here a very detailed description of the process.


संबंधित स्टडी सेट्स

Chapter 15 Loss Reserving Methods

View Set

ECON 201 Practice Midterm 2 (Chapters 13-18)

View Set