Q3) [15 marks] Agile Methods
Please answer the following parts in your own words, i.e. do not copy or quote, but paraphrase.
Agile Model is an increment model where all the requirements are divided into number of time slots known as a product backlog.It builds software incrementally from the starting of the project, instead of deliver it all at once.
Part A [5 marks] Summarise the advantages of incremental delivery in about 3 to 5 sentences.
1) Working software deliver quickly or frequently.
2) Client interaction with in the whole project.Client gives his feedback after every iteration.
3) Best model for long and onging projects.
4) All the requirements are prioritized according to the client needs and highest priority requirement is developed first.
5) Due to its flexibility Client can change or add any requirement during the development of the project.
6) Errors are easy to find and this model is less costly as compare to other models
7) Highest priority of this model is satisfy the customer and produce best product.
Part B [5 marks] Explain why test first development helps the programmer to develop a better understanding of the requirements.
Test first development is one of the greatest innovation in Extreme Programming.
This method is used to writing the unit tests for the previously develop code. This is used to find out the problems and simplifies the system requirements during the code development phase.
Test first development approach performing the unit testing on the code to reduce the undiscover errors into the present version of software and it checks the execution of the software .
To overcome the errors that are occur during any new method or function is added it runs automatically new tests.
This approach is very easier and faster to create a code without error.
So, This method supports the programmers to develop a well kind of the system requirements.
Part C [5 marks] Suggest three reasons why the productivity rate of programmers working as a pair might be more than half that of two programmers working individually. That is, why the sum productivity of two programmers may actually be increased when they are paired up.
Pair Programming is an approach where two programmers work together on a single problem. By using this technique both the programmers wotking side-by-side on a single computer on same design , algorithm , code , testing.
Reasons Why productivity rate is more:
Knowledge Transfer: In pair Programming Pair of two programmers one is well experience and second is fresher , they could learn from each other and become expert. Knowlegde is transfer between both of them by shuffing the pair. when they work on any task in pair the developing time is reduce and product is finish in less time as compare to finish by individual. so, we can say by knowledge transfer productivity rate is increased.
Share Responsibilities: In this method by shareing the responsibity between the two programmers also increased the productivity rate of the development. They encourage each other while pairing and the pressure to complete the task on time also shared by the parterns instead of one.
Back up and improve the code quality: In Pair programming back up means if one person is sick or out of office then the other person could continous working . Their development is never break down. But if development by individual programmer, then work is break down/slow down when he is sick or out of office. Pair programming also increased the code quality because mind of two programmers work together on single task. When they argue with each other then they find the best algorithm or solution for the problem or function.
All these reasons can increase the productivity rate and produce the best solution for any problem in less time.