Lecture 7
Lecture 7
Measure process -> check if improvement would be feasible -> do the change -> measure the impact of changes on process
Initial
Generally the starting point of any software organization
Unmanaged work
No proper software documentation
No effective project management plans (generally, opt build and fix models)
No cost estimation
Vast majority of the organizations are at this level
Challenges:
• Project management, planning and SQA
Managed
Goals associated with project are satisfied
Defined organizational policies (when which process to be used?)
Documented project plan with goals
Resource management is properly done. (technology relevant task force)
Generally working on same types of software
Defined
Process management procedures and strategies defined and used
Proper teamwork
Collaborative learning environment
Managed
Assess organizational performance.
Better project management structures.
Risk analysis and proactive approaches (what if a project fails?)
Optimising
Process improvement strategies defined and used.
More and more adaption to newer trends
Plan-driven development:
Could be helpful for some types of system but it can not meet the
rapidly changing business needs.
Can be helpful for some safety critical systems
Using plan driven approach for software that have rapid changing
business requirements might led to a delayed software product
that would become obsolete after deployment.
Agile development:
methods emerged in the late 1990s, whose aim was to radically
reduce the delivery time for working software systems
Background:
Dissatisfaction with the overheads in software design methods of
the 80s and 90s led to the creation of agile methods.
Characteristics:
Focus on the code rather than the design
Are based on an iterative approach to software development
Are intended to deliver working software quickly and evolve this
quickly to meet changing requirements.
Aim:
reduce overheads in the software process (e.g. by limiting
documentation)
able to respond quickly to changing requirements without
excessive rework.
30/10/2014 Chapter 3 Agile Software Development 21
The principles of agile methods
Principle Description
Customer involvement Customers should be closely involved throughout the
development process. Their role is provide and prioritize new
system requirements and to evaluate the iterations of the
system.
Incremental delivery The software is developed in increments with the customer
specifying the requirements to be included in each increment.
People not process The skills of the development team should be recognized and
exploited. Team members should be left to develop their own
ways of working without prescriptive processes.
Embrace change Expect the system requirements to change and so design the
system to accommodate these changes.
Maintain simplicity Focus on simplicity in both the software being developed and
in the development process. Wherever possible, actively work
to eliminate complexity from the system.