Called Out!


I just want to issue Microsoft a simple challenge that could revolutionize their software development process and quality control, make their apps integrate better, and make a world of difference to customers and implementation partners the world over: 

 

Get your shizzle together, and start building common modules all your enterprise products can leverage.


A great example of what I'm talking about is User Profiles. MOSS 2007 has a very robust User Profiles engine. Commerce Server 2007 has its own somewhat robust User Profiles engine (even if the UI is built as an MMC snap-in). The .NET Framework has its own clunky User Profiles provider that half the .NET apps in the world use. I'm not sure about Dynamics CRM yet, but I'm guessing it has 2 profile engines, one for users, and the other for customers. Do you get where I'm going with this? With all the brain-power at Micrsoft, why can't they make 1 and only 1 all-encompassing User Profile engine based on an Entity Attribute Value (EAV) model (similar to the MOSS implementation), and build it into the .NET framework, similar to what they have attempted to do with WCF, WPF, and WF? I can't imagine the millions of man-hours that would be saved worldwide if all their enterprise software was built with some of these basic modules in mind.

 

I was ranting to my father about these completely siloed produts once not long ago. As an aerospace engineer for the last 40+ years, his simple response was, "Don't those people have a boss?" How many man-hours were wasted building X different crappy and just OK profiles engines, then figuring out how to integrate solutions across them compared to how long it would've taken a much smaller group of people to write one good engine?

 

I hate Apple, but I use iTunes and have 2 iPods for a reason. I'm starting to wish they developed enterprise software, too.

author: Tim Yagla | posted @ Wednesday, January 14, 2009 9:29 PM | Feedback (2)

Inaugural SharePoint Saturday - Virginia Beach


I would like to take a moment to thank all the organizers and participants at the first-ever SharePoint Saturday event in Virginia Beach. Thanks also to some of the celebrity spekers (Todd Bleeker and Joel Oleson) who came in from out of town and gave the event that little extra bit of credibility. Special thanks also goes out to Susan and Gary Lennon for arranging and coordinating one of the finest tech facilities I have ever seen - the Advanced Technology Center at Tidewater Community College in Virginia Beach. The ATC is actually a joint venture between Tidewater Community College and Virginia Beach City Public Schools. WOW! This facility rivaled the kind you might expect a a major state university like UVA or Virginia Tech.

Organizers:

  • Susan and Gary Lennon - Virginia Beach, VA
  • Kevin Israel - Richmond, VA
  • Michael Lotter - Raleigh, NC

The SharePoint Saturday event concept has caught on like wildfire. Check SharePointSaturday.org regularly over the next month or two to see where one might pop up in your area.

Special thanks also goes out to those who attended my sessions, "The SharePoint Enterprise" and "MOSS as a Platform for Enterprise Application Development". These were both new presentations I have not given before, and overall I thought they went over pretty well. I apologize to the group in the latter presentation for missing the target length of the session and not having enough time to step through the technical demonstration. Hopefully the source code examples and accompanying readme file will be self-explanatory enough to help make up for this oversight.

In addition to submitting my presentations to the SharePoint Saturday site, I have uploaded them to my SkyDrive.

 

author: Tim Yagla | posted @ Sunday, January 11, 2009 8:06 AM | Feedback (2)

SharePoint's Hidden Gems


In a previous post I linked off to Sahil Malik's blog, where he demonstrated the use of the URL protocol for working with SharePoint's RPC methods to export a list's XML definition. Well, since he let the cat part way out of the bag on one of my oldest and best trick, I figured I'd let it all the way out, showing off perhaps my favorite gem of the SharePoint API.

There is an awful lot you can do with the RPC methods that make up owssvr.dll. For example, Sahil's post shows you how to get the configuration/definition XML. But you can also get the XML representing the values in the list. For example:

http://Server_Name/[sites/][Site_Name/]_vti_bin/owssvr.dll?Cmd=
   Display&List=GUID&XMLDATA=TRUE

So it's that easy to get a dump of list data in XML format, just about perfect for doing client callbacks (AJAX) or using as an alternative to generic handlers (.ashx files). What if you want to set up a link that exports list data to Excel?

http://Server_Name/[sites/][Site_Name/]_vti_bin/owssvr.dll?CS=
   109&Using=_layouts/query.iqy&List=GUID&View=GUID&CacheControl=1

These are just the examples that sit right next to Sahil's Cmd=ExportList example in the SDK. So, the next time you get a chance, crack open the WSS 3.0 SDK and search for "RPC Methods" and "URL Protocol". I'm sure you'll find these tools as handy as I have found them.

