Thursday, June 21, 2012

SharePoint 2010 and SAP's Integration Option for Microsoft SharePoint

I am currently on a contract that has me working to integrate SharePoint 2010 and SAP's Business Objects Enterprise suite of products.  In our first phase of deployment, we are simply working on the surfacing of reports using SharePoint as our portal server.  The easy way to do this is to use SAP's Integration Option for Microsoft SharePoint (IOMS, or IPoint).

Overview

IOMS is a set of internal and external (to SharePoint, more on that later) services, some web parts, application pages, and a site collection layout.  All of this is presented in to SharePoint with a solution file.

IOMS directly surfaces reports in a couple of different ways.  First you have the Report Repository view, that is, essentially, just a representation of your BOE folder hierarchy presented in a web part.  Navigate through the folders and click on the report you want.
Easy enough, right?
The other way is to use a viewer web part (part of IOMS) and, using an ID property for the specific report, directly present the report to the user.
All of this makes it very easy to directly surface reports, however we run in to some problems that, as SharePoint users, we don't expect.

First and foremost, it must be stressed that the IOMS product is just a "window" in to the BOE system.  You are using SharePoint to look in to your BOE deployment.  Because of this, you don't get the nifty features that we are used to in SharePoint.  The Report Repository is NOT a SharePoint library.  You can't add metadata to the library, you can't filter the results, you can't group the items, and you can't create document workspaces for the reports.  In fact NONE of the whiz-bang features that we have come to use and love in SharePoint are available.  What see is only what you get in BOE.  
IOMS does give you a "discussion" feature for the reports, BUT, again, it is not a SharePoint discussion, so you don't get all of the features that we are used to in a discussion list.  Users of SharePoint using IOMS out of the box will be immediately frustrated, especially if they are used to the new SharePoint 2010 features of metadata filtering, workflows, and external data columns.

Technical Stuff

IOMS is actually pretty interesting under the hood.  It is as if the IOMS development team looked at the development story for MOSS 2007 and said "Let's do one of each!"  There are web parts, internal services, external services, site layouts, content types, feature sets, and all sorts of other goodies.  

Installing IOMS you will find that the majority of the code goes to the SAP Business Objects folder in the Program Files directory.  At its heart, IOMS is a Java based application, and all of those java jars need to go somewhere.  In this folder are the external services and other things that make IOMS work.  SharePoint sees them via virtual directories in IIS in the _layouts folder.  These are all treated as IIS applications, sharing the same Application Pool as the SharePoint Web Application. 
The problem with this is that each application in IIS requires its very own web.config file.  So you constantly need to go back to this folder to adjust the settings.  It wouldn't be so bad if there was only one or two applications.  However, SAP has a separate application for each type of report they offer.  So, there are applications for the Web Intelligence reports, the Crystal Reports reports, the flash dashboards, etc.  Each one has its own unique configuration, and you need to make changes in each web.config file to ensure that each type of report will load properly.  

One other annoyance that I found was that the IOMS installer will deploy a bunch of stuff in to SharePoint directly, but the thing that it needs to work correctly is deployed via solution...  AND they don't deploy the solution for you.  You have to manually deploy the solution.  That kind of sucks...   You see in your site templates the SAP site, but you get errors when you try to deploy it, because the assemblies haven't been deployed yet.  Same thing with several of the features and web parts.  It is a big pain.  

Claims Authentication Mode

