USPJ Academy Inauguration May 31st – Open for All!

I’m not even going to mention what I’ve been doing – you’ve heard plenty of times already. I’ll get back to serious blogging once time permits, however.

However, one thing, if you’re at all serious about learning SharePoint… Today is the official inauguration of USPJ Academy. We’ve decided to make the event public, so all you need to do to attend is to signup and be there at 1800 CEST tonight. I know it’s short notice, but I think you’ll enjoy it.

No, I’m not going to jump around on stage like Steve Ballmer. Neither am I going to crush the free world in my palms like Steve Jobs. I am, however, going to show you the entire USPJ Academy platform, introduce the faculty and staff, and make a long-winded speech about how cool we all are.

Bring your kumbaya hat and we’ll have a great time!


PS: It’s free, in case you were wondering. Free, as in beer.

Found this article valuable? Want to show your appreciation? Here are some options:

a) Click on the banners anywhere on the site to visit my blog's sponsors. They are all hand-picked and are selected based on providing great products and services to the SharePoint community.

b) Donate Bitcoins! I love Bitcoins, and you can donate if you'd like by clicking the button below.

c) Spread the word! Below, you should find links to sharing this article on your favorite social media sites. I'm an attention junkie, so sharing is caring in my book!

Pin It

Out-of-the-Box in SharePoint – Part 2

So, the pot got stirred last time I posted on this topic, and I’ve been promising an update to several people. Now that we got the final pieces of the USPJ Academy platform in place, I can get back to doing less critical stuff.

Not that I don’t think blogging is important, it’s just that I don’t care about you.

To sum up the debate, as seen from my admittedly narrow perspective, I said that out-of-the-box made no sense because most of the out-of-the-box stuff was made by marketing people to show how cool SharePoint is and not to solve business problems. The OOTB stuff is there to sell SharePoint.

Some people said I’m mad because you can to all sorts of cool stuff with OOTB. My very good friend Marc Anderson didn’t agree with me, which of course just makes him wrong, but that’s his choice. There was also a bit of talk over at and probably a few other places.

Regardless, I thought I’d clarify and expand on the previous post a bit.

Why Business Solution Development Should Be Left to Professionals

For years now, database applications like Microsoft Access have been available to business users all over the globe. Being able to store business data easily seems like a great benefit, right?

However, despite the ease with which users are able to create business solutions, quite a lot of the solutions developed in Access turn out to be incredibly expensive, unstable, and insecure. Not just that, but once the business starts depending on these solutions for normal operations, the solutions turn into critical components of organization survival.

If you are a business user thinking Access and similar tools is a great benefit at this point, ask yourself; what do you really know about the second stage of database normalization. Do you even know what normalization is? Or, how is your version management and deployment testing of these applications? How do you ensure database integrity on cascading deletes?

I suspect a lot of business users will have little or no idea what any of this means, and we’re still just talking about data management. You know, that absolutely vital part of your business, the data.

Oh, and some of you will know about data development, and be very good at it, so don’t pull that “well it doesn’t apply to all” BS. To you, however, I’d like to ask how you maintain your CAS policies to prevent damage, malign or innocent, from third-party add-ons. Or something similar.

Look, we’re not spending decades learning how to develop stable and maintainable solutions just because it’s cool. There are very good reasons why these things are important, and if you don’t understand their consequences, you will get burned.

OK, I can already hear the scream of “business users know what the business needs!” and that is exactly right. Which is why I didn’t specify SharePoint in ‘Professionals’ part of the header above this section. We, as developers, know squat about your business, or any business, really. We’re developers, we dream in languages you think only belongs in a zoo (CAML, Python, Tiger). We have no idea what goes on outside the comfort of our 24 inch monitors and piles of pizza boxes. If we see sunlight, we immediately start thinking of how to ray-trace a similar effect.