author: Tim Yagla | posted @ Thursday, September 25, 2008 8:29 PM | Feedback (1)

SharePoint Best Practices Conference


Earlier this week I attended the first SharePoint Best Practices Conference just outside Washington, DC in McLean, Virginia. The event was organized by Mindsharp, who at this point needs no introduction (or even the hyperlink) as the leading provider of SharePoint training here in the States, and maybe the world. The conference was partially driven by the release of a fairly new book from the Microsoft Press, MOSS 2007 Best Practices. The book is pretty good, too; much better than the Administrator's Companion that came out around the time of MOSS RTM.

Since my return, many people have asked what I thought of the conference. Overall, I thought it was an excellent first attempt at the best practices angle. Some of the content and presenters left a lot to be desired, but others were excellent. In time, the herd will be thinned, I suppose, so I'm not disappointed. The conference was divided into several very practical tracks, such as CIO, Information Worker, Developer, Systems Administrator, and Information Architect. It's nice to finally see Information Architecture be recognized as enormously important to successful SharePoint implementation. For the last 3 years as a consulting implementation partner, I believe solid IA has been the single biggest factor in creating customer satisfaction. Interestingly enough, SharePoint has suffered a bit of a bad rap because Microsoft tried to sell it as your do-all miracle intranet in a box for so long. The value of IA has long been a hard sell to clients, but all those I've seen invest in it have realized significant business value from doing so.

BecauseI have been working with SharePoint since the dark ages of SPS 2003, I'm fairly well versed in most aspects of the platform. Therefore, I jumped around quite a bit across tracks, participating in those sessions that caught my eye. And since I had a colleague along, we were able to divide and conquer to get the most out of the experience.

Highlights for me:

  1. Evan Burfield's "Business Transformation: SharePoint as the Platform for the Enterprise" - This was a great strategic look at how SharePoint is changing the IT landscape delivered as a top-notch presentation from what I have to assume to be a top-notch consultant. Very well done. No glitz, no glam, just good info delivered well.
  2. Sahil Malik's "Get Rich Quick! Creating Rich UI's in SharePoint" - SMACK!!! That's the sound of Sahil hitting this one out of the park. Sahil demonstrated a great way to pull together several of SharePoint's many hard-core development techniques into a bad-ass custom field type that leverages AJAX to provide a capability similar to Google Suggest. It was like watching a master chef add about 50 seasonings into the ultimate marinara sauce. I have often referred to Sahil's blog over about the last year-and-a-half because he's witty and bright as hell. I was a little upset about him giving away one of my very best tricks. Look this one up in the WSS SDK. Sahil's blog entry barely scratches the surface of what you can do with this bad boy!
  3. Mark Schneider's "Governance and Taxonomy Planning" - So, a few weeks ago I get a phone call just before starting the IA portion of a small SharePoint project. The call is from the client CIO, and he's worried that big words like Information Architecture and Taxonomy are going to make his business people glaze over. And he's right. I mean, how many people want stuffed animal heads in their intranet, right? Oh, that's taxidermy? So I ripped up my primer PowerPoint that I had just printed off and decided to go in with a whiteboard and a dry-erase marker and no big words, the latter at the request of the client. And it worked. But at heart I'm a techie. And while I feel very strongly about the importance of IA in site design and execution, I have a hard time articulating the concepts as something that everyday business people can relate to. Well, Mark did a fantastic job of that. I plan to bookmark his blog, and you should, too.
  4. Sahil Malik's "SharePoint as a WCF Host" - So WCF comes along in .NET 3.0, and we're supposed to be astounded. Yeah it's a good tool, but it gives bad devs even more ways to hose things up. But Sahil is the man and figured out how to host WCF services in SharePoint. Then he shared it with the rest of us.

Lowlights for me:

  1. Mike Ferraz's "Team Development for Delivering Complex SharePoint Projects" - How do you make the worst presentation in the world? Chop up several of Microsoft's slide decks about MSF and regurgitate it almost word-for-word. For an added bonus, you can allude to neat things you might be doing, provide a single slide about that, and dodge questions from the audience.
  2. Daniel Webster's "Search Center Design Best Practices" - This was just bad. The sum total best practice here was really to add a back button in the search center, which the speaker didn't know how to do because he "isn't a developer." Daniel kept saying he was an admin, not a developer or an IA, over and over, then didn't know that to get his VPC to attach to wireless, he had to toggle the drop-down in the VPC Settings, effectively killing 1/4 of his demo. I didn't have the heart to tell him.

So those are my thoughts from the Best Practices Conference. Happy SharePointing.

