Software Development Processes for Network Distributed Applications Experiences and Expectations Davide NDA Group (CRS4) Workshop NAME, 4 Oct 2002
4 Oct 2002Workshop NAME Outlines Project E-Mate About XP Practices… Conclusions
4 Oct 2002Workshop NAME Project E-Mate Project E-Mate has been on going for about 2,5 years The objective: software architecture designed and implemented at CRS4, aimed to support the development and the deployment of mobile, personalized and location aware services. It defines a model of service and provides framework and components for the development of network applications available through multiple channels and position-aware.
4 Oct 2002Workshop NAME Project E-Mate Turn-over of 28 people in 3 years Parallel activities involving people full-time Results: Various running prototypes, scientific articles, internal and external deliverables 2 PhD thesis and 1 BSc. On going…
4 Oct 2002Workshop NAME Hardware and Software Tools Visual Age for Java Java Wireless Toolkit XML Spy Handheld, Java Phones, GPRS Phones, PC – Clients, Voice Clients, WAP Phones… Some XP practices have been experimented. Not a full XP process.
4 Oct 2002Workshop NAME Practices (Whole Team) Customer is a role “vague” in a research project such as E-Mate Requirements change according to emersion of new technologies Acceptance tests are often referred to vague “scenario of use” descriptions
4 Oct 2002Workshop NAME Practices (Design) Immediate design for concrete results: simple architecture, simple coding, simple testing Design for the reuse: flexible and extensible architecture, re-use in mind … “keep-it-simple” now and improve later seems a promising approach…
4 Oct 2002Workshop NAME Practices (Pair Programming) Often one of the programmers was much less skilled. Couples unbalanced cause scarce code-review and frustration for the skilled programmer. Innovative solutions are often from one individual. No boundaries between experiments and coding. On the other hand, two skilled programmers benefit a great deal from coding together (reviewing, sharing and transferring knowledge)
4 Oct 2002Workshop NAME Practices (First Test then Code) We failed in such a practice. Experienced programmers often make unit test in “handcrafting” way. Hostile to adopt a framework like Junit. Beginners do not understand the importance of unit testing. Result: quality of the code is not homogeneous
4 Oct 2002Workshop NAME Practices (Refactoring) Refactoring is tiresome, not all programmers appreciate this practice, some of them do not take it into account either. Some programmers start refactoring when code is too complex and bugs difficult to identify. Refactoring and testing must work in synergy
4 Oct 2002Workshop NAME Conclusions XP might not fit with research projects, however some of its practices could dramatically improve the development process Simple Design - Testing – Coding – Refactoring are promising practices we want to exploit deeply for future projects. Involved in a FIRB project to evaluate and refine agile methodologies in open-source and distributed communities