Now to the big kicker...  Claims Authentication Mode is new to SharePoint 2010.  It gives the most flexibility for authentication, while still providing the ability to use Windows Authentication.  Most SharePoint administrators and architects recommend that you create your Web Applications as Claims Based.  
This does some things internally to SharePoint.  When a Web Application is set to Claims Mode, all internal authentication happens via claims.  Your windows tickets are converted in to claims tokens.  This works all well and good for any SharePoint service, as they are all claims aware.  However if you have a third party service that is deployed to SharePoint as an internal service, i.e. in the _vti_bin without being recognized as an application in IIS, it must be claims aware, or authentication will fail.  
There are two very important WCF services that IOMS deploys to the _vti_bin as internal SharePoint services.  
Remember when I said that IOMS is simply a "window" to your SAP deployment?  I am not kidding.  The report viewers do not actually exist on the SharePoint server.  They exist on the SAP server.  IOMS has code that opens a connection to the SAP server's web interface and presents the viewer in kind of a goofy Iframe setup.  The service that starts all of this nonsense is this internal SharePoint service.  Guess what?  It is NOT claims aware.  Therefore, no mater what you do, if your Web Application is set to Claims Authentication Mode, authentication will fail to this service.  In order to use IOMS, your Web Application MUST be set to Classic Authentication mode.

This is a big gotcha, and in order to understand what is going on, you need to brush up on what is actually hapening under SharePoint's hood.  First read about Planning Authentication, then read all about Claims Authentication Mode and what it means to you.   

My Deployment

I like all of the SharePoint features...  So does my client.  So, I am doing my best to create a happy medium for surfacing their reports, AND using SharePoint features.  
For the initial deployment, we will be creating a list that will have an entry for each report that exists in BOE. This will be a SharePoint list all of the neat things that SharePoint has can be used.  For the time being, when a new SAP report is published, an administrator will have to go in and create a new list item for that report.  In the future, when a new report is published, I will have some sort of job on the SAP side that will kick off a workflow in SharePoint to create the list item automatically, then inform the administrator for approval, and to fill in any blanks left by the SAP side.  
Of course all of this is just marking time until my client purchases the Duet Suite developed by Microsoft and SAP in tandem.  Duet creates connections in SharePoint's Business Content Services enabling us to create external content types and columns for our lists.  Once that happens we can develop custom lists that will directly surface reports and metadata from SAP automatically.  

Tuesday, May 22, 2012

Interviews and Responding to Job Postings

I do a lot of interviews.  Both for jobs, and interviewing others for jobs.  It is par for the course when you are in the consulting world.  I have noticed a disturbing trend, and, if you are looking for a job, perhaps I can give you some tips on standing out.
First, people are replying to job postings as if they are replying to a text message or an email to a friend.  They don't check their work, they use familiar names, they use text message shorthand.  When showing up to an interview, people show up in ill fitting clothes, revealing clothing, and just generally unpresentable.

The first thing that you must understand about the job process is that the company is looking to find someone they can entrust to do a job and make them money.  You need to present yourself as the kind of person that the company can trust to make them money.  If your writing style or your personal style is not matching what they have in mind as a responsible, serious person, you will not get the job.

When you are looking through job postings, read them.  If you have around 50% of what the posting asks for, and if you have heard of the other 50%, go ahead and apply.  A posting, for the most part, is a list of requirements that the employer wants in an ideal candidate.  You may not be the ideal candidate, but you might be close enough to get an interview, or to even hire based on your salary requirements and your willingness to get up to speed.
If you DON'T have at least 50% of the requirements, move on.  The employer will just round file (trash can) your resume.

When you decide you are going to reply to the posting, look through it to find the person's name who authored the posting.  This is very important.
Use the name that you found and address your reply directly to that person.  Use the formal presentation of their name in your greeting:  Mr. Donaldson, Ms. Takayama, Dr. Jones.  DO NOT use the author's first name. You don't know them, and they might be sensitive to that kind of thing.
Personally, I do my greetings with just the author's name, I don't put a "Dear" in front of it.  The word implies a closeness that does not exist, and just doesn't belong in a business setting.

I like to write out my responses to job postings in a word processor program.  I use Microsoft Word, because it has both grammar and spell check.  I want to make sure that my replies are grammatically correct, has correct punctuation, correct word usage, and proper spelling.  In other words proof read your reply before sending.  This is not a text message, it is not an email to your friends.  This is the very first contact with a potential employer, and you want to sound like a person that they would want to give thousands of dollars a year to.  Nearly every job posting has the requirement that the candidate have outstanding written and verbal skills.  This reply is the very first impression of your written skills.  Take it very seriously, because the business certainly will.