author: Tim Yagla | posted @ Friday, September 19, 2008 10:27 PM | Feedback (5)

Mentorship Part I


After re-introducing my blog, the real topic I wanted to expound upon this evening is mentorship and its importance to both personal and professional development. First I would like to define mentorship in my own words and then distinguish it from simply teaching. I would define mentorship as a collaborative learning process, whereby one individual provides guidance, leadership, and knowledge to someone of lesser knowledge and/or experience for the common good of both individuals. Teaching is simply conveying a message or technique previously unfamiliar to the pupil. Many books and scholarly essays have been written on this topic in the past, so I’ll keep it brief and just discuss what I’ve learned from the school of hard knocks.
When I think of the people who have mentored me over the years, my mother and father certainly stand out. They taught me a lot of things, like how to walk and talk, to ride a bike, to balance a checkbook (busted, I can’t remember the last time I actually did that). But they also mentored me, instilling a sense of consistent values and attitudes that have served as my moral compass and made me feel guilty when I knew I was screwing up. The reverend at my church was a mentor, providing consistent reinforcement of a set of guiding principles over time. Most of my football and shooting coaches were mentors, others just teachers. And then I had the good fortune to have some good senior-level people in my field take me under their wings and help me develop over time.
So, allow me to list out some bullets about what mentorship means to me.
What mentorship is:
·         Constructive
·         Two-way. A mentor cannot possibly just dump information on his protégé. The protégé has to ask the right questions, for which the mentor may or may not have answers. Then the protégé must make the conscious decision what advice to use, and what to discard. And all these things have to be OK with both parties.
·         Always positive. Even criticism should be constructive. Don’t tell me I’m wrong. Challenge me to surmise why and what to do about it on my own, and be ready to help me figure it out if I struggle. Over the course of my entire lifetime, including my time in team sports (including a full football scholarship to a Division I college), I have always seen far better long-term results from positive reinforcement and constructive criticism. That’s not to say some people, including me, don’t need a swift kick in the rear now and them to wake them up. It is merely to say the long term results are better when positive channels are used.
·         Challenging and inspires one to apply critical thinking to figure out the how’s and why’s
·         Long-term
This is an important place to distinguish between leadership and mentorship, as well. We’ve already defined mentorship. I like my Marine Corps Staff Sergeant buddy’s definition of leadership the best: “Leadership is getting people to do what you want/need them to do. Effective leadership is getting people to do what you want/need them to do because they’re convinced it’s what they want to do.” Keep in mind this is a guy I've known since 1st grade. We took different paths after high school, and he has led ~20+ men into a hostile country, entirely responsible for their lives and well-being. Right or wrong, his definition certainly has more credibility with me than just about any other I've ever heard.
What mentorship is not:
·         Unhealthy or counterproductive in any way.
·         Indentured servitude. When I was first interviewing for jobs as I prepared to graduate from college in 1998, I actually interviewed at a financial services company who paired each new hire with a “mentor”. The protégé’s job was to make the mentor rich. The mentor’s job was to throw the protégé enough table scraps to keep him from quitting. Believe it or not, this program had won several awards (Hmmm, "Espy", "Grammy", "Emmy", "GREEDY"... Greedy fits rght in.) By now I might be wealthier if I had gone to work for that company, but I’m damn glad I didn’t!
·         Short-term
There was a catalyst for this entry. This morning I attended a breakfast event hosted by the Greater Richmond Technology Council, at which I saw and interacted with a couple of individuals who I would also consider mentors, and who have helped become successful through their guidance, constructive criticism, and belief that I had potential. Thank you.

author: Tim Yagla | posted @ Friday, September 12, 2008 10:22 PM | Feedback (2)

I'm Back.


So, I used to have a pretty decent blog about my love-hate relationship with Microsoft's SharePoint Products & Technologies. I gave praise where praise was due, and I slammed our boys from Redmond for some things that I felt were egregiously poor, whether in terms of quality control or lack of vision. Then I decided to make a career move to a different company, so I sold out and deleted all my old blog entries.

Well, that was a while ago, and now I'm back. However, I have decided to change the focus of my blog somewhat from a technical one (now that there are no fewer than 76,247,339,461,923,755,333,528 SharePoint tech blogs out there) to one of a more strategic nature. Yeah, that's right, I was around before SharePoint was cool, or even a buzzword. Now I've moved beyond most of the technical aspects and prefer to wax philosophical regarding technology strategy and where a tool like SharePoint fits in.

author: Tim Yagla | posted @ Friday, September 12, 2008 9:15 PM | Feedback (1)