Saturday, April 21, 2012

The problem with small companies

Up until the start of this year, I have been working for small consultancy companies.  While I have always enjoyed the flexibility of this environment, I have never really had strong exposure to large organisations until now.

The company I work for has been acquired by a much larger organisation, meaning that I am now part of a big company.  It’s been three months since the acquisition, and while the transition is still taking place, I am already noticing a shift in my thinking.  I would like to share this with you, and maybe add on to this post as more differences are identified.

Before I continue, I just need to add that the points below are not necessary points from the company I work in.  I have been in this industry for a long time, and have built relationships with all kinds of people in different positions and companies (including my competitors) and have managed to pick up some consistencies and facts worth mentioning.  Some of these points are negative, which is why I believe people are afraid to talk about it, but I also believe that these points are too important to keep to myself.  I hope you enjoy.


Small companies NEED work to pay salaries

As a small company, your biggest expense is salary.  If you don’t get enough work, you don’t have a good enough cash flow to pay salaries and other debts.  So, as a small company, your number one objective is to get that sale, no matter what!

“No matter what” may be a bit strong, but there is a lot of pressure to get that sale, and as a small consultancy company that specialise in Microsoft Web Solutions, you will know that competition is tight, and to make things worse, its tight against other small companies who also NEEDS the sale to improve their cash flow.

So what does this mean?  Small companies in a highly competitive market tend to over promise, and cut down prices to secure that deal.  After all, a little revenue that can make you break even, is better than no revenue, right? 

As a larger company, the cash flow is not a problem.  Salaries are paid by HR and no matter how much sales you get, you can rest assured that the salaries will get paid.  This does not mean that we can rest on the sales component and do less work.  No, while we still have the responsibility to be profitable, and to meet certain sales targets, the cash flow component is not 100% dependant on the sales we get. 

This is great, better cash flow provides more options.  More cash can be dedicated to infrastructure, training, staff morale and a few other perks that was not available as a small company.

Large companies are more focused

When you are responsible for a division of a small company, you are in charge of every single thing related to that division. You are fully involved in the hiring, the training, the social events and not forgetting the actual service delivery. 

When you are part of a large company, many of these tasks are “outsourced” to other divisions of the organisation that specialise in these things.  Things like social events are no longer your problem, your involvements in the hiring are training are also drastically reduced, allowing you focus on the things that are important – your service delivery.

And even on the service delivery side, you can focus on a specific service (like only SharePoint projects) while another division can focus on other services (like ASP.NET projects).  This focus provides huge advantages on the delivery quality side because your focus and training and strategising is focused and on a specific service, which is a huge adjustment when compared to small companies.

Small companies try to have as little staff as possible that can do as much as possible, or alternatively, they get a lot of junior staff that they task with more senior work (preferably mentored by a senior), either way, the objective is to keep their biggest cost down, the salaries.

Now in order to keep salaries down, and yet be able to deliver on whatever sales has over promised, small companies need staff that have a variety of skills, they don’t have to specialise in anything just be able to know a variety of things well enough to come off as a Subject Matter Expert and be able to Google the rest.  This sounds cruel, and may be a bit exaggerated, but sadly, not by much.

Small companies are more flexible

Being part of a large company, I must say that the processes for action and decision making are stricter and even a little longer.  There is a lot more paperwork that one has to go through to achieve the results.   It makes sense when you consider that there are more people involved, meaning that more can go wrong if we are working in a more chaotic state.

In a smaller company, you can get away with it because you usually have full control of the situation.  This lack of processes allows you to deliver faster but it also means that more can go wrong.  In the Microsoft Service Delivery space, clients are placing a high priority on speed so the smaller companies will have a big advantage here.

This “advantage” leads to another point.  Smaller companies are willing to accept higher levels of risk.  The faster delivery comes at a cost, and that cost is increased risk because processes are not strictly followed.  When you are part of a larger company, especially a listed company,  you have a greater responsibility to deliver well, after all, somebody’s retirement fund may be indirectly dependant on your performance, and because of that, a more risk averse approach is necessary.