Remove any type of slang or personal jargon from the reply.  I immediately discard any replies that use "u" for you, "ur" for your, or use its, it's, your, you're, and to, too, and two improperly.   Its basic English, guys.  If you can't figure those things out, I have little hope that you can tackle the requirements of the job.
Having a reply that is correct grammatically tells me that you are through, pay attention to detail, and care about your impressions.  That is the kind of person I want on my team.
Do not use "What's up?" as your greeting...  Ever.  Do not use the phrase "Hit me back." at any point as well.  These also are immediate round file triggers.

So, you sent a reply and now you have an interview.  Sweet!!  Take out any piercings that may be seen as unusual.  Women, take out all but the bottom couple of your earrings.  Guys, if you have those gauges in your ears, you are doomed to working at the coffee shop for the rest of your life.  Way to go dumbass.

Look at your wardrobe while you still have time to shop.  Make sure you have a suit that fits.  This goes for men and women.  make sure to wear something that covers ALL of your tattoos.  If you have ink that shows on your neck or your hands, you will be working at the coffee shop the rest of your life.  Way to go dumbass.

If you haven't worn your suit in a while, get your suit cleaned and pressed.  It makes the creases look sharp, and gives the look that you prepared very specifically for this interview.


Men:
Take a good long look at your dress shirts.  Ignore any shirt that has an obvious stain or discoloration.    The choice of color is yours, but you should go with a conservative white or blue.  Stripes are ok as long as they are subtle, and try and stay away from the pinks and lavenders.  I like these colors, ESPECIALLY with a black suit, but you don't know they type of person you will be interviewing with.  They may have an open mind, but they also have an idea of what a man should be wearing.  They may not find favor with these colors.
Make sure that the shirt fits well.  Fitting well means that it is not billowing out at the waist, or straining at the buttons.  It should form nicely around your body.  If your shirt doesn't, go to a men's clothing store, not a big box store, and buy one that fits you properly.
Choose a good tie, and learn how to tie a proper knot.  They can help you at the men's store.  It isn't difficult to learn how to do, and it is a very important detail to your look.  Not just any tie knot will do.  The knot that you use will be dependent on the type of shirt collar that you have chosen.  A skinny knot will not go with a wide collar, and a wide knot will not look right on a narrow collar.  Again ask the men's store clerk for some guidance.
I don't mind a bit of whimsy in a tie, as long as it was subtle and the knot was properly made.  I have been known to wear little airplanes, little Tiggers, and Batman ties to interviews.  The key is not use the over stated ones, but the ones where the whimsy is woven almost imperceptibly in to the tie.
Here is a great example of a subtle Star Trek tie:

DO NOT go for the skinny ties.  They are not the look that you want for the interview.

Women:
Your job is much harder than the man's.  I'm sorry, and I wish it wasn't so, but this is the way it is.  Women have to run the balancing act of looking nice with out flaunting any sexuality, but, at the same time, come across as very feminine.  Very tough.  The toughest people to deal with when it comes to how a woman dresses for an interview are other women.  I have seen candidates get eliminated because of the brand of shoes they chose to wear.  The men didn't notice but the women did, and they couldn't get their minds off of it.

If I were a woman, and I am not, take that in to consideration if you are...  I would wear a pants suit.  There are too many ways to go wrong with a skirt.  Length, tightness, cut, pleats, on and on and on.  Go with the pants.
Blouse should be business style, again color is up to you, but make sure it is subtle, can't go wrong with a nice light blue, or white.
Be careful of the buttons...  Too few and you won't be taken seriously, too many and you end up looking like you have something to hide, or that you are not a very confident woman.
Shoes...  I don't know anything about woman's shoes, but I do know that too much heel is a very bad thing. Very bad.  Also flats are a very bad thing.
Go for a shoe that has a bit of a heel, and is a closed, rounded toe.  Be sure that the heel is wide, not super thin.  The super thin ones are what got the woman above discarded...

