In case you didn’t read a word of the technology press this year, I have conveniently summed up the entire news year for you in a handy tag cloud:
Happy Holidays and best wished for 2012!
Filed under: Uncategorized | Leave a Comment »
In case you didn’t read a word of the technology press this year, I have conveniently summed up the entire news year for you in a handy tag cloud:
Happy Holidays and best wished for 2012!
Filed under: Uncategorized | Leave a Comment »
Yesterday I had the pleasure of doing something I never get to do — getting out of the office to take in a conference (Tech*Days Canada 2011, Toronto leg). Only one session, but it was an awesome one: my esteemed colleague, Derek Kerr, director of all things infrastructure for non-linear creations, spoke on Microsoft Lync 2010: Audio, Video, and Web Conferencing Architecture and Experience.
Derek is one of the hottest IT speakers on the conference tour these days, and during this session I figured out at least of his secrets:
Brilliant!
Here are some snapshots:
Filed under: Collaboration | Leave a Comment »
My employer, non-linear creations, has recently made available a great free download on their website: SharePoint 2010 Visio Stencils for mocking up and designing SharePoint sites and artifacts.
DOWNLOAD: non-linear creations SharePoint 2010 Visio Stencil Kit
Non-linear creations (NLC) has captured site templates and web parts that ship with SharePoint within a series of Visio 2010 stencils. NLC’s SharePoint 2010 Stencil Kit enables user experience designers to mock up functionality for SharePoint quickly; while ensuring that pre-existing solutions are considered prior to designing features from scratch.
NLC’s SharePoint 2010 Stencil Kit is available to anyone who is in the early stages of a SharePoint planning project. This could be a business analyst, a corporate communications/intranet manager trying to convey concepts to a development team or a user experience designer.
Designing for SharePoint can be challenging. While almost anything is possible with enough time, money and electricity. Seemingly minor design decisions can add weeks to a development project. NLC’s team of SharePoint experts created these stencils to help mock up SharePoint sites quickly, using the web parts and site templates that ship with the product. Using the stencils is faster than prototyping directly in SharePoint, but still accurate enough to reduce risks of introducing design elements that inadvertently affect upgrade paths or extend development time unnecessarily.
When exploring how requirements map to an interface, NLC has found that prototyping directly in SharePoint can take a while and occasionally, certain custom functionality becomes very difficult to emulate within a short period of time. With the stencils, mockups can be developed and circulated with project teams and in a matter of hours.
As thought leaders in the SharePoint space, NLC believes in sharing our vast expertise to benefit the SharePoint community and continue to successfully entrench SharePoint technology within the enterprise. Because designing for SharePoint continues to be a challenge for most, we hope NLC’s SharePoint 2010 Stencil Kit will alleviate some of those frustrations.
You must have Visio 2010 to use the stencils. To use them, copy the .vss files, into: Documents > My Shapes.
Filed under: Consulting, Governance | Leave a Comment »
I’ve been interviewing a lot of candidates lately for our open SharePoint positions (developers, BAs, QAs …). It’s nothing like the summer of 2009, when I interviewed over 200 candidates in a couple of months, but we’re in full interviewing mode.
Over the years I’m coming to think that many candidates either have no idea how to sell themselves, or else … they just ain’t tryin’. This is nothing new. But that doesn’t mean it doesn’t baffle me. Even if one doesn’t want the job—in which case, why are you here? – shouldn’t simple personal pride require one to at least go through the motions of a sales call?
Because that’s what a job interview is, plain and simple (again, nothing groundbreaking here) – a sales call. Your goal is to make me want to hire you. It’s to sell yourself. And just as a real sales pro will tailor every aspect of a sales call to direct the outcome (from the eye contact to the shoeshine), this is what a job candidate must do.
Job seekers, especially you youngsters: think of the last job interview you had where you didn’t get an offer. To the person or people interviewing you, you are saying by your performance: potential employer, this is me at 100%. This is the best I will ever be. On my first day of working for you I will drop to about 70% of what you see today. A month later I’ll settle in somewhere between thirty and sixty percent. So this is as good as it gets.
On your last interview, did you act like you wanted the job? Did your attitude and energy express that you love this work, and that you’re excited to get started right away? Even if you weren’t dressed to the nines, did you at least look like you take care of details?
When I’m on a job interview, that’s practically my mantra: to these people, this is the best I’ll ever be.
Remember, not only are you a salesperson on a sales call, but every instant and every aspect of the interview is part of it. I’m not recommending that you become that slick, fast-talking “sales guy”. But as Alec Baldwin says in the movie: A. B. C. Always. Be. Closing. Always be closing! What do I mean by this?
Pay attention to how professional PR people like political spin doctors always take control of the conversation and “spin” it with every opportunity. To get hired, you need to master the art of taking whatever pitch you’re thrown and hitting it in the direction of your choosing. What is your spin? It’s “hire me; hiring me will not be a mistake; I am the right one for this role and the one after that (when you promote me due to my awesomeness); I am a winner; I always take the initiative and don’t need to be constantly directed” .. and so on.
You need to practice thinking on your feet and finding those segues that turn the conversation back to your message. You have to take the wheel and drive. There is no closing without this control. This is not a sleazy tactic, unless you overdo it and totally ignore the interviewer’s questions. In fact, a good interviewer will see what you’re doing and respect your ability to do it. She’ll think “this guy will be good at winning others over to his side when a project needs extra help, or new ideas.”
The interviewer will often ask open-ended questions about your history; these are great, as you can choose whichever situation from your past (that clearly illustrates how awesome you are) you want. Even tightly focused questions can be spun, though; you must become practiced at the art of answering the question briefly, and quickly following up with “… and that totally reminds me of that time I was asked to step in and fix a bad situation with that difficult client and we ended up getting more business from them.”
And in the area of hitting the baseball into the field you want, this is the biggest opportunity you have: the opportunity to ask questions. Dammit! My mentor calls this moment in the interview “a big fat softball.” The interviewer is rooting for you at this moment! She wants you, is inviting you, to strut your stuff. Not only can you spin the ball any way you want, but you even get to select which pitch is thrown! Now that’s control!
And what do four out of five candidates do with this opportunity? Nothing. “Uhhh … I can’t think of any questions …”
If you don’t have any questions, you have just told the interviewer “shove this job up your butt. I don’t want it.”
In my opinion you should put more thought and preparation into your questions than any other part of the interview. Even if you know more about the company and its people than the founders themselves, ask. Some. Questions. Interview questions that you ask are like the questions a lawyer asks in a trial: they’re not meant to get information, they’re meant to give information – in this case, about how awesome you are. And about how you are already looking ahead, beyond the job interview to what awesome stuff you’ll be doing for this interviewer starting two weeks from today. This is what salespeople call “assuming the sale”; it’s like leaping over “do you want to buy this car?” directly to “so what colour do you want your car to be?”.
Finally, the two most important questions (in other words, closing questions) you can ask in an interview are:
This question shows the employer that you’re already thinking to the next quarter, when you’ve already had some success under your belt. And the question, by assuming that you’ll be successful, shows confidence.
And the true closing question, to be asked at the end of the interview, and which a salesperson would call “asking for the sale” (the biggest part of closing):
Yes, it’s ballsy. I’ve asked this question in interviews, and it usually puts the interview off balance for a moment. Holy crap – this guy has the nerve to ask me to hire him on the spot! But you’re not coming right out and saying “hire me now!” – not quite. What you are doing is once again driving the conversation in the direction that will get you the offer. You can pitch the question quite innocuously (hey, you’re just looking for sincere feedback on your performance!). And the interviewer will generally say, “hmm, well, no, nothing specific comes to mind right now. We’ll be in touch with our decision!” But the important thing is that you have asked for the sale.
Seriously – in my various roles I’ve interviewed about 250 candidates for SharePoint- and other technology-related positions. Doing any of the above puts you ahead of 90% of the field, immediately.
Remember: as far as the interviewer knows, this is the best you will ever be.
Filed under: Consulting, Management-Leadership | Leave a Comment »
Something I’ve been needing to get off my chest for some time:
If a client asked me to prepare a training workshop in so-called Active Listening, I would first ask how long the workshop should be. Given half a day, I would prepare exercises on all the usual stuff:
… and so on.
Now, if the trainees didn’t have that kind of time, I could also switch gears and present the real meat in a three-second workshop.
Which entire workshop would consist of the following lesson:
“SHUT THE F*CK UP.”
That’s it. That’s the whole workshop. Yes, I know: we’re paid based on what we know, and we all want to prove our worth (read: our brilliance). But if the client is talking, she’s probably talking about her business, and SHE’S THE EXPERT at that moment. So: Shut. Up.
If I could pass one thing on to a junior consultant, and only one thing, it would be that you NEVER INTERRUPT A CLIENT. EVER. Did I mention never?
Ninety percent of the time a consultant or salesperson interrupts a client, his heart is in the right place; he’s trying to help. He’s figured out (he believes) what the client is thinking, or struggling to frame in words, and is just trying to help move the puck down the ice. I’ve felt that urge; we’ve all felt it. It can be irresistible, especially when paired with the above-mentioned need to look smart.
Resist. Resist with all your might. Even if you would bet your job that you know what the client is about to say (and you’re probably wrong anyway – it’s a wild-ass guess), chomp down on your tongue and LET HER SAY IT ANYWAY. And then when she’s done, and you were right? Nod vigorously and say “exactly! Just what I was thinking!”
The difference there? You didn’t cut her off, even with the best intentions. And cutting her off says “I have no time to listen to you.”
This is one of the most courageous things you can do as a vendor: let the client shine. In front of his boss, in front of his reports or colleagues, in front of you and your colleagues. Act as if the words of the client (who is paying your salary) are of great value (even if they’re not – a client who is just wrong is a subject for a different post). We all want to look smart; but the smart consultant lets the client have the glory. The rewards will come later, in a different form, but they will come: you will gradually unlock the “Trusted Advisor” achievement.
A client struggling to find just the right words may want your help; if so, he will ask. Otherwise, his thoughts will be: I knew exactly what I wanted to say; I just needed a minute to GET IT RIGHT. And this consultant, unlike so many of the others, was patient and respectful enough to let me do it.
That’s building trust.
Years ago I was in a requirements-gathering session with a colleague and a group of clients. A knowledgeable but slow-talking person on the client side of the table was speaking. The first time my colleague interrupted to “help” her, I gave him a private glance. The second time, I very politely stopped him and said, “hold on, I really want to hear this point; go ahead, Alice …” The third time … well, on the bio-break I had to bring it up privately; fortunately, he hadn’t been aware, and was actually quite grateful for my help!
[There is one obvious exception to “shut the f*ck up”, albeit a delicate one: a client who is clearly out of line, being abusive, sexist, or otherwise offensive. Now sometimes you have an irate client who needs to vent his spleen; often such a client is fine after he’s had the chance to vent. If you are thick-skinned (and/or you did screw up), and taking the heat is worth the pain in terms of smoothing over a thorny problem, then you may need to take it. But that’s up to you, and how much you value the account. Of course if you are more senior and someone on the client team is plainly abusive to your people, you have to take it up with that person privately, saying “if you have that kind of bile to vent, you come to me, not my people. I’ll deal with them.” But in my opinion, racist or sexist remarks or similar abuse should be called out firmly, at the time, no matter who might look bad.]
Other than that special case, however, all the best active listening courses in the world can really be distilled down to those immortal words: SHUT THE F*CK UP.
Filed under: Consulting, Management-Leadership | 2 Comments »
Although many organizations that use SharePoint employ internal developers to create custom solutions, every customer organization I’ve encountered in my ten years of SharePoint consulting has used external vendors for at least some development. These vendors include individual contractors, Microsoft Certified Partner firms like non-linear creations, and independent software vendors (ISVs) like Bamboo Solutions or K2.
Whether you use internal employees or third-party vendors, and whether an application is a simple web part or a complex business-process automation, you must not deploy it until you know it can be trusted. A poorly-written application can slow (or bring down) your entire SharePoint farm. It can destroy or corrupt data in your databases, or critical files on your servers. It can also circumvent your security, opening you up to all manner of attacks.
Below are six critical questions that you must ask any SharePoint developer, internal or external.
Prior to SharePoint 2010, the only option available to the customer was to deploy every solution as a Farm Solution, where files are deployed to the file system and the code runs in the same execution space as SharePoint itself. If the solution is well written and behaves itself (for example, by NOT hogging all the server memory and crashing the SharePoint site it lives in), this is not a problem. But since the quality of custom SharePoint solutions is fully dependent on the developer/vendor, deploying a Farm Solution calls for a lot of trust on the part of the server administrator/customer.
Overcoming the customer’s understandable reluctance to deploy Farm Solutions was the driving force behind the introduction, with the 2010 product release, of Sandboxed Solutions. Sandboxed Solutions are web parts, Lists or other SharePoint features that run isolated from your SharePoint sites. By default, a Sandboxed Solution cannot access or affect anything outside of the local SharePoint site; external databases, web services, and the file system are all off limits. Your server administrators can apply limits and quotas to the Solution, so that if it misbehaves by (for example) hogging server memory, SharePoint 2010 will shut it down.
Your developers/vendor may complain that Sandboxed Solutions are additional work. They may say that they are too neutered and can’t do anything useful. However, for a solution that requires access only to the local sites, lists and libraries, the latter isn’t true. And Sandboxed Solutions can be given additional permissions safely by using something called Full Trust Proxies, which let your vendor’s code request specific rights, while remaining isolated from the SharePoint execution space.
Now that we have Sandboxed Solutions, a SharePoint developer’s first question (and yours) when designing a new feature should always be, “can I write this as a Sandboxed Solution?”.
Sandboxed Solutions are still quite new, and do require extra work, so they are not yet the industry standard (this will change very soon). And there will always be some solutions that can run only as Farm Solutions. You will still have occasions, then, when it will be acceptable to deploy a Farm Solution. But if your vendor or in-house developer delivers you a Farm Solution, you must know if it partially or fully trusted.
With a fully-trusted solution, your developer’s code can access the file system on your SharePoint servers, it can access the Windows Registry — it is pretty much an administrator. From a developer’s viewpoint, this is the fastest and easiest way to develop. But with the availability of Sandboxed Solutions and partially-trusted solutions, there are very few reasons for you to accept a fully-trusted solution.
A partially-trusted solution has no innate rights, and must be explicitly granted permissions (in a special configuration file called a Code Access Security policy) to do anything. The developer must provide this file, which you can inspect.
If for some reason your vendor must provide you with a fully-trusted solution, you must not deploy it until you understand everything it is going to try to do.
One of the key questions in the vetting process: does it use RunWithElevatedPrivileges? This is a SharePoint feature that is exactly what it sounds like. By default, when your vendor’s code tries to do something like access a SharePoint document, it impersonates the user browsing the page; the code can’t do anything the user can’t do. However, a fully-trusted solution (or a partially-trusted one granted the permission) can use RunWithElevatedPrivileges to temporarily impersonate an account that has Full Control of your SharePoint application.
RunWithElevatedPrivileges is a powerful tool that must be used sparingly, because it can circumvent your carefully-planned SharePoint security.
Something else that can circumvent your security is Feature Event Receivers.
A Farm (non-Sandboxed) Solution can include small bits of code that run when your server administrator installs or uninstalls a custom solution. For example, the solution may depend on the existence of an external database; a Feature Event Receiver can confirm that the database exists, and create it if necessary.
Feature Event Receivers enjoy full administrative privileges on your server farm, so it is very important that you fully understand what they are programmed to do.
Many applications need a place to store configuration settings (e.g., database connection strings, or an email address for alerts). If your vendor’s solution uses the main configuration file (web.config) for this purpose, you increase your risk because this file may be shared by hundreds of SharePoint sites on your farm, and the slightest typo can bring them all down.
In general, an experienced SharePoint developer will not provide you a solution that requires manual entries to web.config. Instead, a Sandboxed Solution will keep its settings in a local SharePoint list, and a Farm Solution will do the same or include a Feature (or Feature Event Receiver) that adds settings to the web.config file automagically on installation (and removes them on uninstallation).
Finally, an experienced vendor will develop a solution with extensive logging. Even if the code has been developed defensively and tested thoroughly (two other things you need to ask about), even the best software goes wrong occasionally. When that happens in a production environment, you need to know exactly what happened so it can be diagnosed and remedied. An application can log messages to the Windows event log, a database table, the SharePoint Unified Logging Service, or a SharePoint List. Before you deploy the solution, you need to know which of these places it logs to, what kinds of messages it logs (is logging too verbose? Too sparse?), and whether the logging can be configured (is logging off by default? Are there different modes — Errors Only, Verbose, etc.?). If there is no way for you to get enough information when something goes wrong to at least understand what happened, without involving the vendor, this is a sign of a poorly-designed solution.
These questions are only a sampling of the kind of due diligence required of you as the owner of a SharePoint environment. As in any business relationship, the key ingredient is trust.
Filed under: Governance | Leave a Comment »
After more than a decade of working with Microsoft technologies like SharePoint Server, I’ve finally bitten the bullet and gotten myself Certified.
This week I wrote exam 70-576 PRO: Designing and Developing Microsoft SharePoint 2010 Applications. Passing grade is 700, and I scored 887. My weakest area was Designing SharePoint Composite Applications, which are codeless solutions for Information Workers – as a codehead, that’s okay with me.
Thanks go to Susie Ibbotson, the SharePoint team’s tormentor-in-chief at non-linear creations, whose constant nagging got me to this eminent position.
From here I guess I should take 70-573 MCTS: SharePoint 2010, Application Development, which would get me the Microsoft Certified Professional Developer (MCPD) designation …
Filed under: Consulting | Leave a Comment »