5 pioneering paths for software development's new frontier

Forward-thinking dev shops mix methodologies, hire cross-functional coders -- beating old-guard shops to the hottest emerging app markets

Page 3 of 5

This means getting items into customers' hands fast via a solid automation and deployment mode. "This has triggered a new flavor of app management called devops, where the dev team and the ops team need to work closely together to make sure that, as feedback is required, they can get that software into the hands of users without a lot of pain," he says.

Semeniuk also feels that, for larger organizations, overall team composition isn't shifting as quickly as it could to react to these changes: "Teams [in smaller organizations] have been shifting from functional roles -- business analyst teams, testing teams, deployment teams, etc. -- to cross-functional teams, where all the skills to envision, build, and deploy an application are on a single team. Teams then work together as a whole to deliver that software instead of handing it off between functional teams."

Some enterprises have a hard time making this shift to cross-functional roles, but Semeniuk believes this will change when "organizations can realize that an HR structure does not need to dictate a team structure."

4. Inventive use of the standard development toolkit
Modern development teams are extending the mantel of ingenuity right down to the tools they use, employing popular development tools in new ways to spur further innovation in the development process. Consider Git, the open source revision control system -- which can be used for much more than its primary purpose. For Andrew Frankel, former VP of engineering at TopShelfClothes.com, Git was also a way to perform process automation.

"Driving deployments with Git is fantastic for release management," Frankel says. "We have a complete log of what changed, at what time, and for what reasons. Larger organizations often try to collect exactly those data points using formal change requests, which tend to be frictional in a fast-paced environment. It's much more efficient to create a process where that information is collected automatically."

At Telerik, Git was adopted by one team as an escape hatch from the usual in-house development methodology.

"We have one division that has chosen not to use our development infrastructure, which is primarily Microsoft Team Foundation-based," says Telrik's Semeniuk. "They decided to do something that better fit their culture, experience, and needs, and started off with Git. A whole different form of release management with different tools, but it fit their culture and the experience of their team members a whole lot better." The team in question might not have to choose between Microsoft's workflow and git before long, though; Microsoft recently added Git support to Visual Studio and Team Foundation Server.

Git has also been put to use to support other parts of development such as documentation. The Gitit wiki system uses Git (or another version control system) to track and preserve changes to a community-created set of documents.

It should also come as no surprise that the cloud figures into most everyone's work as a cutting-edge software development tool. But it's not just a place to host code or a site -- it's also being eyed as a testing framework. Applico, in particular, is developing a cloud-based foundation for automated testing of its apps.

"With Android especially, you have an international market with the product running on over 500 devices," Applico's Powers explains. "If you can integrate this into a system where you can simulate all these different device types, you're going to catch a lot of issues before you go to market." To that end, Applico has been looking at a few vendors to provide tools to take the company's application builds, host them in the cloud, and perform the emulation there.

This approach seems like an attempt to refute what Sebastian Holst has claimed in "The Rise of Application Analytics: A New Game Demands New Rules." There, Holst states, "You cannot simulate production," meaning "the diversity and distribution of on-premises and cloud-based services combined with the dizzying array of devices and client-runtimes makes comprehensive testing and profiling prior to production not just difficult, but impossible."

| 1 2 3 4 5 Page 3