Back to everybody:
Remember that how you dress is a reflection of your personality.  If you come in looking bad, or a detail is overlooked, that is how you will come across as behaving in your personal and professional life.

If the job comes down to two equally qualified candidates the one who presented himself better at the interview will get the job.

If you come in looking nice, put together and confident, you have an advantage over most of the candidates that will be interviewed, who will come in looking like they threw something on at the last moment.

Tuesday, April 24, 2012

Want To Have User Profiles, But Don't Want To Deploy MySites Yet??

Well, you don't have to!!
Many companies are understandably nervous about deploying MySites. BUT nearly every company wants the benefit of User Profiles. However, in SharePoint 2010, a MySites host is a requirement for Profile Synchronization. What to do?

First and foremost, you DO need to provision a MySites host for Profile Sync... It is a hard requirement and there is absolutely no getting around it. However, there is nothing that says you have to publish the MySites links. In an environment where I need to sync profiles, but do not want to deploy MySites, I normally create the MySites Web Application with a host header, then create the MySites host Site Collection inside that new web application. This gives me everything I need to create the User Profile Service, BUT, because I am using a host header, the URL is unavailable to the outside world until I register the host header with DNS.
I can provision my profile import without worry that a user will create a MySite before my enterprise is ready.

"BUT!!!!" Someone in crowd yells, "What about the MySite and MyProfile links that are created in the user's drop down menu?? They will point to dead links, and then users will call me about not being able to get to places that they shouldn't go!! How do I get rid of those links???"

Well, I am glad you asked!! Normally when I need to get rid of, or add, something in a SharePoint menu, I need to create a feature with a CustomAction or HideCusomAction element in the feature's elements.xml file. The scope of the feature would depend on exactly how deeply I want to apply the change to the menu. In this case I would want to apply it from top to bottom, so I would scope it at the Web Application level.
BUT in this case the trusty HideCustomAction element will fail us. We need another approach. No, don't go looking for the welcome.ascx control. It is better to leave that alone, unless you are doing some major revisions, then it is better to replace it all together.

