Rapid change challenges software architects and developers
David Skok, General Partner, Matrix Partners, kicked off the morning with an overview of the challenges that rapid change has created for software developers and architects. His presentation included a discussion of the acceleration in the number of applications and users--and the technology trends that are disrupting the development environment.
As functions disappear, new opportunities emerge
Then, he delved into some of the implications:
- Incorporating new technologies, especially in combination, provides users with exceptional power but dramatically increases complexity for developers
- Everything is changing from the way developers build products to how companies distribute them to the ways in users access them.
- Self-service technologies are replacing personnel at various stages of the product development process.
- The proliferation of data has created a market opportunity for business intelligence applications that can provide actionable insights
- Proliferation of new products has produced lots of data--now users are seeking tools to turn data into actionable insights
- Consumerization of enterprise applications increases demand, usage and engagement
- Businesses are getting faster better applications sooner and less expensively
Mobility isn't what makes mobile interesting
Bill O'Donnell, Chief Architect, Kayak shared insights gained from his company's experience with mobile. Perhaps most interesting was the company's misconception about the use case for travel--and how they learned what users really wanted.
Kayak implemented mobile early on, and more than once. When the company decided to launch an IPhone App, developers incorrectly assumed that travelers would be most likely to use mobile when there was no access to other platforms. That is, when they were in an airport and needed to check a flight's status or change their plans.
Customers let them know they were wrong, dead wrong, via a feedback mechanism incorporated in the app, itself, that goes directly to the development team. Many complained that they weren't able to access the full feature set on mobile.
At first, developers questioned the feedback. Then they turned to the search data and learned that customers were using the mobile app the same way they used the web application.
So, they squeezed more features into the mobile app--and usage went up. To their surprise, users didn't seem to mind the small screen or that it took a lot of time to process transactions. Today, 15% of Kayak's traffic is mobile.
Check out Bill's presentation to see his perspectives about some of the challenges associated with being a development company in a mobile world, both technically and financially. That said, Bill predicts that mobile apps are here to stay because users like them. They're easy to find, easy to install, easy to maintain and don't use a lot of power. In short, the characteristics that make mobile apps desirable--have very little to do with their mobility.
Building high performance teams
The moderator of the breakout session on the Anatomy of a Team, Julia Austin from VMware, began by asking panelists to define high performing teams and followed with a series of questions. Panelists offered multiple perspectives on best practices for attracting talent, hiring the right people, increasing productivity, encouraging team cohesiveness, and motivating teams to do less glamorous projects.
Advice from the experts
A show of hands confirmed that software developers and engineering managers are in high demand, even in Boston and in this economy. To attract talent, panelists advised companies to know and promote their unique differentiation. When hiring mid-managers look for individuals that are building an app in their free time.
To increase cohesiveness, seed teams with members that excel at creating a community. To motivate teams to do less glamorous projects let developers fix it the way they way want it, earn the opportunity to do more interesting projects, or bask in users' appreciation of a problem fixed and a job well done.
Maintaining quality while moving fast
Much of the conversation on maintaining quality centered on Agile: advantages, disadvantages, and challenges. One advantage is that it forces developers to consider factors they might not otherwise have thought about. Another is that frequent testing of prototypes with users catches problems early.
Disadvantages include an emphasis on the short term, at the expense of the long term--and paradoxically the constraints imposed by a system that requires setting priorities in advance. One panelist said his company found that 3-week lead times are too confining for designers. Kanban, on the other hand, lets designers reorder their priorities so that they can focus on what they're doing.
Despite challenges, Agile processes universally favored
A major challenge is managing the technology deficits that emerge in infrastructure when the focus is on implementing new features. Panelists offered solutions ranging from incorporating "fixes" into each sprint to assigning a special project team to reduce the backlog to putting development of new features on hold.
Nevertheless, panelists appeared to agree that the value of quick sprints outweighed the costs. One panelist says he now advocates using small, localized additions of procedural code to add new functionality, rather than investing in re-architecting the product. His rationale is that it's hard to know in advance which features will prove valuable.
Another challenge is motivating developers to do peer reviews. One panelist suggested having incumbents "mentor" new employees. Another periodically has the whole team participate in code reviews after the daily "standups". A third delays implementing a new feature until a team member tests it and signs off on its quality.
Two additional sessions followed on aligning strategy with development and leveraging the cloud in a rapid dev shop. A video and blog post will follow shortly on the cloud session, moderated by Michael Skok of North Bridge ventures.
Overall, the morning was outstanding. Panelists packed a lot of information into a short time--and audience members left with insights they could apply to their own work environments. Thanks to our sponsors and all who participatied. Look for future programming on agile, measuring engineering productivity and virtualization.
Guest post contributed by Barbara Bix, BB Marketing Plus
For additional commentary, please check out the blog posts from guest speakers below:
Active Endpoints blog post: http://www.activevos.com/blog/
Future of Cloud Computing blog post: http://futureofcloudcomputing.drupalgardens.com/blog/interesting-insights-masstlc%E2%80%99s-software-development-summit