Large companies has more available for less

As a small company, I have an internal design team that I use primarily for website designs, then team is skilled in designing marketing material like posters and banners, but whenever I get that type of work, I have to outsource the printing component to a printing company who charge normal market rates.  The same goes for software licencing and acquiring hardware.  While these services greatly complement my service delivery I just don’t have any skills, experience or equipment to deliver on this (and I don’t plan to build on this, because the demand isn’t there) forcing me to find alternative companies to assist me, who will offer there service at full price.  Over time, you can build a relationship with these 3rd parties and get the price reduced, but you get the point I am trying to make.

As a large company, these complementary services are more easily accessible (chances are, there is another division in the company that provides that service) and the cost is less because these divisions has built great relationships with their supplier and the work is not outsourced to a 3rd parties.  This allows the large companies to deliver more with less dependency on others and less cash.

This advantage goes beyond service delivery.  Benefits such as medical aid, RAF, etc.  are now available at better rates.  As a large company, you have more buying power with these insurance and medical aid companies and can form better relationships when compared to smaller companies resulting in better rates and cover.

Conclusion

Right now, I am very positive on what large companies can offer.  I say this from a point of view of a client looking for a service from a outsourced company or as a skilled individual seeking employment.  

They seem to tackle most of the disadvantages that exists in smaller company’s very well, especially the cash flow problem.  While the cost of this is stricter processes and longer turnaround time, this does create a more governed or less risky environment.  I also like the fact that the service delivery is more focused, thus resulting is higher quality output. 


UPDATE : The feedback I am getting on this post indicate that many think that I am wrong in my findings (something about be identifying common problems and not necessary the difference between small and large companies), this may be true, since I have only been part of the large organisation for about 3 months now and may be jumping to conclusions here.  So please think of this as my initial findings, and if my point of view changes, I will update this post - Thanks.

Saturday, March 10, 2012

How to write good technical documents


Developers love to code and hate to write documents, but documents are important in IT.
 
We need documents to define how the solution will be built so that coders who enter the scene later in the project can easily catch up.  We need operational and training manuals so the people who are looking after the solution are aided in doing it right, we also need numerous project management related documents but today, I want to focus on those documents that are more technical in nature, and somehow ends up on the coders lap, who usually has no idea how to handle this responsibility.

Firstly, let’s start off by saying that document writing is a skill; it’s a valuable skill that coders should embrace rather than avoid.  It may take you away from your comfort zone, but building this skill alone will helps you advance your career to the next level.  So give this responsibility proper attention and you will see the rewards.

But how does one write good technical documents?  Project managers tend to give this responsibility to coders without guiding them.  It’s a common mistake, and I hope this post will provide the guidance you need.

Get a template

The first thing you should do when given this task, is ask for a template or a similar document from a previous project.  If your company has a good capability maturity, then these templates should be easily available.  If you work in a company that is less mature (or a nastier way to put it, “more chaotic”) and you will need to build the document from scratch.  Its more work, but don’t freak out, the main purpose of the template is to provide a tried and tested format, that’s it, you should not see a document from a previous document as an opportunity to copy and paste 70% of the work, that’s messing up the quality of the document and you are robbing yourself from the opportunity to build up on your document writing skills.

So yes, you need to have a format of the document.  If the document is well formatted, it will be well organised so it’s easy to read and easy to understand.  If your company does not have templates for you, there are plenty of templates on the internet; many of them are free so you may want to go there for a little help in getting started.  Look at multiple documents, and come up with an outline that works for you.

Know your audience

As a coder, it is natural for you to use IT jargon in your everyday language, you talk to other coders in that language, and they understand you and respond appropriately.  When you approach a non-coder and communicate with them, you make that extra effort to use words that “normal” people use so they can understand and respond appropriately.  Writing a document works on the same principle. 

