This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
Explain why the Extreme Programming method of development was used for this particular project. Hint - think of the benefits in terms of productivity.
eXtreme Programming (XP) methodology has gained increasing acceptance and popularity in the software community. XP promotes a discipline of software development based on principles of simplicity, communication, feedback, and courage. It is designed for use with small teams that need to develop software quickly and in an environment of rapidly changing requirements.
Why eXtreme Programming?
The extreme programming method was used because of the following reasons:
ü Speed: XP (extreme programming) creates working software faster and at the end software have very few defects.
ü Small Releases: The software is developed in small stages that are updated frequently. As system is frequently updated it improves the quality.
ü Cost: extreme programming allows us to produced good working system at low cost.
ü Customer's requirements: Another important practice of XP requires close customer involvement in the entire development cycle. The customer also provides acceptance tests at each stage to ensure the desired results are achieved.
ü 40-Hour Week: The XP team does not work excessive overtime to ensure that the team remains well-rested, alert and effective.
ü Testing: Testing is done consistently throughout the process. Programmers design the tests first and then write the software to fulfill the requirements of the test.
Can you think of a situation where extreme programming would not be appropriate?
Extreme Programming was created in response to problem domains whose requirements change often. Extreme programming is also used for situations when customers may not have a firm idea of what the system should look like.
I think extreme would not be appropriate where customers will not involve and where idea of system is already finalized. Because in extreme programming methodology system is released in small staged then customers are involved in feedback.
Extreme programming is vulnerable to bad developers who don't not work well with other people, who think they knew it all and also with those who are not willing to share there work or code with other member of project.
There are many scenarios where customers do not like to involve in the system development or they cannot involve because of time etc, in these situations extreme programming would not be appropriate.
Extreme programming will not work in an environment where programmers are separated geographically.
If there is a situation where the functionality of system functionality is expected to change every few months, then extreme programming would be the correct software development approach in many software development environments, change is the only constant. Traditional methodologies will never work in such scenarios, agile extreme programming is the answer.
Determine how Extreme Programming ensures conformance to quality in the development of software systems.
In the extreme programming software systems are developed in small stages then frequently tested and updated, as software systems are frequently tested and updated there quality improves.
With extreme programming all projects starts with a simple design that regularly evolves to add needed flexibility and remove unneeded complexity. If systems' designs are simple no extra features then developer will only concentrate on required system.
Most errors get caught in system development as systems are frequently tested. In the final software systems errors rate is lower as most errors are found and fixed in systems testing during the development.
Customers will involve in software systems' development testing and will have their say in the system. The on-site customer enables extreme programming team to explore their requirements as it needs to.
In XP teams solve problems faster.
Compare the testing strategies used in Extreme Programming with those of non-agile methods of development.
Extreme programming vs. non agile methodology.
Extreme programming testing
In extreme programming testers writes unit tests before programming and keeping tests running at all times. System is integrated and tested several times a day. We test the code because if we don't test, we don't know when we are done coding.
In extreme programming customers are essential parts of testing. But mostly acceptance tests are automated. Extreme programming does not require detailed documentation. Extreme programming has two types of testing, Unit testing and fundamental testing.
First we need to create unit test frame to be able to create automated test suits. Then we should test the all classes in system. We also need to create test before starting the code. Codes are tested in units then it's released. Code unit should not be released with out testing.
Water fall methodology
In water fall methodology testes are done at the end. Waterfall methodology has the following tests:
System test: In waterfall system testing is done and repeated till we have the working system.
Acceptance test: In this test system is checked against the user's requirements.
In waterfall methodology customer's only see the system once it's coded (developed). This may result a disaster if hidden problems found.