If you haven’t been involved in a user group you’re missing out. If you’re an MVP and you haven’t presented at a User Group you’re missing the boat.
Mike Watson pointed me to an interesting twitter thread that appears to have started based on Adam’s wild blog post about a recent user group he presented at where they twisted his arm and worse to force him talking points. If you know Adam, you know he wouldn’t put up with that, it was sure to backfire. I’m actually surprised he didn’t name names. That’s what blogs are good for. Putting someone’s feet to the fire… it was a bad experience for him, and it would have been for me too (based on the story.)
I’d have to compare notes with a few MVPs like Andrew Connell and Scott Hillier, but I bet I’ve presented at more SharePoint User Groups than anyone. Not to brag, just to share my experiences. One thing I’ve learned is there is a unique balance that has to happen even at user groups. Some of the same mistakes made in SharePoint deployments happen in User Groups. Not Anarchy as in the case of the SharePoint deployments but a Dictatorship.
I think Adam painted a pretty strong picture of what can happen when a User Group has gone wrong. If your user group is going like this, step up and let them know how wrong this is. I know it’s hard since you don’t have anything to compare it to. In the 25 or so user groups I’ve presented at, I’ve never even shown them my decks ahead of time let alone rebranded or been given talking points.
I hate to hear when a user group is destroyed where one or a handful of vendors or consulting groups take over a user group and strangle it for leads. It starts out with food or sponsorship or even the driver being a vendor and the group feels compelled, or someone does anyway, feel like they either have the right or the duty to spend the meeting showing off their products and force feeding the members of the group?
What is a UG – User Group/SPUG – SharePoint User Group? A user group is a group of like minded individuals who have decided to get together to talk about something they all like. They invite people that think like they do to come and present on various topics. Where things get fun is when you get the typical pizza and drinks, and people can socialize as well as be enlightened by some great speaker. The agenda can be as rigid or as loose as those that run it and those apart of it desire. Make some rules to keep it fun and exciting and stick with them. Don’t make it rigid to keep out the good speakers, but to rule what kind of junk can rule your meetings.
I’ve been in user groups where the speakers were given topics and it is religiously on the same day of the month every month scheduled out 6 months, and despite the fact that instructors fly into town or various events like SharePoint Saturdays, Codecamps, etc… they aren’t flexible enough to fit them in. In Toronto I was able to get lunch and meet with the user group at the same time. It was the first time I’d been there, but in the short time I was there I was able to meet 3 MVPs I’d been working with in various capacities and meet others I’d met in the on the intertubes or twitterverse.
I recently heard about a User Group where those that run it and those that have the sessions are completely predatory. They are simply using it as a means of getting people to join their company. That is sad.
If you have a user group meeting where people come, they hear a presentation and go home. You might figure out a way to get the people talking and sharing. Is there a way to encourage people to get interactive? What about drinks and socializing before or after? Just because you move the time up and start the sessions at the same time doesn’t mean people will find value coming early. People do need encouragement. My friend Jim has an Atari user group that he was in from like 20 years ago and they still watch SCI FI movies together. Now that is a serious user group. Love it! I was jealous. Those bonds go deep.
In others I’ve found their flexibility welcoming, as it has allowed me to speak when I’m in town and to visit over lunch, or show up that night.
If you apply Governance to a user group you might come up with some rules to help with the predatory nature of ISVs and SIs. Everyone can benefit from awareness, but it’s easy to overdue it.
Consider these:
It’s sad when an MVP has such a bad experience speaking at a user group that he doesn’t want to do it again. Let me share some interesting ideas…
The Hawaii SharePoint user group was a lively group, they weren’t afraid to ask questions… They also record their sessions. I’ve seen that at a few places, like Baltimore where they bring in Chicken fingers and sandwiches not Pizza.
The Central Ohio SharePoint User Group meet for drinks afterward and have a good mix of roles across small business to enterprises and despite being deeply driven by an SI, you may quickly learn what their services are, but they work to bring in talent. They had pretty worked out some rules of order, so people know what to expect.
The Jordan User Group in Amman is one of the coolest user groups, I’ve ever been to. They had a very casual Q&A over a traditional meal. It was a great setup and everyone felt really comfortable asking questions and sitting and eating hummus and this amazing red stuff.
The San Francisco SharePoint User Group has a running list of speakers they are looking for, and topics that the group has requested.
The So Cal user Group didn’t realize that there are 2 other So Cal SharePoint User Groups 🙂 and actually was scheduling meetings over the top of each other.
While at the Office system User group in Israel which meets at the Microsoft office, I changed my focus three times to try to meet the needs of the group. I was there for them, not me. Avi’s guitar playing really gave the group personality. It was a fun and humorous relaxing experience for everyone.
I’ve found some cities end up having more than one user group, where one might be more business focused or more developer focused like the .NET User Groups than end up spinning off a SharePoint Developer user Group. The User Group leader has a lot to do with the dynamics of the group. I hope leaders realize it’s not just about getting people registered for their group, but in building the dynamics of the regulars. Getting people that are contributing and keeping things interesting and active.
I’m looking forward to seeing the SharePoint User Groups in Cologne (Germany), Paris, Denver, Dallas, Chicago, Wisconsin, Egypt in the next 45 days! Still trying to fit in Alabama, Nashville, San Antonio, Singapore, Lebanon, Tehran, San Fran and a tour across the user groups in NZ and AUS… (July?)
I like the idea of having the idea of a SharePint (look it up, now there’s even a facebook group) after a good user group meeting where you can simply just hang out and chat with the speaker that has flown in to speak to the group. Personally I feel cheated if I can’t have that kind of time with the community. That’s where I find the most valuable conversations about what’s really going on in the community.
There are over 100 SharePoint user groups across the globe and I plan to visit them all, well eventually. You should consider making it out to the user group and adding your personality into the mix and making it more interactive, don’t just suck out life, push in some life and make it fun. Bob Fox and crew at ISPA have tried to focus on making it easy. Here’s SharePointPros.org which is a site that has a map of the User Groups they are aware of.
My name is Peter Serzo and I work as a consultant for Trillium Teamologies in Michigan. Two weeks ago I did a session on the Content Editor Web Part (CEWP) and JQuery at the SharePoint Best Practices Conference in San Diego. I have become a big fan of JQuery after seeing the potential of this technology. There are two ways to approach the technology: Information Worker or Developer. I chose IW for the BP Conference because I wanted to introduce the topic and show folks what they can do with JQuery out of the box. As you will see from this post you can write very little code and get robust functionality.
Two items to know about JQuery right from the start: It is open source JavaScript and it is the JavaScript library that Microsoft supports now and going into the future. What this means to us is that there is a vibrant community working on solutions that you can use in SharePoint today and if there is any issue with this code, even though it is open source and therefore written by someone else, Microsoft will support it. That is a powerful combination and adds another critical resource to your SharePoint solutions.
Be Proactive – Top 5 reasons to use JQuery
5. Community – JQuery has a large community that is growing – blog.jquery.com. JQuery is three years old and just between December 2008 and Jan 2009 (when version 1.3 was released) there has been a 30% uptick in daily visitors to the site and nearly one million downloads of this release (Google).
4. Documentation – Excellent and extensive documentation – docs.jquery.com. Some of the references you can find are: JQuery introduction, API Reference, how to author plugins, and how to get support from the JQuery team.
3. Lightweight JavaScript – the production library for JQuery is approximately 18kb. Currently it is at version 1.3.1 and is tended to by a team of world class programmers headed by the creator John Resig. The lightweight size makes it very efficient.
2. Plugin Support – plugins.jquery.com. This is where I am very excited about the potential that JQuery brings to the SharePoint table. Imagine web parts built by third party vendors (stay with me) and Microsoft supports all their code. I know, it sounds impossible but this is very close to what plugins give to your installations. Plugins encompass everything from image rotators to menus, to forms, the list goes on and on.
1. Microsoft Support – Refer to Scott Gunthrie’s blog 9/28/2008. I never said support was free and how far will Microsoft go to support plugins is a question without an answer right now. However, Visual Studio 2010 will have JQuery support integrated into the product. If you wish to do this with VS 2008, Scott has a blog on how to do this. The important part of movement is that Microsoft is further embracing open source and not going off and creating their own JavaScript library. Perusing John Resig’s blog, I noticed that he is beefing up JQuery to support IE 8.
Now that we know why to use it, let’s see how to use it.
First things First
In order to utilize JQuery you are going to have to download the latest version of the library off the JQuery site (http://docs.jquery.com/Downloading_jQuery). You can also get it off Google.
We now have to load it somewhere for our CEWP to reference. We could debate the merits of putting a reference in the 12 hive or a document library. I am a proponent of the document library approach for a few reasons. The biggest two reasons are ‘store’ and maintainability. By using a document library with versioning on I know that I can have multiple versions of the JQuery library. The JQuery team is constantly updating their library. Of course when I load a new version of this library I have to regression test. Rolling back is simple and painless if there are any issues. The library approach also lends itself to maintainability. I can have multiple versions of the code in one place, be assured that it is saved in my database, and take comfort in the knowledge that when I perform an update from Microsoft, my libraries will not be overwritten.
I set up one library with two folders at the site collection level. The library is called Javascript and the two folders are jquery and utilities. The jquery folder contains the download of the compressed JQuery library. The utilities folder contains any plugins that are used on the site or utilities that you write.
One other item, rename the downloaded jquery library from jquery-1.3.1.min.js (or whatever your version says) to jquery.js. Save the versioning information in metadata, but now your references are much easier to write and understand.
Now that we have the plumbing in place let’s see how SharePoint and JQuery work together with a plugin.
Synergize
1. For the purposes of this posting I am choosing the lightBox plugin found here (http://leandrovieira.com/projects/jquery/lightbox/). LightBox is cool web 2.0 looking technology that many have been exposed to so it provides credence to our jquery example.
Extract the zip file and put the contents into the utilities folder as shown below:
Being really efficient, you can create a metadata tag called Plugin and designate this as lightBox. Also, notice that there are two JavaScript files – one is compressed, the other is not. Keeping the non-compressed file makes debugging (if you have to do it) much easier.
2. Have several pictures you can reference in a picture gallery on your site.
3. Insert the CEWP onto your page.
4. Click on Source Editor and create the HTML (view source from where this was downloaded). Be sure to reference the following correctly for your installation:
http://portal.moss.local/javascript/jquery/jquery.js
http://portal.moss.local/javascript/utilities/jquery.lightbox-0.5.js
<link rel="stylesheet" type="text/css" href="http://portal.moss.local/javascript/utilities/jquery.lightbox-0.5.css" media="screen" />
5. The last item I want to point out in the HTML is the secret sauce:
$(function() {$(‘#gallery a’).lightBox({fixedNavigation:true});});
One line of jquery code to get the example working!
Hovering over the picture, choose one and the following picture takes focus:
If you take a look at the rest of the HTML, it can also be streamlined. For example, there is still CSS and explicit references to the pictures. This can be extracted to make our CEWP even leaner. With SharePoint and page downloads, it is all about efficiency.
You now have a working example of JQuery.
Win-Win
I want to leave you with a few things to think about as you finish reading this. Begin with Plugins. As you have seen it is quick and somewhat painless to get up and running.
JQuery and SharePoint are a doable sell to your clients or boss. I don’t want to use the term easy because when approaching open source and browsers management gets understandably queasy. However, when you explain the benefits using some of the items I have pointed out, most clients will see the return. I have even framed this post with Stephen Covey references. Use them!
JQuery is NOT contained to the CEWP. This is where I started. You can use it all over your site. To see more examples of JQuery, please check out my site (which contains my blog) at www.sharepointusermagic.com. On the home page I have a JQuery image rotator. How many times has your boss or client asked for that! I implemented it with a plugin and less than 5 lines of JQuery code.
In the coming weeks, I will be doing more blog posts on this subject in three areas: IW and plugins, show you JQuery how’s and why’s on aspx pages and then I will go deeper into the developer side of the equation.
Finally, a big thank you to Joel for coming to my session in sunny SD and affording me the opportunity to guest on his blog (by the way he gives a great Keynote).
Client side coding has taken a leap in the right direction, and SharePoint people need to take note. Occasionally I get to actually attend a session, and one that I’m so glad I caught was at the SharePoint Practices Conference. This session I see as a game changing session… on JQuery by Peter Serzo. First Peter’s wittiness totally captured the audience, and after he had us in his hands he showed us some real best practices and real world “development” using JQuery.
Think about this for a second. What if you could change your navigation without having to deploy assemblies. AND you could version it and manage the source all without having to deploy server assemblies…
The power of JQuery is unravelling… (Don’t underestimate the power of Javascript!)
You have to rethink Development
What has happened and why I call it game changing for SharePoint is the power of javascript, essentially client side script on SharePoint. Back in the day, I was a big fan of what you could do with SharePoint for form validation, for focus and hover and all sorts of interesting things. It changed the way we HTML coders could interact with our users. Now you’ve got JQuery which is Javascript on Steroids. It’s still client side, which means it doesn’t require any server side DLLs (Assemblies) or features, or any of that stuff. It can be a javascript include which is referred to with a single line and the javascript code could be sitting in a document library that has versions turned on. Very very slick.
When you look at what can be done with the “plugins” you’ll be amazed. First the plugins are a bunch of code where someone smart has done all the heavy lifting, don’t be intimidated, it’s not too hard to use these and there is a lot of help. Now you can leverage this client file (not something that requires activeX or requires any kind of install. ZERO FOOTPRINT. That’s the beauty. People can do this cool stuff without ever bugging the server admin.
Browse some of these solutions which have nothing to do with SharePoint, but can be done on top of SharePoint… Blows me away how dynamic they are…
Here are a couple of examples:
Jan Tielens has written on SharePoint and JQuery and has a new release of SmartTools for a SharePoint Project (good stuff!)
Also look at jQuery Codeplex Project: integrates the jQuery JavaScript library with SharePoint 2007
37 more shocking JQuery Plugins
I’m sure this isn’t absolutely new for developers, but considering a zero footprint solution without involving the admins might be an interesting proposition and impact the design of the new navigation, search UI, or news web part.
So I asked Peter Serzo if he would do a guest blog on his Best Practices topic JQuery and the Content Editor Web Part…
Over the summer I did some independent consulting and learned a lot of secrets. Now I’ve got some more lessons learned. I won’t use names, and those who know who I’m talking about, please don’t take offense. These are lessons that you learn the hard way, but don’t let this discourage you…. LEARN FROM MY LESSONS. Don’t hate me because I share them. Talking to your independent consulting friends they may just sell you on the awesome flexibility.
Get on the preferred vendor list –
Ok, you’re an independent consultant and now you’ve got a customer who’s shown interest. They setup conference calls and you let them know your limited availability and your pricing. They tell you there is this preferred vendor list and you need to get on the list to get the gig. They pretty much assured you that they want YOU, but it’s company policy. So you get looped in with this subbing company that is on the list. They show some level of interest in what you’ve negotiated, but ultimately power over it, and tell you what their standards are, and Oh, by the way, you need to be on their list, to be a sub, you can’t be independent. What? Sub of a Sub? Yep, unless you want to JOIN this organization you need to be a contractor for this other organization. Oh, ok. How bad can that be. Guess what, they are saying the same thing. 3 nested deep? I don’t think so.
Make relationships with Consulting companies –
Ok, now you have paperwork for this top sub, the middle sub, and they all need faxed yesterday, and oh by the way, all those start dates that were discussed got incrementally pushed out. Not all at once where you could plan some other work, but a few days at a time where you think you’ve got work, but you don’t. There is nothing stopping a client from saying we want you for 3 months and then to take 2 months to get you to the day you’d start and then quit on you on the day you were suppose to arrive after you had your flight and everything.
Build a buffer and get an AMEX and have a plan to pay the AMEX when you don’t get paid (even better if you can get money from sub or get them to book EVERYTHING minimize out of pocket.) –
Now the customer has a date in mind for you to come out on site and do some work. Now you don’t have a corporate card or expense account for hotel, flight, food, etc… You are on your own dime, and when you go out with the other guys you feel bad when not paying for everybody, but it’s your own dime. Should you or shouldn’t you go to that Steak house? Of course it will ultimately be expensed, but when will you see the reimbursement and times are tight. The market just took a huge plunge.
Plan to NOT get paid like in forever –
Ok the gig went perfect as perfect as gigs go. Sure there was scope creep (that’s a different blog), and the project changed a few times, but the project owner seems happy. You’ve been putting in your hours. How come you haven’t gotten paid? The sub got the hours, and the sub of the sub got the hours… What’s up? Oh, they need an invoice. Great there’s a word template for that. So you bill, the sub of the sub and project closes and everyone seems happy. The effective rate seems a lot different than the original conversation, but that’s beyond the point. You need to get paid. So you use the template and fill it out with the hours (again) and the expenses, and send all the original receipts (kept copies phew!) and faxed them over. A couple weeks go by and you’re wondering what’s up. Ever heard of +Net 30 or Net 60? You thought you were going to get paid every 2 weeks, like you saw in some doc somewhere in how the subcontracting stuff works. Nope. They all decided not to bill until it all went through.
Follow up and Invoicing is key –
After the job you’ll get paid right? Nope, the Net 30 means they don’t have to pay you for 30 days after it’s all done. At 30 days you’re following up again. What’s up? What? You don’t like that I put who took me to their airport in my expense despite the policy that says if a friend takes you to the airport you can expense it. Oh they don’t like the word statement on the invoice. You’re in the middle of a move and trying to enjoy Christmas vacation, and you’ve got do dig up the old invoice and make those changes. Any more changes to be made? Who knows.
Keep TONS of copies of receipts ALL of them –
So a few weeks pass and you’re like… ok now what? The top sub didn’t get the expenses. What? I thought the sub of the sub would pass that kind of stuff on. Great. So now that we’re some 60+ days after the project is over, let alone the project starting like 6 months ago you haven’t gotten paid. Imagine trying to live off of jobs like this… Ok, you got paid or at least it seems like it, and now they are asking for another 1099 statement because the original was too blurry.
Referrals are Peachy (don’t count on them) if you do figure out how to get paid logistically
Oh, all those consulting or sales referrals you give where you get 5% or 10% for whatever work you send someone’s way. What incentive is there for them to actually pay you? In good will they want to pay you, but when it comes down to it… do you have a 1099 plan, did you send them an invoice, do you even know what to invoice? Of course you don’t. You’re MR Nice guy. Thanks for the work, but I forgot where it came from. Not easy to track, not easy to invoice.
Lesson learned
You need some serious cushion and jobs that are paying you on a regular basis outside of gigs like this. You can make good money but the lead time is way more than anyone is talking about. Sure they want you to start on Monday, but bureaucracy will require a month, and when that month is up, budgets change and priorities change, and the person that wanted you is no longer in the same role or on the same project.
Don’t forget how much you love Taxes
Good luck on taxes this year… right? Still waiting for various 1099 income statements and who knows how to show what should shown as expenses and next year it would be quarterly reporting (Nice that they give you bye if you were W-2 the previous year.) Taxes every 4 months? Torture! Who would want that. I have enough receipts I have to keep track of as it is.
Conclusion
Welcome to independent consulting, the most free job… where you are boss, where you control your destiny?
No thanks. I’ll pass. It’s not the money or travel. It’s the sanity.
You may now be hearing acronyms like BPOSS and BPOSD. If you’ve spent any time with the online service over the alpha or beta program, you may have a very strong impression that any customizations would be very restricted. This space has changed, and it’s important to keep this straight. There’s been a lot of confusion, and even those that were in the know, are now out of date. There is some new new documentation things don’t need to be so confusing. It’s important that both developers and IT understand the implications here. The best article written on the topic of managing customization is Sean Livingston’s Sunflower doc.
I’ve talked about the three+ tiers of SharePoint Hosting at Microsoft…
Office LIVE – the site collection hosting service designed primarily for small business or a small agile project in a place where people can share information (Based on WSS).
Office Web Applications (New cool stuff announced at PDC) – These are the new thin web based clients for office. You need to watch this stuff. "Get more information and updates about any beta product availability by signing up for Office Live Workspace. Also, check out our PressPass." If you want to do real-time screen sharing and collaboration, you can download the Microsoft SharedView beta for Windows here. The Office Live Update and SharedView are currently only available for Windows. An Office Live Update is available for the Microsoft Office suite.
Office Live Workspace – Your workspace comes with 500 MB of storage, Individual documents can be as large as 25 MB. Shared with 100 people is the design.
Office Live Small Business – professional website, domain name, company-branded emails, and online tools for managing customers and projects
SharePointHosting.com has some good tutorials on simple customizations (that really are simple things you can do in the browser) in hosting that you can do. They are also a good alternative if you are just looking for site collection hosting. There are options in this space. They also have a blog post on adding third party and their answer to app dev.
It’s amusing sometimes to look at what hosters consider customizations that are ok. Look at IT Solutions ExchangeMailhosting.com in what they consider SharePoint customizations that are ok: Browser-Based Customization, Web Parts, Apply a Theme from the Browser, SharePoint Designer Customization, Personal Views.
SharePoint Online & Business Productivity Online Standard Suite (BPOS-S) – SharePoint Online Standard – this is the multi tenant, your own domain name offering (Based on MOSS Standard). You can’t guarantee dedicated storage or pipes. You may see the numbers of users associated with this at 5000 or less, but that’s really more about setting the stage for the dedicated service. Here’s the SharePoint Online datasheet, but here’s the detail on the customization: Microsoft SharePoint Online Standard Developer Guide BPOS-S Customization
Also includes
30-day Trial (available to U.S. customers only)
BPOS-D – SharePoint Online Dedicated – this is the dedicated service. It’s a big jump from the multi tenant standard edition, but this is the service that’s changed most dramatically. In this offering you could end up with not only dedicated servers, but dedicated active directory, dedicated storage, dedicated pipes, and secure VPN tunnels and all sorts of very interesting and solutions across Exchange Hosting, Active Directory Hosting, and more… Don’t underestimate what can happen in this space. Designed and priced for 5,000+ users. Some of their more recent customers are 110K or 120K plus… (Look at Coke) with users and offices spread across the globe. Here’s the SharePoint Online Dedicated Datasheet.
Talking with Charles Ofori, the manager of the SharePoint Engineering group for BPOS-D, the plan has changed. They have acquired head count, and are now going through the steps to not only support companies building custom solutions, but also support SharePoint ISVs (Independent Software Vendor) people who build solutions and tools on top of SharePoint. From web parts, to workflows, to migration solutions, the space has been opened up to a certification process.
Both the corporation’s development and the ISV’s solutions go through a rigorous testing and validation process to ensure they fit the "best practices" for scale, manageability, supportability, and other criterion that this new head count will take this code through. You can surely imagine it will be inspected for code leaks, but also things like the way it accesses the API and so on.
To make this completely clear. The dedicated service NOW Supports Custom code including solutions.
Azure Microsoft SharePoint Service – There’s a different model here completely. This one is still very early, but I’ll try to pull together the resources as I hear about them.
In the past it was very easy to look at the hosting space and easily dismiss any bolted on solutions because they simply weren’t supported. Not only were the teams trying to figure out how to scale and support the base platforms, but the staffing models, support models, and more were all being flushed out.