So if you are writing a technical document that will assist other coders in installing that brilliant add-on you created, you can keep the IT jargon.  But if you are building a document for managers or end users, then cut down on the jargon, use simple English and add think about adding a few more pictures like screenshots or wireframes, they love that.

Why is this document important?

Ask yourself what value you are adding, by creating this document.  What’s the purpose of this document?  Once you have an answer to this question, you can draw of a draft and then ask yourself if this document is achieving its intended purpose.  If it is, you on the right track.

Gathering Information

Make sure you have collected all the information and facts needed for the document, use the template to assist you in what type of information you need.

Gathering information may involve digging in the code built by you or other people, but don’t forget to ask other people for information as well, it may be quicker that figuring it out on your own.  Even communication is a skill, it’s a skill that many coders avoid, and this is a good opportunity for you to step away from your comfort zone and work on those skills.

First Draft

With the information above, you should be able to draw up your first draft.  The first draft is really filling out each section of the template with the facts and information it needs.   After that is done, you can focus on the writing.

And now the writing, finally

The first draft does not consider writing style and formatting, at that phase, it’s all about the facts.  Now you need to up the quality with proper formatting.  here are some points to help you:
  •   Don’t try to be too fancy with the language.  Keep it simple, clear and unambiguous so there is little room for confusion and misunderstanding.
  •  Be consistent.  If you are using the words “Power User” to describe a particular role, don’t change it to “Business Administrator” later in the document.
  • Use bullet points and images where ever possible.  it’s easier to read, and important information isn’t lost in the paragraphs.
  • Avoid contradicting yourself.
  • Keep the document honest with truthful facts, even if it’s bad news.
  • Use numbering system so your document can be easily referenced later.

Well, I hope that helps.  If you have any more helpful points, please add it to the comments.  And to those coders writing a document – Good Luck and embrace this opportunity.

Sunday, February 19, 2012

What Are SharePoint Architects?

When we look at the minimum resources needed for a SharePoint environment, we think SharePoint administrator and maybe the “can-do-it-all” SharePoint Developer.
  
Don’t get me wrong, these resources are great and are vital for the stability and growth of the SharePoint environment, but they are essentially the workers, or the term I like using, the brick layers (don’t take it as an offensive term, that’s not my intention), they have a strong focus on the technical component of the SharePoint environment, and although they can achieve greatness on their own, they can achieve so much more if they had guidance from someone with a broad understanding of SharePoint (not necessary focused on the technical side) with the ability to map a business problem to the SharePoint technology, that can engage with the business user and plan an approach that will achieve the greatness that SharePoint can provide.  They are the SharePoint Architect.


The reason why I am focusing on this role right now, is the fact that this role is truly misunderstood (This role is typically given to the SharePoint Developer), and regarded as not important in SharePoint deployments.  It’s also a rare skillset, there isn’t decent SharePoint Architect training out there, well, nothing officially from Microsoft from what I can see.



I also looked around on who is providing this skillset, and noticed a disturbing commonality.  People that play the role of SharePoint Architect are not dedicated to this role, I met a few SharePoint Consultant companies, and noticed that there “SharePoint Architects” are also the “Accounts Manager”.  This means they are from sales with the primary objective to sell SharePoint (i.e. bias towards using SharePoint) but they call themselves Architects.  The problem with this is that Architects needs to match the business problem to the SharePoint technology and if the technology does not match the problem, i.e. too much customisation is required to achieve the desired result, then the Architect needs to say no and recommend an alternate/non-SharePoint approach.  Can the people from Sales do that?  I don’t think so.

So, what makes a good SharePoint Architect?  