After you provision your User Profile Service, User Profile Service Application, User Profile Synchronization Service (check out Spencer Harbar's site for an EXCELLENT step by step guide to this confusing process... then when you screw that up, Spencer wrote another post on how to fix what is wrong.), AND do your first profile sync, you go back in to the User Profile Application page and click on "Manage User Permissions" under the People heading. From there a little window will pop up:

And you will see that All Authenticated Users have rights to User Personal Features, Create Personal Site, and Use Social Features. What are these?
  • Use Personal Features
    • Contains Memberships, such as SharePoint sites and distribution lists; Colleagues, such as the My Colleagues list and colleagues recommendations; My Links; My Personalization links, such as personalization site pinning; and User profile properties.
  • Create Personal Site
    • Creates a My Site, which includes a personal, private My Home page and a public My Profile page.
  • Use Social Features
    • Includes social tags, Note Board, and ratings.
Unchecking the boxes turns off the links, and you have just provisioned your User Profile Service, but did not deploy MySites!

Thanks to How to SharePoint for images!!

Tuesday, April 10, 2012

SharePoint PowerShell Command Builder

I can't believe that I just found this... Microsoft's SharePoint PowerShell Command Builder. All of the SharePoint commands at your fingertips. No more hunting around for the correct command or the switches that run them. A great tool!!

Friday, March 23, 2012

Need a Connection String?

This handy little trick has helped me for years. I have used it so much and so often, that I forget that it really is almost a "hidden" part of Windows.

So, you need a connection string to a database, AND you would like to test that string before you plug it in to your application. Doing this is actually very easy. First right click on your desktop and create a new text file. Name the file what ever you want, but change the file extension to be ".UDL." This stands for Universal Data Link. Now double click on the file. This is what you will see:

The Provider tab will list all of the available providers installed on your computer. Choose the one you want. In this case we are going with the ODBC provider for SQL server.
The next tab is the Connection tab. This is what you see:

Here, you put in the server name, choose the type of authentication, and select the default catalog. The best part is that little button towards the bottom right "Test Connection." With the simple press of this button, a connection attempt is made using the settings and credentials you have provided. If the test succeeds, you are good to go, if not, well then you know you have a problem.

The advanced tab really isn't that interesting, you can set your impersonation level and other things if the provider supports that kind of thing, but really, it isn't vital to the success of your connection string. The really interesting tab is the All tab.

This tab has all of the settings you can tweak for your selected provider type. If you need to set an Application Type, you can do that here, time outs, Network Address, whatever you need to set here is the spot.
After you have everything set, and the test connection succeeds, click OK. That will save all of your settings. Then right click on the file and select "Rename." Change the file extension back to ".txt" Now double click on the text file. TA-Freaking-DA!!!

There is your tested, working connection string all ready for you to copy and paste in to your application.

Monday, March 5, 2012

Big Things Coming!!!

It seems as if the thing at Microsoft over the past 10 years or so was to sync major updates to their products every three years or so. So, in keeping with this new tradition, Microsoft is releasing a TON of products over the next year.
Take a look a what will be rolling out in the coming months:
  • Windows 8 Desktop
  • Windows 8 Tablet
  • Windows 8 Server
    • HyperV
  • Internet Explorer 10
  • IIS 8
  • Office 15
    • Word 15
    • Excel 15
    • Access 15
    • Visio 15
    • Outlook 15
    • InforPath 15
    • OneNote 15
    • Publisher 15
    • Office 365 Updates
  • SharePoint 15
  • FAST Search For SharePoint 15 (I haven't seen anything on this yet, however I assume that a new version would be released with SharePoint 15)
  • .NET Framework 4.5
  • Visual Studio 11

What do I find most exciting about each of the releases? Well, I haven't really done much other than read about enhancements, and new features, but some of the reading I have done had gotten me excited about many things.

Windows 8 Desktop and Tablet

I am really excited about Windows 8 for Desktops and Tablets. I think that the touch interface is going to revolutionize the notebook and tablet industry. Think about a Tablet, like the iPad that has all of the power and usefulness as a desktop computer, AND has the touch screen usability and app interface that you have come to love. Think of a notebook computer that can give directions and do text messages, yet still has a keyboard for typing documents. It all rolls in to one with Windows 8. I can't believe that Apple did not do something like this amalgamation before. They are the hardware company that builds their own OS after all. But they wanted to keep their OSes separate, and now they will be playing catch up with Microsoft, again.

Windows 8 Server

I am just starting my preview of Windows 8 Server. Right off of the bat, there are somethings that you notice about Windows 8. First and foremost, after you get past the new UI, you notice that there is a theme of Local Server and All Servers. Previous versions of Windows were designed to be islands of functionality. Servers could be linked together, but only as an afterthought. All services needed to be installed on each individual server, and then connections could occur. In Windows 8 the central theme is that there is more than one server that will be joining in the roles that you will be deploying on the server. So on servers that you deploy with GUI are designed to act as central hubs for the deployment and administration of other similar role servers. New is an interface that can report events from several servers, as well as an interface to administer these servers from.
Dynamic Access Control is a new feature that allows admins better control over the permissions inside of your file structure taxonomy. Rules and policies are much more friendly to layer on top of file structures.
There are so many changes to HyperV that I added it as a bullet under Win 8 Server. HyperV steps up with the big boys allowing for large clusters, fiber optic support, and many performance increases. Combine that with Live File Migration and HyperV addresses many of the advantages VMWare had over the Microsoft technology.
Microsoft listened, and stole, all of VMWare's advanced networking features and integrated them in to the new HyperV Virtual Network Switch. In 2008, the virtual switch was introduced to deal with multiple computers sharing a single networking interface. Outside of that, it really didn't do much. Combine it with RRAS and you really had some confusing and difficult configuration on your hands. Those days seem to be behind us with the implementation of port ACLs, private VLANs, per-vNIC bandwidth reservations, QoS, metering, OpenFlow support, VN-Tag support, and network introspection. I admit that I haven't had time to play with all of this stuff yet, but I have been very vocal with Microsoft on the lack of private VLANs on their virtual "switch" in Server 2008. Why call it a switch if it has none of the functionality of a modern network switch? Should have called it a virtual hub. It would have been more accurate.

Internet Explorer 10

IE 10 changes are mainly to incorporate all of the changes to the "Metro" UI that comes with Windows 8. Support for HTML5 is the big game changer, especially with support for Web Sockets. More on that later.
Performance was the name of the game with this release. Microsoft was looking to take down its major competitor, Chrome, and beat it by being the fastest browser on the market. Did they do it?? No. I don't think so. I'll test again when the RTM version is released, but the latest beta isn't nearly as fast as Chrome.

IIS 8

I am primarily a web guy and the first thing I did when I installed Windows 8 was to add the IIS role so that I could get a look at IIS 8. On the surface, there isn't a whole lot of difference. However if you do a lot of work with large site deployments, or if you host a good number of sites, you would definitely notice a difference!
The biggest change for "normal" users of IIS, the ones who run in house corporate intranet or SharePoint deployments, is going to be Application Initialization Module. Ever since the first version of the .NET framework users have complained that the first time the hit an ASP.NET site it takes forever to load. This is because a bunch of things happen behind the scenes to make the web site work. Check Just In Time compilation if you want to know more. (This should get you started)
This delay is supremely annoying, and the worst part is, the more complex the application is the longer the wait. Add that wait to all of the supporting services and applications, and the first time a user hits a complex site,like SharePoint, they could be sitting for quite a while. With IIS 8, Microsoft has finally solved the problem. Applications and sites can now be set to always run, essentially never allowing the worker processes to expire, and automatically starting up if the IIS services are restarted.
This is a big deal, and one that has to be undertaken with careful planning. One of the major reasons for JIT in .NET is to save on resources, and if you set all of your applications to always run, you will waste resources on applications that don't necessarily need to be running.
If you do a lot of work with SSL and certificates then you will be happy to know that Microsoft has done quite a bit to aid you with SSL. SSL can now use host headers so that multiple SSL sites can be run over the same IP address. IIS 8 also has a feature, called Central Certificate Store, that will allow you to store certificates in a centralized place, allowing for easier deployment as well as easing use in a cluster.
The last big change is for companies that have a lot of sites, and each site has a lot of custom configuration. This custom configuration of many sites makes the IIS XML configuration files, such as applicationHost.config, grow to be very large files. These large configuration files caused IIS to start very slowly and, in some cases, could even cause IIS service to time out during start up. IIS 8 is designed to load these large configuration files easily and quickly, making this particular problem a thing of the past.

Office and SharePoint 15

Not a whole lot is known about the next version of Office and SharePoint. Many things are speculated, but only a few are known for sure. For sure SharePoint 15 will have an "App" store. This means that companies can release "Apps" for SharePoint. This will allow users to connect directly to SharePoint via the Windows 8 "Metro" interface without having to go through a browser. I am interested about this particular piece of SharePoint 15, especially how it will tie in with the already familiar web interface.
Information Rights Management will FINALLY be a first class citizen in SharePoint 15, and will deploy as an Application Web Service. With all of the document retention and record center stuff put in to MOSS 2007 and SharePoint 2010 IRM should have been integrated in to SharePoint many years ago, BUT I guess Microsoft was too busy creating the ribbon interface to bother with something so obviously needed in ANY records management system. Sheesh.
Because SharePoint is being used more and more as a Knowledge Repository, a new module will be released that will make SharePoint a true Learning Management System. There are a TON of LMS out there, and I find it odd that Microsoft is only now trying to get in to the market. The real interesting thing to see will be if the current LMS companies will embrace SharePoint and move their functionality over to it, or if they will see SharePoint as a threat and attempt to compete with it.
It is also widely speculated that SharePoint 15 is being built on the 4.5 framework. I'll get in to this a bit more below, but with the 4.5 framework's heavy emphasis on HTML 5, could it be possible that Microsoft thought ahead and built SharePoint 15 using Web Socket technology??? That would be super cool!!

Not a whole lot is known about Office 15. What is known for sure is that all of the office apps will be created to actively interface with the "Metro" UI. That means that their UI will specifically be developed so that you can use the applications with just your fingers. I don't know if this will do away with the ribbon, but it just might.

.NET Framework 4.5

Lots of really cool updates to the .NET Framework 4.5. Of course 4.5 will support the creation of Windows 8 apps and the Metro UI. I don't think anyone used Microsoft Touch to do anything at all, so it should be a relatively new API to play around with. New to us anyway.
The Managed Extensibility Framework (MEF) becomes a first class citizen in the new framework, moving up from an add on in framework version 4.0. (check this out for information on MEF)
Changes to ASP.NET surround HTML 5. This makes sense, as IIS 8 now supports HTML 5. I see what you did there Microsoft... Very sneaky!!
The last super cool thing in the 4.5 framework is additional support for parallel computing. I haven't done any work with parallelism, but I have always been intrigued by it. Check out this blog for the skinny on what is new in the 4.5 framework

Visual Studio 11

With the release of a new framework, a new OS, a new UI, AND a new version of SharePoint, there must be a place where developers can create all sorts of new stuff for them. In short a TON is new in Visual Studio to accommodate all of the new developer stories for the new products. I really don't want to list them all here, So you can go here to check out all the cool new stuff.

It's a brave new world out there, and, if you are smart, you will begin to look in to how you can learn about the new stuff that will soon be in great demand. I am just upset that I will have to take all of the tests over again... Maybe I will wait a year or so this time... but I know I won't...

Tuesday, January 10, 2012

Working From Home

I do a lot of work from home... In fact the last several contracts I have had I have worked out of my home office. Before that I worked for a company 400 miles away as a remote employee. All told I have about two years of experience working from my home. It is an interesting situation, and I am going to outline some of my personal findings.

Who Can Work From Home?

Working from is a very strange dynamic. If you want to work from home first and foremost, you MUST be a self motivated person. You have to be the person who does not need outside accolades to keep you moving. The completion of a job and self excellence must be your major motivators, or you will not succeed working from your house.
You have to be the kind of person who is OK with being alone for very long periods of time. In the same vein, you have to be the type of person who doesn't mind that the only people they interact with in person are their family members.

Loneliness

When you work from home, loneliness is a constant theme in your life. When you work in an office, there are always people around and things to do. If you get crazy and just want to goof off for a bit, you can always find someone to talk to for a bit, or you can find someone making coffee, or you can just do something other than work. At home, your distractions are much more dangerous, and there is nobody around. When you get up to do something besides work, there is nobody around. Nobody.
You miss all of the daily things that happen in people's lives when you work from home, however you will know that these things are happening through your normal office email. You can't see Bob's new car, but you will be invited to take a look at it at 10am today!! You won't taste Marry's famous lasagna, but you know what room your coworkers are eating it, and you will see all of the thank you and accolade emails that come afterward. You won't see Jon and Sally's new baby that they brought in to meet everyone. And you certainly won't go to HuHot for Jenifer's birthday. You won't be there.

Out of Sight Out of Mind

If you are set on moving up in your company, you will want to avoid Teleworking like the black death. Even the lazy guy in the mailroom will get more exposure and face time with the bosses than a Teleworking employee. You aren't there. Everyone forgets you even existed. When the bosses are thinking about who to give that new kick ass position to, they will not be thinking of you. Even if you turn in your work on time, and it is awesome, you will not be considered.
This goes for the cherry new projects as well. You aren't there, you won't be called in to the spur of the moment meeting where the project suddenly gets assigned. The only meetings you will be a part of are the ones where you are scheduled to attend and they actually remember to call you.

Dangerous Distractions

Home has the most dangerous distractions. That is where your TV is. That is where your bed is. That is where you keep all of the stuff for that hobby that you love so much. All of that stuff is just a couple of steps away. A distraction at work, is still at work. It doesn't really distract you for long. A distraction at home, will suck away at your time for hours.

Unrealistic Expectations

People, especially managers, will expect more out of you because you are working from home. It is important that you manage expectations so that you can deliver your work on time and with consistent quality.

How to Succeed Working From Home

It sounds stupid, but it is very difficult to do. To succeed working from home, you have to treat your home office like you do your office at work. You have to treat your work time specifically as WORK time, and you have to let your self off of work at the proper time as well. It is just as easy to work too much, when you work from home, as it is to work too little. An example I give is that I used to get up in the morning at about 6am, work until about 7am, go work out, come back home start working again, break just long enough to make a sandwich, work until my wife got home at 6pm, hang out with her for a while, then go back to work from about 8pm to 10pm or later then go to bed. On the weekends, I would get bored, and work for several hours. In the end I was working 80 hours or more a week. That is not good for you.
This is what I did to keep sane while working from home:
  • Create a set work schedule, just as you would in the office. Show up on time and LEAVE on time.
  • Constantly send emails and instant messages out to managers and project leads to make sure I was working on what needed to be worked on, and that I was kept in the loop with all decisions.
  • Cut out all dangerous distractions while at work. Treat work time just as I would in the office. If you have kids or pets, they have to go on the same schedule as they would if you were in the office. They are very dangerous distractions.
  • Time and expectation management is vitally important. Give yourself enough time to do your projects working a normal 8 hour shift. Manage expectations with management to make sure that they are not asking more of you because you are working from home.
  • Make time to do something outside the home at some point during the day. In other words, take a lunch. Go talk to somebody. Go do something. Personally, I go to my gym everyday. I have a group of guys that I work out with, and that I can talk to. It gives me some personal contact and keeps me sane.
  • Embrace the fact that you will not be there for the little things that happen in the office, however make an effort to go to the events that you are invited to for the major events. Birthdays of teammates, office project celebrations, retirements, new employee get to know you lunches, these kind of things help you keep connected to your office and keeps you in everybody's mind.
  • Treat your work time just as you would if you were in the office. If you have to run an errand, let your boss know, just as you would if you had to leave the office.
  • If you are sick, take a sick day. Don't work on the days where you wouldn't go in to the office. Not only do you let your body recover, you let your soul recover as well, and you will turn in your best work.
  • Keep the same grooming habits that you had when you went in to the office.
    • Get up, and take a shower
    • If you shaved everyday going in to the office, shave everyday.
    • I know that women may have an elaborate makeup scheme that they would do for work, you don't have to go that far BUT you should do the minimum makeup. If you have to go somewhere during the day it will cut down on your "get ready" time, AND you still want to keep a routine that prepares you for your work day.
  • Get dressed for work. Do NOT start working in the clothes you wore to bed. Get dressed. It can be more casual than what you would wear in to the office, but get dressed. You want to create some separation between your home life and your work life and getting dressed is a BIG part of it.
Working from home can be very rewarding, but there are many pitfalls. Know that if you fail in your teleworking arrangement, it won't be just you who suffers. One bad apple will spoil teleworking for everyone. Supervisors and management HATE teleworking. It is understandable, as they are controlling type of people and teleworkers are very difficult to control. I have seen entire teleworking programs get scrapped because of a single person who took advantage of the freedom. Do the right thing by everybody and recognize that if you can't resist the dangerous distractions, STOP teleworking.

Allowing remote employees is also a big plus for companies as well. The biggest advantage is that when you are hiring for a position, you no longer have to worry about talent in your specific geographical area, rather the entire world is available for your hiring. Of course, there are time zone considerations to think about. If you are on the east coast and your employee is on the west coast, contact and meeting times have to be specifically mapped out.