Flylib.com

Books Software

 
 
 

Agile Development with ICONIX Process: People, Process, and Pragmatism - page 38

Summary

In this chapter we defined a core subset of the many practices that are out there and variously defined as agile. These core practices used together complement each other and are particularly apt for use with the ICONIX object modeling process.

We also analyzed the reality of software agility versus the perception of software agility people have grown accustomed to. If an agile practice doesn’t contribute to the core goals of software agility, then it can’t reasonably be considered an agile practice. It might be important, but it’s something other than agile.

In the next section of the book, we examine the core agile practices in action and show how to combine them with ICONIX Process, itself a core subset of UML modeling techniques. This won’t be a theoretical discussion, but a very practical example: a real-life C#/.NET application.

Part 2: Agile ICONIX Process in Practice—The Mapplet Project

Chapter List

Chapter 5: Introducing the Mapplet Project
Chapter 6: Modeling the Mapplet (Release 1)
Chapter 7: Synchronizing the Model and Code—One Small Release at a Time
Chapter 8: Mapplet Release 2

This part of the book features a running example project that will thread through the various chapters. Well illustrate many of the points we made in using this example project. The project is real—its not an academic exercise—and weve taken snapshots during the various iterations of modeling, prototyping, and coding.

This being a book about agile development (i.e., adapting to changing requirements over time), our idea is to present the original project requirements and show that even though the requirements evolved over the course of the project, we were still able to incorporate up-front modeling into the development process. The story that unfolds is very much the story of how to approach this situation.

The use case text and diagrams shown in this parts chapters were taken directly from the project, so youll notice some (minor) inconsistencies at times between the use cases and the text in the diagrams. This also reflects the agile spirit: the analysis and design artifacts need to be just good enough to get us to the next stage of development. (Or, to put it another way, they need to be minimal yet sufficient . The team should always try to avoid spending ages polishing the diagrams until theyre perfect.)

Chapter 5: Introducing the Mapplet Project

Overview

This project tells the story of a feedback-driven process that causes the design and the code to become more tightly in sync as the project progresses. To us, this is the essence of successful agile development. In most cases where modeling is done up-front, the model and the code quickly diverge, never to meet again. Agile ICONIX, on the other hand, encourages developers to keep the model and the code tightly synchronized, by revisiting and reviewing the model at the end of each iteration (and at the start of each new release phase), as well as by placing an emphasis on early feedback at every stage of the process. We revisit this concept in more detail in Chapters 7.

Our example project is a map-based hotel finder for a travel website, which was developed using the agile development approach described in this book. We’ll show the evolution of the model and the code that goes with it.

The finished product is available for you to interact with at this web address: http://smartmaps.vresorts.com. Just drill down into any of the map destination pages from the main U.S. map, and then click the Show Map button to see the mapplet in action. You might find it interesting to compare the finished product with the use cases presented in this book.

The mapplet is a web-based application that is built on top of ESRI’s [1.] ArcGIS Server platform. The ArcGIS [2.] platform enables the development of Geographic Information System (GIS) or map-based applications using state-of-the-art OO (e.g., C#/.NET) environments. To fully leverage the power of these modern development environments, it’s helpful to adopt an OO approach from front to back. ICONIX Process, being a low-ceremony, minimalist, use case–driven design approach, is ideal for developing OO GIS applications. The mapplet example is actually an ArcGIS Server application that has been developed by ESRI’s Professional Services organization.

The mapplet example shows how to run from requirements and use cases through detailed OO design, to C#/.NET source code and fully working software that meets the project requirements. A key element of the approach is the “agile” strategy of interleaving modeling and coding through multiple releases of the design.

[1.] See www.esri.com.

[2.] See the sidebar “What Is ArcGIS?” later in this chapter.