The Architect has …
A broad understanding of SharePoint, the Architect understands the building blocks of SharePoint (IIS, ASP.NET, Virtual Directories, AD)
A good understanding of what functionality SharePoint can provide, the types of configurations that’s available, the limitations of the functionality, and what can be achieved via OOTB (Out of the Box) or Customisation.
Sufficient knowledge in capacity planning and performance monitoring
A good understanding of SharePoint advanced features, like Business Intelligence, FAST and what SharePoint license is required to use these features.
Knowledge on how to integrate with other systems
Good communication and documentation skills
Best Practice approaches in defining a strategy for SharePoint and other common tasks like Migration

The Architect is heavily involved during the planning phase of your SharePoint deployment, the Architect’s skillset is more focused on achieving the business objective,  by using best practice approaches and building proper plans that are achievable by the SharePoint administrator or SharePoint Developer.  

Without them, you essentially have brick-layers and plumbers, eager to build, without anyone drawing up and approving the plan.  This will eventually lead to an unstable environment, with no capacity planning, and solutions that built solutions that do not resolve the business problem.

Sunday, January 01, 2012

SharePoint in the year 2011

While a new version of SharePoint did not come out in the year 2011, it does not mean that nothing happened in that year.  This post will highlight the key achievements of SharePoint in the year 2011 and also my predictions in the year 2012.



The phase out of SharePoint 2007:  SharePoint 2010 was introduced in the 2nd half of 2010.  The year 2011, started the phase out of SharePoint 2007 and the phase in of SharePoint 2010 – this is evident when you look for SharePoint training currently available.  At the start of 2011, Good (or any) SharePoint 2010 training was few and expensive, and now, at the end of 2011, SharePoint 2007 training has been completely phased out.