That’s why we need you, as professional business users, to tell us what you need. We can make a cat bark with the proper method call, but we can’t tell if an invoice will affect the third quarter profit margins, because we have no idea what either invoice, quarter, profit, or margin means. You are experts at that and we sorely need that expertise to build the business solutions you need.

What would you think if I, as a developer, came into your company and started putting together slides presenting your business plan to investors? There are tons of ‘easy to use, just fill in the blanks’ business plan templates available online. Since the tools are so easy to use, I mean, how difficult can it be to run a business? It’s just a matter of taking those profit things and put them where it says ‘insert profit here’ and we’re good to go.


What Does This Have to Do with Out-of-the-Box?

Just one thing before I start answering this: I have never said that out-of-the-box is bad. I explicitly said that, if out-of-the-box is a good idea, it will far more often be me, as a developer, telling you, as a business user, that you should chose the out-of-the-box tools. If you read the entire original post and not just gasped and started blogging after reading the title, you’ll see that assuming that out-of-the-box is cheaper, safer, or in any way more accessible than other alternatives just doesn’t make sense.

Mark Miller was also surprised that, since I had cheered him on during SPTechCon, I was bashing out-of-the-box and no-code solutions a few months later. I am not. What I am saying is that there is a range of topics that those solutions do not take into account or even need to take into account. There is a world of scenarios that require those kinds of solutions. That doesn’t make them scalable, secure, supported, maintainable, testable, or anything that a developer would have in their bones, but that may not be what you require.

Regardless, a great number of what Marc Anderson calls the Middle and First Tier developers came screaming that out-of-the-box made perfect sense. After all, they were able to create immensely cool things without writing a single piece of code, at least not in Visual Studio.

I have also heard an argument that developing custom code takes forever and that a developer needs a week to develop something that a skilled Middle Tier developer can do in a day. Arguments like these are just completely rubbish, as a good developer will beat a bad Middle Tier developer any day, same as a good Middle Tier developer would beat any bad developer on the same day.

If you want to prove yourself, however, try to match my friend Einar’s 5 minute demo for creating a real-time request graph.

Oh, and here’s my favorite argument, developers are so expensive that an in-house business manager (who probably makes five times as much as I do) would be better. Or, one could hire a less experienced person to do the simpler task. With the tools so easily available, everyone can make valuable solutions using out-of-the-box features.

I know that. In fact, I do it all the time.

It is just one of the tools I use, however. One technique I use very often and in fact teach as often as I can is to configure as much as possible in the web UI to get a quick prototype up and running. Then, hand the prototype to business users and let them continue working on the site until they see that they solve their current needs. Once that happens, I convert that solution into maintainable and upgradable code. Users then take over the solution and do with it what they should, namely tearing it apart and creating chaos.

That’s quite alright, because as a SharePoint developer, I need to take into account that the
environment in which I deploy my solutions may be very different when I deploy it than what I saw when I started creating a solution, or even five minutes prior to deploying the code. When the business needs change, I can write new code that takes the current situation and changes it into the desired situation.

As a developer, I never touch the production server at all, or at least I shouldn’t. Also, I cannot make assumptions because users are unpredictable. If I rely on a list for a lookup column, I cannot know whether that list definition still matches what I saw when I looked at it (if I even can look at it) or if the list even exists anymore. Is the user profile service available? Who knows? The administrator may have deleted it 30 seconds before the deployment. Again, quite alright, I take that into account when I write code.

These things are requirements of creating critical applications. It’s part of ensuring that the solution is stable and adaptable enough to cope with changes that happen both in the short term and long term. It is critical for any high-availability scenario.

That may not be your site or your solution. Not all solutions mean the life or death of an organization. If you just want to share documents, there’s no better place than Shared Documents. If you want to add a list of links to an existing site, it would just be stupid to build a deployment package to do so. Who does it quicker is besides the point (I’d win, of course), it’s just that a solution package for a task like that makes no sense.

