SharePoint: Platform Rising
Enterprise SharePoint adoption is exploding and development managers are learning some hard lessons in the process.
By almost any measure, Redmond's SharePoint is transforming the way enterprises share information. The combination of Windows SharePoint Services (WSS) bundled in the Windows Server operating system and Microsoft Office SharePoint Server (MOSS) 2007 sold as a discreet portal and collaboration package has found its way into businesses of every shape and size.
Microsoft boasts that it has sold more than 100 million SharePoint licenses. A 2007 IDC survey of U.S.-based companies found that 61 percent already had enterprise-wide SharePoint deployments. According to IDC, another 28 percent are planning enterprise-wide deployments in the next 12 months.
As a consequence of that growth, many corporate dev managers find themselves tasked with integrating, extending and unifying the functions of disparate SharePoint deployments across the enterprise. Dev activity around SharePoint has grown so quickly that Microsoft chairman Bill Gates admits that SharePoint needs to improve to meet developer demand.
"When we started application development on top of SharePoint, it really was focused on fairly small applications, very simple things -- kind of workflow where you were in the hundreds of lines of code, not often thousands and certainly not tens of thousands," Gates said in a Q&A session following a keynote address at last month's Tech-Ed North America 2008 Developers conference in Orlando, Fla. "You don't have the same rich representation that we have over in that Visual Studio world. So it's a natural evolution for us to connect up SharePoint to Visual Studio."
In the meantime, developers and managers face a pivotal decision: How do you successfully develop real applications for a platform that seems to encourage grassroots deployment and ad hoc configuration? It's a challenge, say seasoned SharePoint developers, that can confound unprepared IT and development shops.
"With SharePoint, the approach up to this point has been, 'let's do everything on the SharePoint site.' Now it's about doing best practices in the SharePoint environment," says Jason Noble, SharePoint practice manager for Irvine, Calif.-based consultancy Neudesic LLC. "We need to respect the software development cycle a little more closely, which is good."
The ASP.NET Divide
Vincent Rothwell has seen more than his share of botched SharePoint development efforts. The London-based consultant says companies are often lured into unsound practices by SharePoint's powerful, easy-to-use interface and a misguided allegiance to Web parts -- the bite-sized applications made popular with SharePoint 2003.
He warns developers not to equate SharePoint development with Web parts, and to look to ASP.NET controls as a better alternative in many instances.
"To me it's easier to write the user control first, possibly even outside of SharePoint -- it doesn't necessarily have to be inside SharePoint -- and then put it into a Web part if that's what you need," Rothwell says. "It gives you really nice separation between the Web part-specific control, which does all the right things at the right time, and the user control with all the business logic of what you want to do."
In one engagement, Rothwell says he spared a client a week of hard labor by writing a simple ASP.NET control to display a list of links on a homepage. The client had planned to write a Web part to display the links; Rothwell coded the page in 40 minutes.
"They had been at a SharePoint training course and had basically been told how to write Web parts," Rothwell says. "They had been told SharePoint equals Web part development."
Training -- or the lack of it -- has emerged as a critical theme among SharePoint developers. David Gootzit, research director in the Enterprise Portals practice for Gartner Inc., says SharePoint developers just aren't to be found.
"There's clearly a shortage of people who know what they're doing with MOSS," Gootzit says, noting that even coders familiar with SharePoint Server 2003 and Windows Content Management Server (CMS) face a steep learning curve with WSS and MOSS 2007.
While ASP.NET developers often have a good skills base for developing on SharePoint, many programmers are accustomed to building Web applications that stand on their own on Internet Information Services (IIS), says Chris Wasser, practice manager at Colchester, Vt.-based consultancy Competitive Computing Inc. "When you start to do development for SharePoint, there's a platform they build on. That sort of mental shift is one of the hardest to get new developers around."
At Arkansas Children's Hospital, the development team did a lot of groundwork to manage that transition. Patrick Bewley, a senior software developer, says his group benefited from SharePoint screencasts hosted on Microsoft's Channel 9 developer Web site. The hospital then hired training consultants for an advanced class on WSS, which covered the SharePoint Object Model and platform best practices. The structured training program has paid off nicely, according to Bewley.
"Since then we've rolled out a comprehensive safety portal for the hospital that incorporates workflows, a departmental site for the security department -- which also serves as their incident-management system -- and have upgraded our internal team project site to WSS version 3 and coded our own rollup feature for tasks on all projects related to a developer," Bewley says in an e-mail. "We continue to learn through experience and as new articles and sites are released."
Still, the shortage of veteran coders is leading to tough deployments. Rothwell says he had to parachute in to rescue one client after the Microsoft partner it hired had created a badly scrambled application that provided no means for testing new builds. "Unfortunately, the partner didn't follow any development practices -- at least not any I'd classify as good ones," Rothwell says.
He says SharePoint functionality had been pulled together and placed directly onto a live SharePoint Server. There was no way for the company to rebuild the live server. His solution: Equip developers with virtual machines on their desktops and build a full test environment to trial run deployments.
Rothwell says SharePoint's vaunted ease of use works against the best intentions of developers. Microsoft, for instance, fully supports the copying of sites and templates for starting new projects. That can lure shops into bad practices because manually crafting templates takes so much longer.
"They're both perfectly supported," Rothwell says. "I have to explain to a customer that I know it takes three days to create a site template and you created it in half a day there. But trust me, this is a better way of doing it."
So how can developers get up to speed fast? Wasser says he gets "asked this question all the time." He encourages a real hands-on approach, using a virtual machine so mistakes can be cleaned up.
"I tell them to fall in love with the SDK and do what the SDK does. That does a pretty good job of introducing you to the basic concepts," Wasser explains. "Install SharePoint, configure it, get everything working, figure out search. This effort can be three or four days, at the most. If they're smart and they grasp SharePoint, I think it can help them significantly."
Part of the challenge for companies is the nature and speed of SharePoint adoption, says Kathy Quirk, research manager in IDC's Mashups and Portal Strategies practice. She says that SharePoint adoption has taken off since the release of MOSS 2007. The problem is that there has been little management or planning around that adoption.
"Often SharePoint sites grow without people paying any attention to them. A lot of people are looking for guidance in terms of governance and policies they can take advantage of," Quirk says.
In fact, adoption of WSS is so widespread that it's fast becoming part of the IT background, says Brent Bolleman, chief strategy officer and founder of Colligo Networks Inc., a provider of SharePoint-based mobility solutions headquartered in Vancouver, British Columbia, Canada. "It's just become a standard piece of infrastructure that you'd have in a Windows IT environment," Bolleman says. "Some people call it the file share of the future. I'm sure that's not how Microsoft would view it necessarily, but in a lot of ways that's what it has become. It's just a standard piece of infrastructure that everyone ends up having."
Veteran SharePoint developers universally agree that successful development requires discipline and careful planning. Case in point is financial giant Citibank, where SharePoint is broadly deployed. Jim Payne, vice president of Citi Cards' Integrated Partner Solutions at Citigroup Inc., says his company tightly managed adoption. He says the experience with SharePoint has been "overwhelmingly positive."
"This was not a grassroots deployment," Payne explains in an e-mail. "It was a thought-out and coordinated approach across the entire corporate enterprise, starting with some large internal business groups first, like Citi Cards -- the line of business that my group supports -- and then eventually rolled out over the course of another year to the entire company."
||"I'd venture to say that we're all more efficient and more effective employees and groups because of SharePoint when it comes to project development."
|Jim Payne, Vice President, Integrated Partner Solutions,
Citi Cards, Citigroup Inc.
Even with careful planning, Neudesic's Noble says SharePoint development requires coders to be aware of the IT infrastructure. "The interesting thing about SharePoint is that it starts at the infrastructure-load balancing, etc.," says Noble. "To be a superior application developer in SharePoint, you need to know all the way down."
While SharePoint earns wide acclaim among IT and development managers, it's clear that the platform remains a work in progress.
Dean Conway, team leader in .NET development for the Business Systems Services unit of InTACT Tools in Canberra, Australia, sees plenty of potential in SharePoint, especially around ASP.NET development. But he says his company is waiting for better-automated deployment and improved unit testing of Web components.
"For enterprise-class applications we tend to stick to custom builds using a variety of code-generation techniques -- software factories [for] Web client and Web services, database projects and so on," Conway writes in an e-mail interview. "We're excited about the ASP.NET MVC [model-view-controller] Preview, and once we [get] some slick integration with server-side controls, then this becomes an interesting proposition too."
Developers seem to have little love for Microsoft's Collaborative Application Markup Language (CAML), which is used by SharePoint developers to construct and display data in the SharePoint environment, as well as to query against lists and views. With its exacting syntax and limited filters, CAML is a markup language with a lot of sharp corners.
"It's just impossible. It's trying to do all things for everyone in the world," complains Rothwell. "Everybody I know, everybody I speak to, hates CAML. It's just so complicated."
Wasser is looking for more robust integration with Visual Studio. He applauds Microsoft for getting the Visual Studio for SharePoint Extensions released, as it "makes the integration question a lot easier than it was a year and a half ago." But it's not enough, he adds.
"Visual Studio for SharePoint Extensions is just that -- extensions. In the product base itself it doesn't know what SharePoint is. It's sort of like an add-on," Wasser says. "In a lot of ways, the product got out ahead of their developers."
Offline integration remains a keen challenge as well, says Noble, who hopes that SharePoint might pick up the synch capabilities of Groove. "If it became part of the platform that would be a huge step," he says.
There's little question that developers are clamoring for a more robust and mature SharePoint dev environment. But Payne notes that even in its current state of evolution, SharePoint is proving itself a valuable resource for businesses.
"I know that my group and others that we deal with directly have nothing but praise for the product and have found immediate benefits and payback in using it," Payne writes. "I'd venture to say that we're all more efficient and more effective employees and groups because of SharePoint when it comes to project development."
Still, it seems clear that uneven training and lack of talented developers will keep veteran SharePoint developers busy for months or even years to come.
"The last three clients I've taken on, I'm going in and fixing other people's messes," Rothwell says. "With two customers, I'm just rewriting everything."