Surfing The "Mobile Shift"

Ever hear about the myth of the “seventh wave”?  Surfers use it to describe the big one — the wave that you can ride all the way into the beach. While it’s been a while since I’ve tested its premise at the shore, I often think about the seventh wave when dealing with the constant waves of tools, processes, and technology we developers face. With the constant change you face, how do you determine which technologies  will change everything from overhyped vendor pabulum (3D TV, anyone?) We don’t have the capability to invest in every new technical advance that comes down the pike, so we need to be able to tell the seventh-wave technologies from the others that might provide incremental productivity benefits or cost reduction but don’t change everything we do or think.

Read more

Emerging HCI Platforms Will Demand Cooperation In Aesthetics And Engineering For Innovative Design

We’ve all heard the aphorism “a picture is worth a thousand words.” These days, that’s certainly true of the balance between content and behavior that modern application developers face. There’s long been a certain amount of creative tension between designers and developers, but good developers generally appreciate the value of effective visualization.

This week I’m yielding my soapbox to a guest blogger: Rowan Curran. Rowan is a research associate on the application development and delivery role team, and I often enjoy his tweets about his own particular interests in the digital media space (follow him at @shortpierreview). His remarks below about his most recent vacation day are a good reminder that the changing nature of print and digital experiences will place increasing demands on developers to blend the real and the digital. Devs might even find themselves spending more time with designers and (gasp) artists as the real and the digital converge.



If you could see Siri as well as talk to her, what might she look like? I recently attended a panel of digital artists the MIT Media Lab who are struggling to answer questions like this. Their works ranged from algorithm-generated mosaics to more traditional digital photo-stitching. But the most surprising and interesting medium that they were working in was big data and visualization. The most poignant realization of this was Joshua Davis’s work on the visualization of IBM’s Watson.

Read more

API Management: A Key Component Of Modern Application Architecture

I’ve previously written about how modern application architectures are shifting toward compositional, service-oriented architectures — “for real” this time. RESTful services using XML or JSON payloads proliferate because they’re easy for developers of omnichannel clients to use on virtually any device they need to support. It doesn’t matter if they’re building native apps in Objective C or hybrid apps with Cordova — if they can get an open web API call, it’s good enough to move forward.

This shift to web APIs and modern applications means that companies have to shift their API management strategy as well. They need to 1) create the web APIs and 2) create a life cycle to manage them. It’s this life-cycle element that’s conceptually distinct from traditional SOA governance solutions. For one thing, the services live on the open bus of the Internet and carrier networks. Another difference is that web APIs are increasingly made availabe to third-party developers. They may be part of a newly formed developer community, or they may support the growing number of digital agencies and mobile specialist firms that your company uses to supplement development projects. Security and access models are different (e.g., OAuth 2), provisioning access to APIs needs to support light-touch approval workflows, sandboxes where developers can test their calls are important, and analytics that detail call volume and how developers are using APIs are must-have capabilities. Above all, a developer portal that provides good documentation, example code, and quick time-to-value are important if you want to attract and keep developers.

Read more

The Best Way To Develop Mobile Apps? Don't Develop Mobile Apps!

Nothing like starting off the day with a koan, right? How would one develop a mobile app without developing a mobile app? In my latest piece of research on the future of mobile application development, I make the point that if developers overrotate their focus to building mobile clients, we risk creating the same sorts of vertical stovepipes we’re trying to work our way out of right now with all the web apps we built to run on Wintel in IE6. Rather, I think it’s time we broadened our focus and shifted our efforts toward building modern applications. Mobile apps are an important component of a modern application architecture, but only part of the whole picture.

So what’s a modern application? A modern application is:

  • Omnichannel. Modern applications are designed to work across tablets, smartphones, phablets, heads-up displays, automobiles — and, yes, desktops and laptops. They are designed to anticipate new client demands and new methods of interaction, including voice, touch, mouse, and eye tracking. Modern apps may start with a consistent cross-channel expereince, but they quickly move beyond that to a cross-channel and a channel-optimized interface.
  • Elastic. Successful modern applications are designed to spin up or spin down as needed. They take advantage of cloud economics. They comprehensively use open source software because it adds licensing flexibility to scale-out architectural flexibility.
Read more

Stars Matter: The Secrets Of Successful App Developers

I posted a note yesterday that's been a long time coming. In doing the research for Forrester's mobile app development playbook, I've been talking with all sorts of companies that build mobile apps. Build Five-Star Mobile Apps is the first collection of those observations, but it won't be the last. The premise of the document was simple - find out how companies with top-rated apps in markets like the Apple App Store or the Google Play Store design, build, test, release, and maintain their mobile apps. While there's great diversity in approach, common factors fell out of my interviews, and these practices will help you organize your own efforts:

1. Assemble small, focused development teams. The largest development teams we found had fewer than 10 people. When teams grew larger, they were subdivided into platform-specific teams (i.e. the Android team or the iOS team). Small teams can move fast and keep impedance to a minimum but also require substantial changes in how they perform design and testing.  

