Software Development Processes for Network Distributed Applications
110 likes | 244 Views
This workshop presentation by Davide Carboni discusses the experiences and expectations from Project E-Mate, which has been ongoing for approximately 2.5 years at CRS4. The project aims to design and implement software architecture to support mobile, personalized, and location-aware services. Key takeaways include the definition of service models, the integration of various tools, and the experimentation with XP practices in a research context. Despite challenges, the workshop emphasizes the potential benefits of simple design, testing, coding, and refactoring for improving development processes in similar projects.
Software Development Processes for Network Distributed Applications
E N D
Presentation Transcript
Software Development Processes for Network Distributed Applications Experiences and Expectations Davide Carboni @ NDA Group (CRS4) Workshop NAME, 4 Oct 2002
Outlines • Project E-Mate • About XP Practices… • Conclusions Workshop 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. Workshop NAME
Project E-Mate • Turn-over of 28 people in 3 years • Parallel activities involving 12-16 people full-time • Results: Various running prototypes, scientific articles, internal and external deliverables • 2 PhD thesis and 1 BSc. On going… Workshop 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. Workshop 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 Workshop 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… Workshop 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) Workshop 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 Workshop 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 Workshop 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 Workshop NAME