•The client is available all the time to consult with developers and monitor the development of the software.•Potential drawbacks•The representative would be more valuable working at the client’s company.•Why it works in XP•Clients can contribute, e.g. by writing user stories and contributing/commenting on tests. •Rapid feedback for programmer questions is valuable.•XP focuses on efficiency, which includes efficient of communication with the client.•Project•Discussions about the project during lectures. •Contact the instructor any time for clarifications. On-site CustomerJoey Paquet, 2006-201816SOEN 6441 - Advanced Programming Practices
Concordia Department of Computer Science and Software •Description•All code written must follow defined conventions for layout, variable names, file structure, documentation, etc. The team agrees to and adopts a group of coding conventions, then ensures that they are followed by everyone. •Potential drawbacks•Programmers can be individualists and refuse to be told how to write their code. •Can be overdone and thus be wasteful of time. •Why it works in XP•Coding standards lead to more understandable code, which is required for pair programming, continuous integration, testing, and productivity in general. •Refactoringcan be used to enforce conformance to coding standards between builds. •Project•Use a predefined set of coding conventions.•Keep focused on a simple, reduced set of conventions.•Use a documentation generation software (e.g. Javadoc).Coding StandardsJoey Paquet, 2006-201817SOEN 6441 - Advanced Programming Practices
Concordia Department of Computer Science and Software Values of Extreme ProgrammingJoey Paquet, 2006-201818SOEN 6441 - Advanced Programming Practices
Concordia Department of Computer Science and Software •Building software systems requires, for example:•communicating system requirements to the developers of the system•communicating the software interfaces (APIs) to fellow developers. •In formal software development methodologies, this task is accomplished through precise and standard documentation. •Extreme programming techniques can be viewed as methods for efficiently building and disseminating institutional knowledge among members of a development team without relying on heavy documentation. •The goal is to give all developers a shared viewof the system which matches the view held by the users of the system. The developers and users should come to understand and use each other’s terms and language. •To this end, extreme programming favors simple design, common metaphors, collaboration of users and programmers, frequent verbal communication, and feedback.•During coding, automated code documentation tools (e.g. Doxygen, Javadoc) and coding standards can be used to facilitate communication between developers.