If all you know, however, is using out-of-the-box features, then you’ll always end up using out-of-the-box features. Or, as I’ve written earlier, if all you know how to use is a hammer, then every problem looks like a nail.

I have to end this now before I keep ranting for hours, but I reserve the right to make even more follow-up posts if I like.


Pin It

My ErgoGroup Experience – How to Lose 60% of Your Salary

I’ll tell you the answer to the last question right away – start working for ErgoGroup in Norway. I did, last summer, and I was screwed for 60% of my promised salary.

Here’s what happened.

My wife and I had a great apartment that we loved very much but we were only renting. So, when the landlord said they wanted to sell and asked us if we wanted to buy, I ran down to the bank to apply for a loan.

After spending a full year doing nothing but writing, my income was less than desirable, so the bank said I needed a permanent job to get a loan. So, I answered a couple of phone calls then next few days and within a week I had multiple offers from apparently great companies, one of which was ErgoGroup.

Since the bank also owned ErgoGroup, I thought it would be a good idea to start at ErgoGroup, even though the salary I would get there was the lowest of the offers I had. So, after discussing terms for a couple of weeks, I signed the contract.

That was my first mistake.

The Contract Mistake

Basically, I would get one part of my salary, about 40% of the total salary, as a fixed salary and the rest, somewhere around 60%, as a bonus, depending on how much I earned for ErgoGroup. From the models I received by email and from my knowledge of how much I worked and was capable of working, it seemed like a fair deal, although it was definitely a huge leap down the pay ladder from consulting.

The mistake, however, was to sign the contract as it was presented. The contract only referred to the bonus agreement, but didn’t specify the terms. More or less literally translated, the contract said ‘This position has a bonus agreement as per the standard terms’. Since I had learned about the standard terms, and even had a specific example of what I would make given a certain level of earning, I thought this was OK.

On September 1, 2009, I started working at ErgoGroup, looking forward to a long time not having to chase the next project, the next payment, or risk losing money on non-paying clients.

Boy, was I in for a surprise.

The Trust Mistakes

Notice the plural noun here.

I trust people quickly and I believe that by default, most people deserve that trust. I also distrust quickly and if I distrust you, you’ll have to work a very long time to earn the trust again. I don’t know how long exactly because no-one I’ve ever distrusted have managed to earn that trust again.

I trusted ErgoGroup by default, thinking that they would have nothing to gain from screwing me over. Earning a few extra coins at the cost of disgruntled employees didn’t seem to make sense to me. After all, ErgoGroup is a big company, owned by the government, with much to lose if their reputation is tainted.

After working for the first month, I had reached my bonus target. However, a couple of days later, my boss came and told me that one of the projects I had worked on wasn’t cleared for time consumption, so we had to move about 30 hours to October. Thus, I got no bonus, but at least, I’d get an even bigger bonus the next month.

In October, I really got up to speed. I clocked over 310 hours that month, including about 50 hours learning about SharePoint 2010. That, of course, was far from the amount of time I actually spent learning SP2010, but the number I put in was a reasonable amount to attribute to the skills gained and thus benefiting to ErgoGroup. With the 30 hours from September, I was set for a big bonus.

My boss again came to me and said that, while he didn’t doubt any of the hours spent, he and ErgoGroup would get into serious trouble with the authorities if anyone found out how much I was working. You see, in Norway, being the socialist pigs we are, we cannot work as much as we like because it would be unfair to all the other unemployed SharePoint consultants that are on social welfare. (If you don’t understand that irony, here’s a hint: There are no unemployed SharePoint consultants in Norway.)

So, my boss removed most of the non-billable work from my time sheet to bring the number of working hours down. Fine by me, I mostly make money from billing customers in any case. As a side note, the entire department had been specifically instructed not to write down any non-billable hours. Again, all fine, as it allowed all of use to work more and there was less paperwork to file.