Using SharePoint better:  People loved SharePoint 2007, but they were not using it correctly, which introduced many pitfalls, as mentioned in my blog post written exactly one year ago  (http://nadirkamdar.blogspot.com/2010/12/common-pitfalls-in-sharepoint-projects.html) .  The year 2011 shows that we are starting to use  SharePoint better, we know the potential risks and pitfalls are have taken the additional steps to mitigate it.  This is evident as more emphasis/training/articles is now placed on planning and governance.

Improved stability, performance and security:  The latest Service Pack for SharePoint 2010 was released in November 2011.  The service pack included the following improvements:
Improved support for Internet Explorer 9.
Recycle bin: Lets you restore a site collection or a web that was deleted.
Remote Backup Systems (RBS) and shallow copy can decrease downtime and increase efficiency by moving pointers to databases instead of moving databases.
You can see which folders are taking up valuable space with the improved Storage Management feature in site settings.
Support for Microsoft SQL Server 2012.
A more robust Search Host Distribution service that improves error recovery and performance during the search crawl.
Adds backup and restore functionality to recover deleted site collections and webs.

Microsoft Launches Office 365 and places SharePoint in the Cloud:  In June 2011, Microsoft officially launched Office 365.  This includes the launch on the cloud based version of SharePoint 2010 (called SharePoint Online).  This positions SharePoint as an essential productivity and collaboration tool, placed in the Cloud making that is affordable and appealing to any businesses.



SharePoint matures with BI and Visio 2010:  While BI functionality was available on SharePoint 2007, great improvements were introduced in SharePoint 2010 with the much needed integration into Visio 2010, but we only understood the power of these advancements in 2011, when Microsoft introduced BI and Visio specific Demo VM and videos.  Theses Demo VM’s can be sound here : http://mssalesdemos.com/ .

SharePoint designs are better:  A very common request when deploying SharePoint solutions is to make SharePoint not look like SharePoint, achieving this compromised the functionality, and I complained about this in my earlier blog posts ( http://nadirkamdar.blogspot.com/2010/07/please-dont-pimp-your-sharepoint-site.html ).  Today, I’m not complaining.  As a balance can be reached where there site is fully functional with a strong look.  This balance is achieved after a years’ worth of lessons learnt and new design related articles and guides.  A good showcase on what can be achieved can be found here: http://www.topsharepoint.com/

So what’s in store for SharePoint in the year 2012?

Well, Office 365 will receive better adoption, and the shift to the Cloud will be more prominent.

The new SQL Server will launch, resulting in better BI functionality, which will directly affect SharePoint.  Maybe improved speed and better functionality in features like Reporting Services and Power Pivot.

Better support for mobile devices:  I don’t believe they got this quite right as yet, as seen in the video below (its good, but not perfect), and mobile support is just too big to ignore.



What I am expecting is a service pack that provides site templates that makes better use of HTML 5 and CSS 3 or at least templates that make better use of W3C compliant code and JavaScript so it works well on these devices.

The end of SharePoint 2007, If you or your corporation are using SharePoint 2007, it will most likely reach its end of live in 2012, which means upgrade/migrate or use what people will soon call the “Old SharePoint”.  Due to the reduction (or complete removal) of SharePoint 2007 training, there will soon be no resources available to support the environment.  No support means no growth and if your technology cannot grow, its becomes a liability.

While 2011 was about strong awareness on how we are destroying the world, 2012 is about us doing something about it.  2012 will see SharePoint as a strong paperless option for collaboration and productivity.

So that’s my take on SharePoint in the last year with a few predictions in the year to come.  Tell me what you think?

Monday, November 28, 2011

The importance of de-stressing

Like many hard working individuals (I want to say workaholics, but I think that’s too strong a word), I have designed my entire lifestyle around doing my job as best as I can.

To start off with, I make sure I get plenty of sleep so I so I am fully charged to handle the 8-10 hours of taxing activities. I follow news and subscribe to feeds that relates to my work, and catch up whenever I have some free time.  I don’t smoke, don’t drink alcohol, don’t do drugs and limit my coffee consumption to social outings.  I even try to stay active and eat healthy since it affects my health and eventually the way I work (but admittedly, I easily compromise those tasks when more after hour work is required or the tasks I handled for that day was more draining than usual).

While I think it’s important to give your job high importance, I also understand that life is about balance.  So while your job may expose you to stress, it is important to counter that with some de-stressing tasks.



Without de-stressing, your job WILL cause the following:

  • Loss of enthusiasm
  • Loss of motivation
  • Symptoms of depression (sadness, low self-esteem, isolation, tiredness)
  • Over sensitive
  • Over anxious
  • Short tempered
  • Overeating or loss of appetite
  • Disturbed sleep
  • Feeling overwhelmed


My de-stressing techniques are the following.  They are simple, yet effective.

Talk to a friend.
I follow this rule with limitations as too much of this affects the quality of your work.  I have turned off all my social network notification tools, I don’t use any chatting program and only check my Gmail after hours or during lunch (and that’s if I’m taking lunch) as these tools are distracting and prevents me from doing my duties optimally.
But speaking to someone that can take your mind off work for a few minutes, and in that time, you get a smile on your face or even a bit of laughter, you just got yourself an instant de-stressor.

Take your mind off things.
It is important to not think about work when you not working, but when you have tight deadlines, your responsibilities tend to stay in your head, even after hours, stressing you out.  So it’s important to find an activity that can pull you away from that.
I can suggest that you do something worthwhile like participate in a charity event so you can find fulfilment via some alternative avenue, but my approach is video games (not very noble, probably regarded by most as a waste of time, but it works).
Video Games allow my mind to enter this alternative universe, and focus on the challenges presented in the game, with that sense of fulfilment when I have accomplished the task.  The best de-stressing games I played to date is Batman: Arkham City, but I hear Call of Duty and other FPS (First person shooter) games are great for de-stressing as well.

Get away
I always believed that it was a good idea to build up my leave days to a significant number, and then use it for some significant event like an overseas holiday.
In reality, those overseas trips are few and far between and I learnt, that sometimes you need to take time off to do nothing, i.e. have no plans but to relax.
You could plan to go to some relaxing spa, maybe have a picnic or have a nice walk in the forest or up the mountain.  Don’t be scared to take off a day from work every now and then just  for relaxing (I know this one  may be easier said than done - and if you have any advice on how to do this, let me know)



So that it, that’s my de-stressing techniques, the important thing is that you have to love your job and gain fulfilment from it, it makes all the stress worthwhile.

Saturday, November 05, 2011

SharePoint 2010 and Content Migration Presentation

If you managed to catch my SharePoint 2010 and Content Migration presentation for SharePoint Saturday, thank you for attending - as promised, my slides are attached.




If you didn't attend my presentation, which is very possible sine the majority of my audience is from the States, India and Jhb.  I tried to make the presentation as clear and detailed as possible.  I also reduced all the unnecessary images I used to give the presentation more live so the downloads are much smaller.  Enjoy.

Wednesday, October 12, 2011

Don’t use SharePoint 2010’s mobile view for internet presence sites

SharePoint offers a lot; it’s a platform that provides BI, ECM, Search, collaboration and a lot more including WCM.  It’s the Web Content Management (WCM) component that makes it’s a great platform for internet presence sites and with the more appealing pricing structure available for internet presence, it is becoming the preferred choice to internet deployment.

Without any effort from the SharePoint deployment team, SharePoint provides a “mobile friendly” view of the site been created.  In theory, this sounds great, this means that we can create a SharePoint site, apply a nice appealing brand to it (it is an internet site, so the look is important), spend some time on the structure the content so information can be easily found (very important for internet sites), configure search correctly and then fill the site with information and images knowing that it will automatically work out the best way to display this information on mobile devices, right?   WRONG!



SharePoint offers a mobile friendly version of the site, that is true, but when they created this mobile friendly view, they created it for the convenience of collaboration, and the factors that are important for internet sites were not included in the mobile view.

Here are a few examples:

By default, mobile view does not allow anonymous access, there are ways to override this, but that should be your first clue that the mobile view is not internet friendly.

The look and feel is not displayed in the mobile view, and there is no interface to change the look and feel of the mobile view, meaning that your internet brand will not be viewable in the mobile devices, solutions in solving this problem involves editing files located in the 14 hive folder, and that approach is not best practice, and should be avoided.

Navigational structure and content pages is not displayed in the mobile view, the main part of an internet site is the navigational structure and the content.  Those elements are ignored in the mobile view; instead, the mobile view’s navigational menu provides easy access to SharePoint lists and sufficient control in managing those lists.  So if you have some hidden lists on your internet sites (like a list to store feedback responses) they will be easily accessible in the mobile view.  Also, since the mobile view is focused on list management (and not the displaying of web parts), web parts containing content and information are usually removed from the mobile view.

Search facility is not working in mobile view.  Search is becoming the preferred way to search for information, so all the effort in classifying and indexing your information is rewarded by providing powerful search functionality, this functionality is turned off in the mobile view.

If you don’t believe me, here’s proof.  Go to Microsoft’s SharePoint site, http://sharepoint.microsoft.com, look and the brand, the navigational structure, and the content and the search functionality.  Now go to the mobile view of this site, http://sharepoint.microsoft.com/en-us/Pages/default.aspx?mobile=1, you will notice that you will need to sign in (thankfully, your hotmail account will work), and after you login, look for the brand, the navigational structure, the content, and now try to search for it.  It is clear that this view is not designed for internet sites.



So how can I make my site more mobile friendly?

SharePoint looks at the browser accessing the site and if the browser is a mobile browser, the user is directed to a mobile friendly template.

The file that contains the list of mobile browsers can be edited to stop the redirect from taking place or you can make use of URL rewriting features. This will cause the mobile device to load the standard view of your site and since SharePoint sites are W3C compliant, it should work fine on those devices (but they will probably have to do a bit of scrolling).

Best practice will involve you doing a little work on the standard view, you will need to create a mobile friendly CSS file and with some clever JavaScript you can load the correct CSS that will provide the mobile friendly look on mobile devices.

UPDATE : a HTML 5 + CSS 3 site template was recently created for SP 2010, this should provide a good way forward.