2. Favor simple development tools over complex ALM processes. The need for speed that characterized the development processes we found means that most traditional ALM tools hurt more than they help. Gone are formal, text-based requirements documents and heavyweight SCM systems. Smaller code bases with less branching mean tools like Git shine. But it's not all airy castles - testing creates a real headache, so we're seeing lots of experimentation with device emulators, simulators, and even basic tricks like deploying graphic mock-ups to devices to get early user feedback.

Read more

Open Source: An Emerging Driver For "Mobile First" Strategy

Yesterday the folks from Black Duck published some interesting information on the use and growth of open source projects in the mobile space. Their data confirms that open source mobile projects are alive and well, even in the age of the Splinternet/App Internet. In fact, there are now over 10,000 open source projects focused on popular mobile platforms (see Figure 1). What’s more interesting is the rate of growth – the number of new mobile projects with open source licenses has doubled in each of the past three years. It’s hard to believe that this rate of growth will continue into 2012, but betting against hyper-growth in the mobile space seems to be a good way for analysts to end up eating crow.

Figure 1: There Are More Than 10,000 Mobile OSS Projects

Here's why you need to care about open source as part of your "Mobile First" strategy:

Read more

Here Comes The Open Web — Embrace It

One of the things I enjoy the most about being an industry analyst is that I've spent the past six years meeting some great developers. Personally, I’m not sure I could cover any other technology area then application development. The reason is simple: I see developers as a worldwide force for good (It's almost axiomatic, as the bad apples become "hackers"). Developers innovate, they create, they push technology forward — and they are fun to go have a beer with at the end of the day.

While writing for developers is fun, it’s not always easy. For the past few years, my topic coverage areas have sometimes felt a bit disjointed — almost as if there are two different developer communities out there that I deal with. In the past, I've referred to these groups as the "inside the firewall crowd" and the "outside the firewall crowd." The inquiries I have with the first group are fairly conventional — they segment as .NET or Java development shops, they use app servers and RDBMSes, and they worry about security and governance. Inquiries with the second group are very different — these developers are multilingual, hold very few alliances to vendors, tend to be younger, and embrace open source and open communities as a way to get almost everything done. The first group thinks web services are done with SOAP; the second does them with REST and JSON. The first group thinks MVC, the second thinks "pipes and filters" and eventing. I could go on and on with the comparison.

Read more

Collaborative Problem Solving And Robot Design

To pick up the narrative from my last post, we're currently one week into the First Robotics build season for 2012. Team 811 is busy working away on an initial sprint. The goal is to get a minimum viable product (a drivable robot) up by the end of sprint one, which will then be used as a base to move toward a competitive robot that can play this year's game, Rebound Rumble.

So how did Team 811 get from "huh?" to full-speed prototyping in 4 days? How does anyone get 40+ teenagers moving in the same direction when the number of unknowns is significant and the problems to solve look insurmountable? For team 811, the key was starting with a 3-day process called "Collaborative Problem Solving (CPS)." Think of it as a pre-sprint process to build team buy-in and reduce downstream back-biting and second guessing.

So what is CPS? It's a technique that starts with a problem statement and then encourages divergent thinking to brainstorm creative solutions to that problem. Criteria that allow evaluation of those potential solutions are then applied by the entire group. This starts a process of combining divergent ideas into stronger overlapping concepts and identifying those ideas that have the strongest combination of feasibility and ability. The result would be recognizable to many agile teams: a burndown "punch list" of items and strategies to drive early prototyping and the team's first sprint.

Read more

Agile Development And Robots: Are You Smarter Than A 10th Grader?

One of the counterintuitive things that we observed early on in the days of object-oriented programming was that developers with no previous programming experience often picked up concepts like inheritance, encapsulation, and polymorphism much more quickly than seasoned programmers and became productive earlier than their more experienced counterparts. Today I feel like I'm on the other end of this learning challenge as I try to adapt to new programming concepts in JavaScript or Python. I think the biggest reason for this phenomenon is that experienced folks have to unlearn what we know, and it's hard to give up certainty and the mechanisms that allowed us to achieve success in the past. I think the same principle is at work when you look at toddlers that instinctively "get" how to use the iPad - they expect everything to work that way. It should be so easy for all of us.

Does this same sort of thinking apply to software and systems development processes? I'll tell you why I think it does. For the past three years I've been a mentor for a US FIRST Team (Team 811, the Bishop Guertin Cardinals). During this time period, I've seen high school students with little to no technical experience instinctively adopt many principles that experienced Agile teams would recognize. For these kids, Agile development is like using an iPad - they take to it naturally because it just makes sense given the context of what they are trying to do.

Read more

What Is The State Of Your Consumer-Facing Mobile Initiatives?

My colleague Julie Ask is fielding a survey that asks a number of questions about your company's consumer-facing mobile strategy. If you have a few minutes to spare, please take the survey to answer her questions and help us out with some in-process mobile research.

Here's the link to the survey.