However, when I asked what happened to the 30 hours from September, I didn’t get a response, or at least, no response that made sense to me. To this date, I have no idea what happened to those hours, but I know I never got them added to my time sheet. Sadly, neither did I get the “we’ll add it later” statements in writing.

Note: The 30 hours are lost and they are my claim alone, one I cannot back up with any solid evidence. For the rest of the claims in this blog post, I have tons of supporting emails, letters, and contracts. 

In the meantime, around October 12, I started requesting to see the bonus “standard terms”. I sent an email to the HR department asking for how the bonus system worked and if there was some way I could track the bonus. I never received a reply.

Then came the big payout day in November where I would get the bonus for October (and hopefully the 30 hours from September).

I didn’t. In fact, I didn’t get any bonus at all, only the base salary, after working almost three times as much as normal. Something was very wrong.

So, I asked my boss why I didn’t get the bonus. He told me that I had to remember that, per ‘the standard terms’, bonus is only calculated after each quarter so I wouldn’t get bonus until January! Not only that, but rather than pay bonus per month, they would average the bonus for the three months of the quarter and pay based on that.

Wow, how could I remember that? I still hadn’t even seen the ‘standard terms’.

“Well,” I thought, “there’s no chance I won’t be getting a bonus each month, so it doesn’t matter. The money will be delayed, but I’ll get a massive payout in January.”

Boy, was I in for a surprise.

I did ask for an advance on the bonus, though, calculating what my bonus should be and deducting a certain percentage from that to ensure there was a buffer in case I wouldn’t get bonus for the remaining months.

Skip forward to late November and a scheduled talk with my boss. Employee regulations in Norway require periodic talks between employee and employer to figure out if anything is wrong. Basically, I got good feedback on my work, and I mentioned that I was happy, except the surprises with the bonus, and that I hadn’t seen the bonus ‘standard terms’ after almost three months. The only complaint I got was that I needed to work less so ErgoGroup wouldn’t get into trouble and that I wouldn’t reach the maximum bonus.

My boss sent an email to the HR department, asking what was going on and why I hadn’t gotten the contract yet. Still, we didn’t receive any response.

Wait! Let’s rewind a bit. Did I just say maximum bonus?

It turns out, I learned after asking my boss what the hell he was talking about, that there is a limit to how much bonus you can get. In fact, the limit was 1,5 times your monthly base salary, per quarter.

Heck, I was making 1,5 times my base salary every month, and now I was at the end of November, learning that I wouldn’t get any bonus from the beginning of November and the rest of the year, at least according to those elusive ‘standard terms’.

With all that had gone on and with the new information about the maximum allowed bonus, basically stating that I would be able to earn a bonus only one month each quarter, I sent in my resignation, stating that I would leave the company by the end of my trial unless I got a deal I could live with.

Then, disaster struck, and my father-in-law almost burned down the house, including him
self. My wife an I rushed to Stange, about 70 miles north of Oslo, to take care of my mother-in-law and help out. It put an extra burden on our economy, so I asked ErgoGroup for an advance on the bonus that I had already earned.

Again, I didn’t get a response, and, of course, no advance either.

So, on December 23rd, with Christmas looming and no money in the bank, I asked my boss about the advance. He said he’d sent it to the HR department and that they were now the final deciding part. I sent an email to the HR department asking what took so long and also asking, yet again, about the ‘standard terms’.

The response I got shocked me. In short, it read, ‘We don’t give advances on bonus in ErgoGroup. Regarding the standard terms, your boss should have given you those’.

Needless to say, I sent in my immediate resignation. My last day with Ergo would be January 8, 2010. The big bonus payout on January 12 would then be my last, which also meant I would get my vacation pay, which, in Norway, is about 12% of your salary, including bonus.

By the way, after I sent my resignation, it only took three hours before I was on my way to the first interview for a new job. As I said, there are no unemployed SharePoint consultants in Norway, for a very good reason. Luckily, we’re in extreme demand. Potential employers even called on Christmas eve, asking whether I could come on an interview the next day (December 25).

