Dave Wolf
The Experience Matters. User-Centric Development.
Monday January 15, 2007
It takes a village
Go out and take a survey of development teams and their first foray into developing a Rich Internet Application, regardless of technologies (Flex, Ajax, WPF/E) and my guess is you will hear stories of pain, misery and failure. Why? Developing RIA’s is really tough. Why? Is it the asynchronous nature of the data access? No. Is it the complexity of data binding? No. Is it the lack of robust frameworks that address messaging and state management? No. The main reason is it takes a lot of people. A lot of different kinds of people. People you likely simply don’t have. To complicate the matter, if you do have them, they likely aren’t very good at working together.
Developing RIA’s takes a village. What do I mean by that? I mean it takes a myriad of different types of people, all with their own skills, all with their own jobs and all with their own needs who have to work together as a team in order to keep the entire system functioning. This is very different from many of the development environments that RIA’s draw their lineage from, namely J2EE and Flash and exactly why these “kinds” of development teams are and will struggle greatly as they try to reinvent themselves as RIA development teams. Developing RIA’s takes designers, UI developers, Data modelers, back end developers and the well orchestrated coordination of these team members into a well established and disciplined development environment. It is not simply the need to have many types of folks working on the development; it is also their coordination and their real camaraderie.
Here at Cynergy we realized this over two years ago during our first Flex based RIA development efforts and it has affected the way we approach the projects all the way up to how we have organized our company. It is not enough to simply have designers, developers and data management folks. They have to be a team and they simply have to be working for the same firm. Assuming you can outsource just the design, or just the data management side is a recipe for failure. You will become the middle man trying to communicate between the two camps with their own agendas and their own biases. A serious RIA development firm needs to have all these kinds of folks and they must all be working in the same company, with the same goals and the same management. Just like in a small village which needs a baker and a blacksmith and a teacher, all with the single minded desire to see the village better itself. At Cynergy we have interactive designers, front end developers, data modelers and back end developers and they are all our full time employees.
Next you must have a disciplined development environment and process. This is exactly why you see so much focus from Microsoft on what they like to call “the designer to developer workflow.” There must be a well established approach and a well established process by which the approach is executed. For instance at Cynergy we use our LookFirst approach and have folded that approach into a disciplined development process. This includes not only the “workflow” the vendors profess today, such as moving form pixel perfect comps, to chopping the assets in say Fireworks, to generating the CSS, passing that to the developers who work from front to back to drive the functionality and finally the end product, but also the tools and discipline added along the way. For instance we have a very disciplined source code control process, integrated directly into our issue management solution, integrated directly into our Wiki used for requirements, all of which we provide access to directly by our clients. Just like a village you must have laws and procedures that guide you through life and interactions.
For a large part it explains why there are so few true RIA development companies in the world. To be blunt, there are almost none. In a recent widely discussed report Forrester drew this point out. Ryan Stewart drew this point out in his review. What you find today for the most part are small one to two man Flash shops and the old Java J2EE body shops. Neither is well suited to the challenge of developing these new RIA solutions. Developing a true enterprise class RIA is not about just design and Flash and it is not about throwing low priced programmers at the problem. It is about a complete and holistic approach to the development process, the right distribution of team members, working as a team with a well established process, workflow and discipline. It really does take a village.






