Professional Documents
Culture Documents
Management Approaches
Adaptive
b. V model: Nothing but line model, but shown graphically in another way. The V-Model demonstrates
the relationships between each phase of the development life cycle and its associated phase of
testing. The horizontal and vertical axes represents time or project completeness (left-to-right) and
level of abstraction (coarsest-grain abstraction uppermost), respectively.
c. Iterative = RUP: Iterative development slices the deliverable business value (system functionality)
into iterations. In each iteration a slice of functionality is delivered through cross-discipline work,
starting from the model/requirements through to the testing/deployment.
i. Inception identifies project scope, risks, and requirements (functional and non-functional) at a
high level but in enough detail that work can be estimated.
ii. i.e. unlike Linear where you finish all the requirements first before moving into design, in
Iterative, you divide into Verticals like Inception, Elaboration etc. And in each phase u do a
little bit of everything
f.
Another basic difference, as I see it, is that most Spiral models of development still insist on big, upfront design. The emphasis is on knowing as much as you can about how the system will be used;
discovering all the use cases. Once you know these, then you design the system and break it down
into phases that follow an iterative detail-design, implementation, test, refactor-design loop.
XP:
Pros
Minimizes feature creep by developing in short intervals resulting in miniature software projects and releasing the product in
mini-increments.
Short iteration may not add enough functionality, leading to significant delays in final iterations. Since Agileemphasizes realCons
time communication (preferably face-to-face), utilizing it is problematic for large multi-team distributed system development.
Agile methods produce very little written documentation and require a significant amount of post-project documentation.
Pros
Lowers the cost of changes through quick spirals of new requirements. Most of the design activity takes place incrementally
and on the fly.
Programmers are required to work in pairs (which may be difficult for some developers). There is no up-front detailed
Cons
design, which could result in more redesign effort in the long run. The business champion attached to the project full time can
potentially become a single point of failure for the project and a major source of stress for the team.
Pros
Captures the voice of the customer by involving them in the design and development of the application through a series of
collaborative workshops called JAD sessions.
Cons
The client may create an unrealistic product vision and request extensive gold-plating, leading the team to over- or underdevelop functionality.
Pros
Creation of minimalist solutions (i.e., needs determine technology) and delivering less functionality earlier (as per the
paradigm that 80% today is better than 100% tomorrow).
Cons
Product may lose its competitive edge because of insufficient core functionality and may exhibit poor overall quality.
Cons
Promotes strong collaborative atmosphere and dynamic gathering of requirements. Business owner actively participates
in prototyping, writing test cases and performing unit testing.
Dependency on strong cohesive teams and individual commitment to the project. Decision making relies on thefeature
functionality team and a communal decision-making process with lesser degree of centralized PM andengineering authority.
Scrum
Pros
Improvement in productivity in teams previously paralyzed by heavy process, ability to prioritize work, utilization of
backlog for completing items in a series of short iterations or sprints, daily measured progress and communications.
Reliance on facilitation by a master who may lack the political clout to remove impediments and deliver the sprint goal. Due to
Cons
its reliance on self-organizing teams and the rejection of the traditional centralized "process control", internal power struggles
may paralyze the team.
3.
Wideband Delphi
Cocomo
SLIM
SEER-SEM Parametric Estimation of Effort, Schedule,
Cost, Risk (based on Brooks Law)
6. Function Point Analysis
7. Proxy Based Estimation (PROBE) (from the Personal
Software Process)
8. The Planning Game (from Extreme Programming)
9. Program Evaluation and Review Technique (PERT)
10.Analysis Effort method
4.
6.
Develop
mentAgile Iterative model RUP Scrum Spiral model Waterfall model XP V-Mode
models
Mode
ls
Modeling
languageIDEF UML
s
7. V Good:
a. Software Development LifeCycle" is a synonym of "development process" and can be
waterfall, RAD, spiral, RUP, agile, etc... Agile is pretty same as Scrum, For example Scrum
methodology is a agile process Rad is informal name given to agile
b. Traditionally the rapid application development approach involves compromises in usability,
features, and/or execution speed. Agile on the other hand doesn't aim to achieve that. The iterations
aren't prototypes, rather, each iteration introduces changes and/or enhancements into the product
and these are reviewed by all parties involved.
c.
8. Agile Development
9. To me agile developments most important aspects are the following.
a. Tackling the most difficult aspects of the projects head first, in the first little iteration. These are the
things that can be show stoppers and thus need to be not only identified but tackled right up front. If
you are going to fail, for whatever reason, then failing early saves time, money, and resources.
Rather than coming to the end and discovering that thing(s) youve been putting of is actually not
possible and the project is a failure.
b. It enables you to go live with a system and it be production ready even if its only 80% done. At the
end of each and every iteration you have a fully tested and working version of the system. So should
management want to rush it out on the deadline dot and its not 100% finished those parts that are
will work. Sure not all features are implemented, but if they can live with that then thats all good.
c. This point negates the above one to an extent. You have customer involvement at every step and
you have regular involvement, input, and testing from them. This means that any issues not
discovered during requirements gathering, analysis, or design workshops can be incorporated along
the way. Your never gona get everything down 100% which is why with water flow (esp for large
projects) when you had over the baby to the client they could rejected it straight away. Even for the
most fickle reasons such as colours or critical reasons. Having the customer regularly involved also
does some really nice things. It shows that work is actually being done as they have tested it all the
way, they are then put at easy when things do start to go of track and drag on past the initial
deadline. If they understand why, and are kept in the loop then they are more calm and
understanding and realise things and give you more leeway. As opposed to say them not seeng
anything , as in waterflow, and you then asking for more time and money, and know that there will
be more changes to be done anyways. It establishes are good repour and its a two way street which
the developers also need as the input is vital to the success and this is a team effort not client vs
vendor..... You can examine at the end of each time box what happened and plan to tackle un
resoveled issues in the next iteration.
I dont really know what RAD or worked with it, and if i had it was unknowingly so cant really say
too much about it. But really forget the buzz words and stop getting confused between Agile,
Scrum, RAD Prototyping etc as such, pick the one that is best fit for the job.
10.