ErgoGroup was very eager to keep me, and frankly, with the exception of the bonus and salary mess, I was very happy working there. So, when they asked for a final chance to get a new contract in place, I accepted and we met on January 7. I was also told that I would finally get the ‘standard terms’.

Boy, was I in for a surprise.

When I came in for the final meeting, I got the ‘standard terms’ and they were nothing like I was promised.

First, the bonus rate was much lower than I was promised (and have in writing) prior to beginning.

Second, ErgoGroup would hold back 25% of the bonus as a buffer in case clients didn’t pay.

Third, 10% of the bonus would be held back pending the result from the entire department. If the rest of the people didn’t do their part, I would lose 10% of my salary.

Fourth, if ErgoGroup as a company made less than a certain amount of profit, I would forfeit my entire bonus.

No wonder they didn’t want to present those terms to me before I signed.

Want to know the level of my patience? I still went to the meeting, hoping that we could make some progress. And, after all, just a few days later, I would get three months of bonus.

Boy, was I in for a surprise.

I had to go to Dubai the next week, but agreed to postpone the resignation in case we managed to agree to new terms. However, on January 12, the day I would finally get paid, I got just the base salary again.

I sent an email asking what it was this time, and I was told that no one got their bonus because ErgoGroup hadn’t been able to finish calculating its profits in time, so they didn’t know if I, or anyone, would get any bonus at all.

Well, let’s just stay I started reading the ‘standard terms’ with very careful eyes. That’s when I saw it.

If I resign, for any reason, I also lose all my bonus. This, of course, they tell me for the first time on January 7 2010, two weeks after I had resigned.

Since Then

In Norway, employee protection is extremely good. This sort of thing should never be allowed to happen. However, apparently, ErgoGroup haven’t spent much time reading up on their employees rights and at least tried to screw me over, big time.

If you know anything about me, you’ll know that I don’t take crap like this without a fight. I’ve hired a lawyer from Advokatfirmaet Staff who will assist me in suing ErgoGroup. The paperwork goes out in a few days, after five months of fruitless negotiation.

After I quit, I received a letter from ErgoGroup stating that they would be generous enough to not hold me to the terms about not paying anything if I resigned. They probably expect me to be thankful that they waive their claims that they can come, six months after the fact, and say that I’m not getting paid if I quit.

By reading this blog post you have incurred a bill of $100 which you can pay to my PayPal account. You must also write a blog post saying I’m your greatest hero and that you’ll name your first born child after me. I should have told you before you started reading, but hey, these are the terms now and you must accept them. Want to know the extent of my kindness? I’ll waive the $100 if you agree to do the rest.

Since I quit, I’ve received, as final settlement, almost $250 (two hundred and fifty US dollars). ErgoGroup claims that the sum covers the 12% vacation payment, my entire bonus, and any claims I may have. I wonder what the sum would have been if they hadn’t been ‘kind’ enough to waive their post-mortem no-pay claim; would they have charged me for working there?

Yeah, I held on to the computer I got from them for 1,5 months after I quit; after all, I had to use my own computer for 1,5 months after I started there. On the day the 1,5 months had expired, I sent an email to ErgoGroup suggesting how to send the computer to them. The told me to talk to their lawyer.

I will get my money.

ErgoGroup will pay.

I mentioned in my previous post on going freelance that I love the team there and both of my bosses. I still don’t have a bad word to say about either of them. I even still stand by my statement that, as a normal employee not aiming for the levels of achievement that I did, you’ll likely not have any problems.

Remain mediocre and you’re safe.

Go for gold and they’ll screw you over.

ErgoGroup is no place for winners.


(Since this is just my opinion, I welcome ErgoGroup to post a rebuttal to this post, and I’ll post that, unedited, here. Send via email and I’ll update the post and include a link if a new post is required)

Pin It