December 4, 2012
2013 is going to be an amazing year for mobile and web developers for a number of reasons, but the top one on my list today is the advance in tooling. This isn't simply a turn of the crank adding a few features/functions to the existing state of the art but instead the realization of a growing paradigm shift in how developers (experience creators, to quote my colleague Mike Gualtieri) create software. Today the majority of web and mobile apps are written by developers manually writing source code in text editors or IDEs, but tomorrow's tooling is becoming much more visual in nature. Here are the three tooling areas that excite me looking forward to 2013.
- Wireframing/visual requirements. The latest wireframing tools go far beyond the days of using presentation software in an attempt to create representations of app screens. The next generation of these tools allow you to create screens that look realistic to the point one could easily think it was a screen shot from a running app. Additionally tools like POP (prototyping on paper) allow you to draw your designs on a piece of paper, use a mobile device to take a picture of them, and then use that image as a visual design, included in your existing application life-cycle management framework. Our latest research shows that the development life cycle of enterprise mobile apps now last roughly four to six months. This same research highlights the move that many are making to complete visual requirements documentation. To meet these deadlines and still produce quality apps, efficiencies must be driven into each of the major development areas. The ability to create realistic wireframes and prototypes allows business analysts and designers to easily work together to craft a complete set of visual app requirements in a very short time frame.
- Visual development tools. The reach of development tools now extends beyond developers. While prototyping tools allow business analysts and designers to work together, new visual development tools allow these same individuals to go beyond simple prototyping activities and actually create the base framework for an app, including some connection to back-end services. Tools from vendors such as Infragistics and Eachscape allow for the visual creation of application building blocks that previously required development in a text-based IDE. Mobile middleware tools are also embracing this concept within their packaged development environments by providing tooling that allows a user (notice I didn't say developer) to create a user interface artifact that is bound to a back-end enterprise service. In this scenario, the tooling inspects the service being bound to, determines the data touchpoints, and presents them visually to the user to make the final binding. As they don't require the user to manually write source to bind the service to the user interface element, these tools can now enable a larger number of roles in the development life cycle to contribute to the actual development of the final mobile app.
- Visual test tools. While test always seems to be excluded when it comes to engaging tooling, there's no reason to leave test out of this new excitement! The creation of test automation has been a thankless process for a long time, and rightfully so. Many of the tools that we've used to do this were extremely tedious to use and rarely provided any feedback while creating the individual test cases. Instead, you'd simply find out when every test failed that it was the test case itself that was coded incorrectly. Over the past few weeks, I've been introduced to new vendors (and updates on existing offerings) that are now providing a purely visual way to create these test cases, simply by using your mobile app or mobile web site and recording these using visual representations. With these visual artifacts I can now duplicate the parts of my test that are common to all test cases within a given suite. More importantly, I can quickly scan over a full set of test cases and visually see differences, highlighting areas that I may be able to drive efficiencies in or showing me places that I may need to change before I unleash these on my continuous integration server.