Analysts, after completing the business specification, manage the changing business situation to minimize the possibility of change over time. They also support both programmers and testers during the whole development process to ensure that the final product fulfills the business needs specified at the start. The process ideally puts business analysts as the key players during final delivery of the solution to the customer, as they are best placed to provide the best business layer.
Programmers do the technical specification during the design phase, which is why they are called programmers/designers, and during testing time they fix bugs.
Testers complete the test scenarios during the design phase, and evaluate them during the coding phase