Experiencing Wireless Development
Wireless developers are quick quicker than most Internet Web developers. When my business partner Roland Alden and I worked at Metatext Corporation, which made prepress software, we had a standing rule in software development: When you write software even after an hour of work on something new always leave your work ready to be shown. This is a great survival skill. Picture the outcome always; never leave a process undone. "Getting things going" is articulated well in the book Extreme Programming (XP). XP deconstructs classic front-loaded programming software lifecycles. The goal is to make new technology products come to market quicker. XP authors Kent Beck and Erich Gamma explain the development process as a successive set of user stories immediately addressed with spikes. A spike, a rapidly developed software solution that technically solves at least one of the stories' key challenges, advances a project rapidly. This successive evolution of stories and spikes defines a product by first exploring what can be done, committing to what will be done, and then steering the body of work to a destination1.
Guiding the larger project requires great management of resources and timing. Initially the inventor's approach to see what can be made with available technology is to explore alternatives. To reach a large audience, however, many professionals are required to produce, distribute, and maintain a working product. The large-scale projects are similar to a film production model; a script and storyboard plan all the shots so that when the special gear and paid professionals show up they can rapidly produce the piece with little time wasted. Speaking of paid professionals, key wireless talent is required to produce the project and here is the cast of characters and their roles.
Wireless Core Team
Most of the work in wireless Web companies is done by professionals with wireless job titles and task responsibilities. One of the rarest talents that a wireless team manager can hire is the interaction designer (Figure 37).
Figure 37 A want ad for a designer with rare but essential talents
Wireless team composition now includes a wireless architect, an interaction designer, a wireless client and server programmer, and a mobile content developer, in addition to people who perform other traditional software development roles. Because this industry is so content-centric, an editor and creative talent are also needed to keep people on the air.
A small team has the flexibility and speed to develop wireless projects. Certainly companies have complex wireless projects that require organizing an army of people to build and provision specific hardware, engineer special-purpose software, uniquely secure content, and provide special support and training. But the wireless market has no room for very complex systems that take a year to build. The technology changes are so dramatic that any long-term deployment is likely to mire an organization in an outmoded system. By and large, the wireless market is evolving to allow more of a mix and match of hardware makers, component software producers, and new content providers to work in shorter production cycles using tools for instantaneous distributed change.
Many companies that add a wireless channel to their Web sites get by with a small wireless team, although they can get help from the outside from those skilled in wireless ways. To do a first-class wireless job, your project will require both new and traditional talents. The new wireless talents the wireless architect, mobile interaction designer, wireless programmer, and mobile content developer engage for brief periods during a project. The interaction designer should be consulted during the entire process.
The wireless architect, also called a wireless systems analyst, is able to assess an existing system and make recommendations about how to open wireless channels. Architects make high-level technology decisions largely based on current realities and pending developments. They keep an ear to the ground for the wireless industry changes coming in the near future. They are valuable because they track the wireless Internet industry and responsibly select a wireless architecture that permits anticipated growth.
The interaction designer is the most unique talent for a wireless project. These people are rare and are more often contracted from consulting or design firms. They understand both small screen design and mobile audience purpose. Understanding goal-oriented audience motivations, as well as processes for information design, persona, scenario, and storyboard development, is their specialty. Interaction designers own the "user experience" throughout the project. For wireless Internet projects, they observe and interview real mobile end users in the mobile environment. They are often active personalities, perhaps interested in drama and dance, and are physically available to work out in the field with mobile users. Successful projects allow these professionals to work with the whole team to keep them in touch with end users' needs during the development process. What makes interaction designers unique in mobile design is their understanding of action. They often go outside to work with the mobile audience using devices for their mobile information.
The skilled wireless programmer knows client and server development. Server-side work is often done in Java, although a Microsoft.NET language also works for Intel servers. Wireless device programming is often necessary and requires familiarity with the software development kit and language for the device. This can be C++ or Java. Since wireless applications can run the gamut from messaging, to browsing, to interaction, these software engineers usually have a specialty. Messaging requires knowledge of paging, mail server protocols and push technology, and involves development on the server. If the messaging response is complex, then client software development is also required. To program for the wireless browsing model, the wireless programmer works entirely on the server where knowledge of the markup language and the dynamic binding to the database have to be developed. For an interactive solution, programming is generally synchronized between the client and the server. Specific wireless applications require skills such as game engineers possess.
The mobile content developer is aware that having your information on you is one of the key advantages of wireless. These developers participate in the information design along with the interaction designer. They can rapidly build prototype databases with realistic content to feed a prototype. Content developers realistically size the data and traffic requirements, generate database schema, use SQL databases, represent data as XML, can generate a DTD or XML schema, and advise how content can be presented dynamically through the server. They are concerned with data synchronization and representation on the wireless device and the server. Sometimes XML schema has to be created, but this requires research to work well with participating companies. Mobile content developers help partition data for partial mobile use. They often have to repurpose databases by adding location, time, personalization fields, or tables for mobile use. Security and privacy issues are also important, often involving collaboration with a wireless security engineer who works on the server. Content experts may also be consulted to make decisions on the sources and character of the data for mobile use.
Finally, for voice portal projects it is important to engage the services of linguists. They understand many of the finer issues of listening and speaking. Simple things like pauses, pacing, and diction help make a conversational application work well. If you are hiring, an ideal candidate is a linguist who has programming skills. A linguist with VoiceXML skills fills a similar role to a Web designer with HTML skills. The "out-of-the-box" voice portal uses a synthetic speaking engine. Although it works, it is not as warm and friendly as you might want. If you want to make your site sound professional, you need to hire vocal talent to replace and augment the computer-generated text to speech (TTS), with recorded speech and prompts. You will probably also need to hire a recording engineer and book time in a recording studio.
People with traditional software development talents also take on wireless responsibilities. The project manager understands and communicates the new wireless development method mentioned earlier. Managing the wireless process involves the internal development team and possibly external clients. The process sets the schedule for dependencies, deliverables, and roles engaged in building the product. The manager coordinates deliverables from the development team. Day to day this involves the management of the progression of the mobile design, the implementation of client and server software, monitoring mobile content development, and championship of and sensitivity to the popular use of the new wireless channel. Certainly, traditional engineers are involved in server development and security issues. The quality assurance staff involved with an early view of the storyboard development can be very helpful. They will certainly give important feedback during the many tests and deployments of wireless devices. Developers can use third-party wireless testing organizations to offload the complexity of the testing process. Training is important because much of the world needs education on the limits and capabilities of the wireless Internet. Support is also useful to keep deployed systems operational.
The Process for a Universal Industry
Earlier we talked about getting things going. This is the right attitude of experienced professional developers: Let me at it. But to appreciate the universe, you have to step back a bit to look at how things come to be and how they go.
The fashioning of a wireless industry borrows from telecommunication, computing, and even publishing traditions where creative observations of cliche needs are manufactured into an archetype of utility. Telcos always talk about plan, build, and operate. Of course, the project has many steps. The "operate part" is new to many computer software engineers. The computer industry is used to construction cycles. Software development takes a project through concept, prototype, planning, production, final testing, and maintenance. Software engineers are often unaware of the people that actually use what they make. Yet an audience has ongoing technical needs that require continued engineering and development. Typically, when it comes time to build version 2 of software, an entirely new team is formed, cut off from the audience that is using the product.
The product itself has a lifecycle. I think the wireless Internet industry realizes that digital content benefits most from a strong participatory relationship between the technology providers and the mobile users. Telcos know that operation is the critical element of sustaining a business and healthy media publishers build circulations based on an audience that expects more.
Creative and Realistic Beginnings
A great idea or even a simple observation of needs can be the origin of a new wireless application. A playful SMS game, an interactive model of a city, or some utilitarian idea about the use of Bluetooth, voice, GPS, or other technology can spark a prototype that goes quickly to development and production.
Realistically, a project needs a technology and business concept to justify expenses before development can begin. Commercial wireless development often takes the concept or prototype and matches it with a wireless business model. The business-interested developer can study "The Site: Wireless Business Models" in chapter 16 to determine appropriate models. On the other hand, the wireless work may be handed to you via a request for proposal (RFP). This is a commercial statement that frames a concept to be developed, to which a development team responds. Whatever the cause, the project manager draws up a set of product requirements; however, this is often exploratory and requires some investigation of the scope of the project and the users.
During the investigation of project scope, some inspired ideas are generated; however, the purpose in the beginning is to understand mobile user tasks and gather customer requirements. Feasibility is quickly explored and hopefully useful discoveries are made.
A wireless architect makes early decisions including confirming the target audience and target devices and networks, and determining any third-party or internal tools that engineers need to build. They sometimes make recommendations about the process to ensure the ongoing life of the product through operation.
We are still forging a universal process for wireless development. Fortunately, the wireless development method is fairly solid. In the making of wireless projects, the wireless team moves through development phases in a special order.