Archive for the ‘Business’ Category
March 4th, 2014 by Tobias Zimmergren
Recently Microsoft announced that InfoPath as a forms solution for SharePoint and Office 365 were to cease to exist. In my opinion this is great, because I never really liked InfoPath and it wasn’t very widely adopted in any organization I’ve ever worked with. There were benefits with InfoPath, but nothing we couldn’t do as developers or that the end-users couldn’t do themselves using free form-plugins from the web. Purchasing an enterprise-license just for the sake of forms was a really hard bargain to root for.
Read more about the announcement from Microsoft: Update on InfoPath and SharePoint Forms
We have InfoPath today, what do we do?
With the decision to retire the development of InfoPath, what decisions do we need to make in our organizations?
InfoPath 2013 & InfoPath 2013 for SharePoint on-premises
If you are utilizing forms today with InfoPath 2013 client or using the InfoPath 2013 browser forms features, you are still fully supported until 2023, so you have a lot of time. Right now, I’d wait until further announcements (see further down in this article).
If you are utilizing forms today in Office 365, you have at lease until the next major release of Office (and then some) before it’s unsupported. My take on this is that since we’re in the cloud-first world now, the updates will roll out on Office 365 long before on-prem, which also makes it important to listen to Microsoft’s guidance here. As soon as they decide to cut the support, Forms might stop working in Office 365. But as mentioned, you’ve got some time until then.
Migrating InfoPath forms?
Microsoft is cutting InfoPath. We can live with that, but how do we move our current forms into the replacement technology? Microsoft mentioned "We don’t know yet, we are evaluating various options to aid in migration" and "Third parties may provide tools, or even support running InfoPath forms into the future".
So the answer right now is to sit tight and don’t make any hasty decisions – if you don’t have an immediate need to replace InfoPath for whatever reason, let the forms live on until further notice.
What does the future look like for Forms with SharePoint and Office 365?
We will soon see some new replacement technologies that will be the ground zero for Forms with SharePoint and Office 365. Microsoft said that any new Forms features for on-premises SharePoint will not be launched until the next version. So if you’re eager to try something that doesn’t already exist, you once again see that the cloud-first strategy is in full effect.
Here’s the key announcements:
Albeit not the newest technology, Excel surveys will be a large part of creating forms. Excel Surveys are not specifically tied to just SharePoint but can have a broader usage.
- Form Design: Design Forms in Excel Online with Excel Surveys
- Form Completion: Web
- Office 365: Continuously shipping
- On-premises: Included with Office 2013
List Forms (FoSL - Forms on SharePoint Lists)
List Forms, or FoSL which means Forms on SharePoint Lists and pronounced "Fossil", looks pretty slick. This is where they enable an easy creation of forms for specific lists. We will see a lot of improvements and developments of this technology, and I would argue that this may be the most popular and widely adopted forms feature if the promises are kept.
- Form Design: FoSL, Forms designed on SharePoint Lists
- Form Completion: SharePoint
- Office 365: Between summer 2014 and October 2015
- On-premises: Next version of SharePoint (SharePoint vNext)
A bit surprising to learn that Structured Documents is a type of form technology that enables you to create modern forms in Word.
- Form Design: Word
- Form Completion: Word
- Office 365: Current plans target the end of 2014
- On-premises: Current plans target the end of 2014
App Forms are forms that you design in Access and complete in SharePoint. This is a type of forms technology you would use with more complex forms with multiple tables of data and multiple types of forms. I predict that you can create some pretty fancy stuff with App Forms, but we’ve yet to see what it holds for the future.
- Form Design: Access
- Form Completion: SharePoint
- Office 365: Continuously shipping
- On-premises: Included with Office 2013
When should I use App Forms vs. FoSL?
- Access/App Forms are best suited for self-contained apps with multiple related tables and multiple forms.
- FoSL is better suites for single forms with a single table, which is a SharePoint list.
I noticed that Visual Studio wasn’t mentioned as a form design tool, why?
Visual Studio is a developer technology, for people who develop stuff. Microsoft is deliberately targeting no-code users. In other words: Microsoft wants to target the Information Worker, not the developers.
I think this is a great decision, and I’m hoping that we can see some of the aforementioned form technologies flourish and get a wide adoption by the users. Simplicity is key.
We can’t wait for the new form replacements, we need them now!
All the new features that are being announced sounds pretty hot, but since we can’t use them as we would like right now, what alternatives do we have?
I urge you to check it out if you are in a need for forms quickly. All the data is stored in SharePoint lists, so you can easily access all the information at any time.
Microsoft have announced a set of new replacement technologies in the area of forms. All the aforementioned technologies seems like they can have some pretty nice use cases. As for existing InfoPath customers, I would sit tight in the boat for a while to see what Microsoft announces in the future. If you are thinking about implementing forms for the first time, take it for a spin with some industry experts to get input on what your goals are and what would benefit you in the long-term and short-term respectively.
Microsoft has a new philosophy in recent years. Open source and open communication. I love this approach, and with that you can also see that there’s a User Voice site available for sending input regarding Office Forms vNext. If you have input, get in there and publish it so the Office team can take action!.
March 3rd, 2014 by Tobias Zimmergren
What can I say; Microsoft is doing a killer job with Office 365 and their cloud offerings in general. Today during the SharePoint Conference 2014 Keynote, they discussed some of the highlighted new features for SharePoint, Office 365 and related technologies. It is a clear message that cuts across all channels, blogs and presentations alike: Cloud comes first, on-premises may or may not be kept up to date.
Let’s dig into some of the announcements.
Office 365 is the fastest growing product in Microsoft’s history
As quoted from the Keynote presentation from the SPC14 conference, Office 365 is now the fastest growing product in Microsoft’s history. A few years back I was very proud and glad that I got to work with SharePoint, which was the fastest growing product in Microsoft history back then. It was a great feeling when Microsoft announced today that Office 365 now is the fastest growing product in the history of the company. The feelings are the same as when I worked exclusively with SharePoint and they announced it as the fastest growing product ever – safe to say, we work with the right technology.
I’m also happy to hear that the Office 365 investments that Microsoft are pushing are actually delivering results; Some of the companies I’m involved with have now successfully migrated to Office 365 and we’ve never been happier to get rid of the infrastructure and be able to pay full attention to the actual content and format of the data, instead of allocating resources to connect cables and setup servers.
Fun fact about Office 365:
Introducing Office Graph
Office Graph is an Office 365-only feature and is based on the concept of the Yammer Enterprise Graph, but for Office 365. It gives you the possibility to map relationships between people and information. Based on how you utilize your Office 365 information (likes, replies, posts etc) it gathers information and makes available in a neat graph that shows you a visual interpretation of how you are connected to people and information.
Look out for more information about the Office Graph in the near future. This is a step in the right direction, and I can see a lot of uses for these types of information-linking and visualizations.
Oslo is a new app which taps into the Office Graph API’s and presents you with the information that the Office Graph has collected. So based on the information (again; Likes, Replies, Uploaded Documents, Posts and other data collected) by the Office Graph engine you are presented with the information that is most relevant to you. Making it searchable and workable with less effort for the user. Oslo looks very slick and promising – I’m predicting a LOT more to come in this area, and the Office Graph is one heck of an awesome introduction to the existing toolset by Microsoft.
Introducing the "Groups Experience" and "Inline Social Experiences"
Building onto the story of Office 365 enhancements, we can now enjoy something referred to as "Groups Experience". This is essentially a feature derived from Yammer’s social groups.
This means that if you create a new social group in any of your Office 365 applications, that group and it’s conversations will be available across all applications. For example if you’re creating a new group for discussing a new product launch, you can access the discussions, people and content of that group no matter if you’re in your Outlook application, Calendar, Yammer site or SharePoint sites. Simply put: Integrate social group interactions across the Office 365 suite.
The "Inline Social Experiences" is where they’re tying it all together with social interactions across their product suites. Office 365, Dynamics or other LOB-applications. Yammer conversations are being added to documents in SharePoint Online and OneDrive for Business and other similar additions. The future holds additional integration points and will be interesting to follow. Keep an eye out for future releases in this area – integration with Office 365 and related technologies will blossom.
These new features will become available during 2014, without any more detailed specifications.
Summary: Cloud-first becomes an immediate reality
It becomes immediately clear that the cloud-first approach that Satya Nadella mentioned in his first e-mail to the Microsoft employees is already becoming a reality. It doesn’t come as a surprise to me, given that Microsoft have pushed in this direction for several years now. I do believe it’s an important thing to bring to light though, that even if there’s going to be a next version of SharePoint Server for on-premises, that doesn’t mean that it will have feature parity with the services in the cloud.
A quote from Jarod Spataro on Office 365:
- Posted in Business
- 2 Comments
- Tags: Cloud, Featured, Office 365, Office Graph, Oslo, SharePoint Online, Yammer
February 27th, 2014 by Tobias Zimmergren
In the past I’ve written some technical articles about "TFS Preview" which was the name of Visual Studio Online while in beta. Now that it’s officially launched (and awesome), I’d like to make a small wrap-up of the features I really love with Visual Studio Online. And of course the pricing which I’m getting tons of questions about each week.
Previous articles on the topic
- Hosted Microsoft TFS – Team Foundation Service – Part 1: Getting Started
- Hosted Microsoft TFS – Team Foundation Service – Part 2: Connect your development rig
- Hosted Microsoft TFS – Team Foundation Service – Part 3: Configure a build server to work with TFSpreview
- Hosted Microsoft TFS – Team Foundation Service – Part 4: Connect your project to TFS and create a build definition
Visual Studio Online comes in a few different models and prices. Tailored to meet your needs, you can choose from the various alternatives and subscribe to them. Yes, the key here is that you subscribe to them. Instead of buying an expensive license for your developers, you can now subscribe for a monthly fee – all curtsey of the oh-so amazing cloud model.
Visual Studio Online Basic
The basic plan is awesome, because the first 5 users are FREE!
The normal price for the basic plan is $20 / user / month.
Visual Studio Online Professional
The normal price for the Professional plan is $45 / user / month.
Visual Studio Online Advanced
The normal price for the Advanced plan is $60 / user / month.
MSDN Subscribers, see here!
There’s a white paper published called Visual Studio and MSDN Licensing White Paper which describes the different options and subscriptions. If you’re an MSDN subscriber you can access some of the benefits of Visual Studio Online without additional cost.
Microsoft have provided us with a great comparison chart over the features in the various editions of Visual Studio Online.
It doesn’t have to be expensive to develop great software anymore. We all know that in the past it cost a lot of cash to get a license for Visual Studio or MSDN. Now you can purchase a subscription that suits your needs and it’ll come to a pretty cheap price in my opinion. My organization uses MSDN Ultimate, which gives us access to essentially every feature in the package. Some of my clients are purchasing subscription licenses for the Visual Studio Professional which is quite sufficient for the most part.
The point of this post is to merely highlight the benefits of the new subscription model for Visual Studio since I’ve been getting a lot of questions about it lately.
Head on over to www.visualstudio.com to read the rest – it’ll be worth it!
January 14th, 2014 by Tobias Zimmergren
With a new year comes new technology, new business models and new adventures. Like previous years, I’ll post some predictions for what I believe are things that’ll happen during 2014, or at least will start to happen.
My previous predictions and year-in-review posts:
- 2010 Predictions, written for WindowsITPro.com magazine
- 2011 Year in review, written for SharePointProMag.com magazine
- 2012 Predictions, written for SharePointProMag.com magazine
- 2013 Predictions, written for SharePointProMag.com magazine
I usually write my predictions before the year begins but hands down, I’m too busy helping my clients. That is a convenient problem of course. With that said, let’s quickly move onto the predictions for 2014.
Prediction for 2014
Here goes. My predictions for the year to come.
We will see more "cloud readiness"
In my "Year in review" for 2011, I wrote:
Looking back at 2012 and 2013 it truly was a year of "cloud preparations" or "cloud readiness". Some of my clients have moved to the cloud entirely, some are deployed with hybrid solutions and a majority are still lingering on-premises. However one thing that ties them all together is that they are all focused on aligning with the capabilities in the cloud. This means that the solutions being developed and the information structure are being done in such ways that they could potentially be migrated to the cloud one day or align well with hybrid approaches.
I believe that 2014 will be a year where a wider range of organizations realize the value of going into the cloud, or the value of having their on-premises environment aligned with the capabilities in the cloud. Cloud doesn’t mean everything, but aligning your on-premises work with what happens in Office 365 is a very good idea.
Of course in the end it all comes down to aligning your organization with the business, despite what technology hosts your data.
Hybrid solutions with Office 365
I believe that 2014 will be a year where organizations embrace the fact that some things are easier to put in the cloud. Some things obviously needs to stay in-house, but that doesn’t mean that everything has to.
My prediction in this space is that we will see more and more medium-sized businesses and even some enterprise-class businesses move to the cloud in hybrid models. Sensitive data stays in-house and services are offered from the cloud.
Growth of the SharePoint and Office App Marketplace
Before anyone would be willing to give a more precise indication on this topic, we’d want Microsoft to disclose more information about what the stats are for the Marketplace today. While pushing the marketing buttons really hard, it is probably safe to say that the Marketplace never got the traction they expected.
I do believe that in 2014 we’ll see some additions to the Marketplace both in terms of the underlying frameworks and app-publishing models but also in that more players will get onto the wagon and start publishing apps. I guess we’ll just have to wait and see in what direction it grows.
Some more attention for SkyDrive Pro
Microsoft is competing with a lot of other vendors such as Dropbox and Google Drive when it comes to consumer data storage in the cloud. But we are also seeing more competitors going after the enterprise customers which means Microsoft will have to accelerate their business for SkyDrive Pro, which targets the enterprise customers for storing data. (See Microsoft’s site for a comparison between SkyDrive (consumer) and SkyDrive Pro (enterprise), or watch this youtube video).
Since Microsoft is pushing all-in on the cloud and their Office 365 services, I’m pretty confident that we’ll see some new features to the SkyDrive Pro offerings (and hopefully the normal SkyDrive too actually) during the year that comes.
Go social by integrating Yammer
Since Microsoft’s acquisition of Yammer, there’s been a ton of rumors about the future of social in SharePoint. My take is that Yammer will be more tighter integrated with SharePoint Online (Office 365) but we may have to wait longer for additional on-premises functionality.
My prediction for 2014 in this area is some key investments to enhance the offerings for the cloud first, and then potentially additional features and integration points for on-premises deployments wouldn’t be unthinkable.
There is currently a published white paper on TechNet for "Integrating Yammer with on-premises SharePoint 2013 environments". In honest words, I’d say that this comes close to the worst white paper I have ever read on TechNet. It even has a step-by-step instructions for how to change files in the SharePoint Root folder (15-hive) which is utterly forbidden, as any seasoned SharePoint expert well knows. It is safe to say that most on-premises environments I have come across aren’t integrating Yammer in an efficient way today.
Microsoft, please bring forth the awesomeness – and a clear roadmap for the foreseeable future.
Customization madness has to stop
Microsoft is pretty clear on this point. Don’t customize.
I will have to align with those words, and given the impression I have from fellow business partners and community followers I would assume that 2014 will be a year where a lot of organizations revise their customizations.
Just think about it for a second; Have you ever had problems upgrading just because of some nonsense customizations? Thought so. I know I have.
My prediction here is that people will start to realize the importance of a clean environment when the updates start to roll out more often. While aligning our on-premises deployments with the offering in the cloud, this is an extremely important consideration. This doesn’t mean that your SharePoint environment will look like any other SharePoint environment – you can still modify some look and feel, but the awareness of staying on the right side of the "recommended practices" is increasing.
Stop solving problems you don’t have (over-engineering)
Some folks call it over-engineering, some folks call it over-architecting and some folks just say "Don’t solve problems you don’t have".
With the guidelines to stay as close to the cloud-offering as possible, it is also important to accept the fact that you no longer should solve problems you don’t have. What I mean is that oftentimes organizations have some awesome members of their team, and some of these awesome members may be gurus with the code and infrastructure – but if you don’t actually have a business case, don’t implement a solution for it. If 10 out of 10 000 users want a specific solution, I wouldn’t call it a business case. Spending hours, days or even weeks or months (been there, seen that) on developing a custom solution that wasn’t requested by the organization but rather a few single individuals will cost you more than it will benefit you. Especially if the developers of these solutions likes to over-architect their their solutions with unnecessary complexity.
Keep it simple and revise the requirements before you decide to implement a solution. Revise the solution proposal before you decide to have it developed.
My predictions for 2014 is that more teams and more organizations are getting the hang of how it works, and are more prone on making efficient decisions that are aligned with their business and their technical implementation.
We well see more subscription-based solutions and services
Overall, I think we will see more subscription-based services and products offered by not only Microsoft but partners and ISV’s as well.
In the enterprise I believe we’ll see some changes for vendors and services – option to subscribe instead of paying license fees up front is getting more common. Cheap per-user licenses which you don’t have to keep paying for if you cancel the service, that’s a winning deal and I believe the enterprise is no different than the consumer-market on this point – who wouldn’t want to lower up-front costs and pay for the usage instead?
Honestly I’ve got tons of more things I’d like to discuss for the future, but I think I’ve covered what I believe are the most interesting things to keep in mind and watch out for in 2014.
December 23rd, 2013 by Tobias Zimmergren
Every year when the year is coming close to an end a lot of people including myself write a recap of the year that was. For me this has been an extremely interesting year and I’ve had lots of fun! I’m simply amazed about how much I enjoy working with what I am doing today and how many awesome people I get to meet throughout the conferences, community and at my clients.
So with that said here’s a small recap of 2013 from my own personal perspective, categorized in a few headlines.
Microsoft MVP – 6 times and going strong
I was renewed for my Microsoft MVP award for SharePoint this year again for the sixth consecutive year. I am thoroughly humbled by being recognized by Microsoft for my efforts. Not only have I been able to directly communicate with the guys that build what we call SharePoint, but I’ve also gotten to know quite some cool people in the community and at Microsoft during the last few years. A network that simply keeps on growing, and a community that seems to never sleep.
With that said, thank you Microsoft for your Microsoft MVP Award program. Truly beneficial both for me as a community advocate and for my peers and clients!
Popular articles of 2013
When I write a summary of the past year it usually involves a short list of highlights from the year in the blog. This year there’s been quite a few interesting articles that has been extremely well visited and here’s a short list:
- ALM: Automating SharePoint Development – Iterative Development Process
- Upgrade: Preparing for upgrade to SharePoint 2013 – Iterative Upgrade Process
- Dev: Extending the SuiteBarDelegateControl by adding a title breadcrumb
- Dev: Changing the ‘SharePoint’ text in the top left corner
- Dev: Some new DelegateControl additions to the SharePoint 2013 Master Pages
- Dev: Getting started with the new Geolocation field in SharePoint 2013
- Dev: Using the JSLink property to change the way your field or views are rendered in SharePoint 2013
The local SharePoint Community
During the last year I’ve expanded the SSUG (Sweden SharePoint User Group) in the southern parts of Sweden as promised. We’re having great meetings with great people and content. We’re building the up the base for the community and so far we’ve had more people in every new event than we had on the previous one – so we’re definitely moving in the right direction. None of this would of course be possible without the help of great speakers, companies who help out and sponsor our events and of course all the attendees that show up and indulge in the information we share with each other.
I’m truly happy for what we’ve managed with the community thus far, and I think we’re not even close to the goal yet – we’ve got a lot more to grow and we can probably fine tune our processes a bit to make our events even more seamless. Thank you everyone in the local Swedish SharePoint community, you guys rock!
Less travel, more focus on local business
Yes, I know. I haven’t been at the last few conferences and trust me – I want to go to every single one. I’m really enjoying the less-travel & more-focus approach where I get to focus my attention to my local businesses, and instead of travelling the world as I’ve been doing in recent years I’m now investing a lot of time and resources in the local market here, including long-term projects over the shorter expert advisory cases.
The winner in this decision though is the local community, my clients and of course myself and my family – less jetlag and more time for building up the SharePoint community in southern Sweden while not being away from home too much. Wohoo! But that doesn’t rule out me showing up at a conference near you, though.
New ventures of 2013
This section details what I think are the most interesting events of the year. Last year (2012) I had a lot of discussions with companies about various ventures and what my next steps should be for my own business and career would be; It ended up along the lines keeping the status of what I’m currently doing (running TOZIT AB) – but with a few additional engagements. I will only write as much details as I can and am allowed, and update when appropriate.
I joined a startup as a partner
One of the companies that reached out to me is a local (Swedish) startup working on mobile and enterprise class services and products – they’re not a consultant company but rather a service provider of online services. They recently launched and are working thoroughly on providing new services for their new market. My main tasks here are to act as a connection hub to the groups of people they need to be connected to and to provide my advice on the tech I work with as well as my view on the market and in what direction we should develop the portfolio of services. I’m pretty excited about this venture – the people I get to meet here are amazing, hard working, talented and they are setting their goals high! Challenging and exciting.
This company doesn’t explicitly work with SharePoint.
I also joined another small business as a partner and investor
Another company decided to meet with me one day and the result of that was that I came out from the meeting as an investor and new business partner for a local business. These guys develop systems for very specific usages by large production companies, and their market seems to be pretty solid. Exciting indeed.
This company doesn’t explicitly work with SharePoint.
Launching new SharePoint products and tools
During 2013 I’ve been working really hard with creating new products and launching them to market. I present to you; Pointbird and SharePoint Discussions (updated).
|Pointbird: We have been developing some plugins and products for our clients for a long time. But instead of re-inventing and adjusting the solutions for each client, we’ve standardized some of the most commonly requested features from our clients. We’ve packaged them under a new brand called Pointbird. You can check out www.pointbird.com for an idea about what the products are all about. There’s a need for them, and so they now exist for our clients to utilize without investing development time.|
|SharePoint Discussions: Our SharePoint Discussions solution (www.sharepointdiscussions.com) has increased in popularity and we’re almost ready to release the 2013 version as well. We’ve currently got a 2007 version, a 2010 version and soon the 2013 version. We’ve been working on this tool since 2008 and it’s been ever popular since. We’ve deployed it to quite the number of clients and we’re still seeing an increased popularity which means we’ll try to meet the requirements of the market by modifying the services and products accordingly.|
The year has been very interesting and exciting and I am hoping for an equally awesome time during the year to come. I’ve been working hard and for many hours, days and nights and I have thoroughly enjoyed every second of it.
What adventures lies ahead for 2014? I bet there are many new (ad)ventures and opportunities at hand – let’s embrace them and treat 2014 as our new best friend. Welcome to the future.
Merry Christmas and a Happy New Year!
December 11th, 2013 by Tobias Zimmergren
When dealing with SharePoint development, there’s tons of things to consider. There’s the aspects of code quality, aspects of proficient testing taking place and of course having a reliable process to re-do and fix anything that comes up along the way. Most importantly in my opinion is to not do all iterative work manually over and over. Most of these things are part of any common ALM (Application Lifecycle Management) cycles in a modern-day development team. In this article I’ll talk briefly about how I’ve set up most of my recent projects with routines for the daily iterative development work. This includes Continuous Integration, Nightly Builds, Automated SharePoint Deployments and Automated UITesting. Pretty slick.
Background: Why automate?
One of the most common questions I’m getting today when I introduce the concept of code and deployment automation is "Why?". Why would you invest time to set up an automated environment for iterative builds, deployment and automated tests? For obvious reasons (to me) I shouldn’t need to answer that question because the answer lies within the question itself. That’s just the point – it’s automated and you don’t have to do it yourself over, and over, and over.. and over and over and over again!
As a quick go-to-guide for automation benefits, this should make do:
- Continuously finding problems and fixing them in time.
- Revert the entire code base back to a state where it was working, in case trouble arises.
- Early warnings of things that could be a potential danger to the success of the project.
- Frequent check-in policies forces developers to validate their code more often.
- We can iteratively have an up-to-date testing environment for stakeholders to verify our work continuously.
- Automate testing by PowerShell.
- Automate UI Testing.
- Etc etc etc.
The list can grow pretty long, and I’ll try to cover a pro/con list of things to consider in the ALM process, but for now I think it’s important to focus on what’s important for your team. For me and my teams the most important thing is to make the processes more efficient and managing some of the daily tasks automatically. In one of my latest projects I’ve taken the time to enforce a new type of development routine for the team which did not exist before – an iterative development process. This has been key to our development in the upgraded SharePoint solutions where we’ve upgraded older projects from SharePoint 2010 to SharePoint 2013.
See my previous article about Iterative Upgrade Process. It discusses another type of automation that I set up – namely a full SharePoint 2010 to SharePoint 2013 upgrade – every week – before the real upgrade finally approaches.
So if the "why’s" are clear, let’s move on to an overview of what the process could look like.
Implementation: How are we enforcing code- and test automation?
First of all, our main process of automatic development looks something like this:
This is similar to one of the processes I’ve introduced in one of my projects, but as always it’s individual for each project and can vary quite widely with your requirements and setups. Once we’ve done enough iterations and fixes in this simple ALM cycle, we move on to pushing this out to the production environments. But before we get into that, let’s break these steps down a bit:
During the development phase we focus on getting things done .Taking the collected requirements, nailing them down into a technical implementation and finally checking the code into our code repository. This is the first step of the technical ALM cycle where we actually start to implement the code to fulfill the requirements. But it can also be the last step in the cycle, where bugs have been reported in the "Test & Verification" step, resulting in additional code fixes – which causes the cycle to start all over. For most people this is common sense, and in most experienced teams there are some type of ALM routines in place.
When you commit or check-in your code, we can set up rules for the actual check-in. In my case there’s always a few things I tend to do:
- Build projects and package SharePoint solutions to make sure there’s no basic issues in the project files etc.
- Execute tools to check the quality of the code, for example the SPCAF tool which is doing a good job of analyzing the packages and resources.
- Automatically deploy the new packages to a dev-test farm for quick tests by the developers themselves.
Automatic code verification
So as mentioned in the earlier step, we perform automatic verification of various things in our code and packages. You can use the code analysis tools for this, and the SPCAF tools and so on. I will automatically fail the build instantaneously if there are any errors reported, which will cause the build server to e-mail the entire team saying "the latest build broke, here’s why…". The reason for having the build server notify everyone is of course that we should be aware of any issues that occur due to our recent changes – better have everyone know about it than nobody.
In short, we can perform these types of tasks here:
- Unit Tests (if any)
- Code analysis
- SPCAF analysis for SharePoint artifacts
- etc etc.
Automatic deployment to dev-test farm
When we check-in, we perform a new deployment on the developer test environment, which is a separate farm setup for only the developers to verify their changes and code. Each time a check-in is found in the TFS, we trigger a new deployment to this environment. If a developer is doing tests in the environment for some reason, he/she can flag to the build server that no builds should push any deployments until he/she is done with their tests. Then the build server will pick it up right where it left off before pausing.
Automatic deployment to pre-production farm
After the code is automatically verified and the solution packages are flagged as OK we proceed with deploying the packages to a test environment. This is also a fully automated step but instead of having this triggered on every check-in I’ve chosen to trigger this once per day in my current setup. The reason for this is that we generally want a better uptime on this environment so we can do some actual tests both automatically and manually. I’ve set up rules that first checks that everything went fine when deploying to the dev-test environment. If not, it’ll flag it as a failed build – otherwise it’ll continue to do the full deployment in the pre-production environment as well.
Our pre-production environment is a place where more of the UAT and QA tests happen. We have this environment connected to the proper Domain (AD), proper services and the exact same setup (and even content) as in our production environment. Read more about how we duplicate the content in my previous article, more precisely on the "Copy fresh databases" section.
Summary of the pre-production environment: An almost exact replica of the actual production environment. Proper, life-like tests can be performed here.
Automatic SharePoint & UI Tests
One of the coolest things we’ve got setup are something called UI Tests. If you haven’t seen these before, I urge you to take a look here: MSDN – Verifying Code by Using UI Automation.
With our coded UI Tests, we can simply record logical tests in the UI from our web browser, have Visual Studio convert these recorded actions into a sequence of commands in C# which then are executed automatically once they are run. We’ve made sure that our build server are executing the UI tests on a remote machine, enabling us to test graphical changes and things in the user interface by automatic measures so we don’t have to do this every time ourselves. This is awesome. I promise this is very, very awesome.
On top of the UI tests that we can have automated, we can also have some logical tests performed by PowerShell. In this step we also conduct generic tests to make sure we can create all types of sites based on our templates, that we can change all settings that we have designed in our applications, that we can create all types of lists and so on. In other words: Automating the boring dirty work that otherwise may be very redundant and you normally fall asleep while doing
Technicalities: Team City as a build server
All of the aforementioned tasks are things that happen automatically by utilizing a build environment. Personally I am pretty hooked on Team City these days. Best part is that it’s free for up to 20 configurations. Cor blimey!
Why use this specific build server? Some people argue that using a TFS build server is the best, some argue that Jenkins beats all else, some argue that Team City is the most awesome tool in the world and so on. They are all good, and they all serve a purpose. For me, the core benefits of Team City are:
- Installation is done in less than 1 minute (pow!)
- Configuration and setup of new builds is as easy as 1-2-3
- Build agent statistics to keep track of build performance etc.
- It works with multiple version control systems out of the box
For a single build TeamCity can take source code from several different VCS repositories. You can even mix different types of VCS.
I’m not going to sell you either TeamCity or any other build server, you can just have a look for yourself at the various options there are out there:
- Jetbrains TeamCity: http://www.jetbrains.com/teamcity/features/index.html
- Microsoft Visual Studio and Team Foundation Server 2013: http://blogs.msdn.com/b/visualstudioalm/archive/2013/10/17/announcing-visual-studio-and-team-foundation-server-2013-rtm-availability.aspx
- Jenkins: http://jenkins-ci.org
My obvious recommendations falls on TeamCity and TFS. It all comes down to where you are, what the projects and budgets look like and what features you’re prone to have included. Some of my projects are on TFS build and some are with TeamCity – most of them in TeamCity actually.
In a future post I might describe in more detail how I’ve technically set everything up for my build environments.
Build Server Configuration: Setting up proper routines
It doesn’t really matter which build server configuration you prefer, as long as it fulfills your requirements. My normal requirements in any type of long-running project for example intranets may look like this:
- Configure a trigger to automatically execute a build, package and code analysis on each check-in.
- Deploy to dev-test on each check-in
- Configure a trigger to automatically execute a build, package and code analysis each night.
- Configure a trigger to automatically execute a deployment to dev-test and pre-production each night.
This is a special configuration that doesn’t really tie into just this ALM cycle, but also to my previously described "Iterative Upgrade Process" cycle. Every week in a current project, we’re tearing down the entire SharePoint environment and we’re building it up again automatically and performing an upgrade. This configuration can trigger that full scheme of things, but it can also be used to just deploy all the latest artifacts. Hence, it’s a pretty special step that we manually trigger today in order to keep the chaos to a minimum.
PowerShell Verification Tests & Nightly UI Tests
By using PowerShell to verify that artifacts exist, can be created and seemingly contain the right properties and by using coded UI tests to perform recorded tests of UX interaction tasks, we’re pretty confident that we’re continuously finding out any issues along the way with less manual work.
As always though; The tests are only as good as the person who wrote them – if you create bad tests, the results will be bad. Keep this in mind and don’t just trust the green lights
Visual overview: Common setup in my projects
My thoughts are along the lines of "the less work you have to manually do yourself, the more work you get done" which are pretty common if you’re into making routines more efficient. I’ll try to describe from a birds perspective what our routines are technically doing by showing you an awesome visualization of my most common type of setups. Following is an illustration of my setup, and below the illustration I’ll describe each section more precisely:
Description of the legend
In the legend (the gray box) you can see that I’ve marked some of the areas in different colors.
Developer Area is where the devs are playing around. Nobody else are touching those environments.
Build Master Area is where the build master (usually me) and potentially a few more designated build administrators hang out. Nobody else are allowed on this environment – it is strictly locked down to only the few people with the required skillset to configure them. If we make a mistake here, we could easily screw up our deadlines in the projects.
Dev Test Farm is where the developers do their initial tests. A rather simple environment with only one goal: Successfully deploy the packages and activate the required artifacts.
Pre-Production Farm is where the artifacts are deployed right after they are verified in the dev-test environments. When we push things to this environment we enable the business decision makers and product owners to get in the game and finally try out what we’ve created. Normally this means that they perform initial requirement matching (that is; did we create what they wanted) and then we’ll connect parts of the organizations users in order to perform the UAT (User Acceptance Tests) properly. Once that is done, and we’ve iterated the cycles enough times to fix all the bugs (yay!) then we’ll push it on to the production environment.
Production Farm is where everything is going live. This is the real deal, and nobody has any access to this environment except the farm administrators. The exception is that the build environment have permission to remotely deploy SharePoint solution packages and execute the required PowerShell commands in order to successfully (and automatically) ensure that the proper artifacts are deployed in a safe manner. We don’t want to allow people to perform manual deployments here! Hands off please
Well that’s a short story about what my current ALM adventure looks like. I’ve been rigging up some pretty cool environments lately, and I’m loving every bit of it. The confidence of automation is unbeatable – not to mention how much time we actually save.
I could easily hand any of my clients a presentation saying how many man-hours they’ve saved by investing the hours needed to set this up. Priceless!
In the future I might write about the technical implementation of the build servers and so on, but that’ll be a post for another time.
- Posted in Business, Technical
- 14 Comments
- Tags: ALM, Automation, Featured, SharePoint, SP2013, TeamCity, Testing
November 29th, 2013 by Tobias Zimmergren
The last few weeks and months I’ve been busy setting up the foundation for a new set of products we’re developing. We call them Pointbird. The story behind the name is a tale for another time.
Simple but powerful plugins, products and solutions for SharePoint and other services – that’s what we’re currently building. We’ve also simplified licensing so that all our customers can easily understand our model and implement our solutions without any trouble! Easy as 1-2-3.
We’ve got a set of products lined up in our respositories that are in testing and conceptual phases. However we’ve already launched a few products that we’ve experienced as the most popular requirements from our customers in the projects I’ve been involved in the last few years. Nobody had found a solution for these common problems, so I drew some sketches and then we started creating them. Some are small, others more complex – but they all offer value to our clients and that’s the most important thing for me.
Pointbird Short Url
So the Short Url product, as the name implies, is a product that can shorten url’s of items in SharePoint lists and libraries.
It’s pretty slick and for the user it’s just a matter of clicking one link in the ECB menu:
We’ve actually already implemented this solution at a few clients, and today as soon as we launched we had a few copies sold during the first few hours. Wohoo!
Pointbird Zip Saver
A common request from a lot of my clients I’ve been working with is to be able to select specific files from a library and then just download them all, including folders. Requirements were simple and very clear, so that’s exactly what we implemented – a “Zip Saver” solution that can download multiple files at once, including folders, and presents them nicely in a zip-file. The zip-file contains the exact same structure as your library that you chose to download. Neat! Very neat!
The Pointbird Zip Saver is a rather popular demand and we’ve implemented this in a few organizations already as well.
A very simlpe yet smooth solution for displaying ad-hoc messages to your users in your various sites and site collections. A popular request is to instead of using a portal start page news list or announcement list, to be able to push out messages to your users in a more persistent and focused way. With the Pointbird Notify solution you can simply create a new list item in a special list containing announcements, and it will automatically display it for your users with the settings you specify. Awesome.
That’s it. No more marketing – we’re done for now. Hope you enjoy it
October 2nd, 2013 by Tobias Zimmergren
So, October the 1st is an exciting date yet again – For the sixth year consecutively I’ve been awarded the prestigious Microsoft MVP award.
For any new readers, that means in essence the following (quoted from Microsoft.com: http://tz.nu/1g4eNSp )
At Microsoft, we recognize the vital role these individuals play in the adoption and advancement of technology—and in helping our customers do great things with our products. This was the inspiration for the Microsoft MVP Award. Nearly two decades ago, we awarded 37 technical community leaders as MVPs.
Today, there are more than 4,000 MVPs worldwide. They represent more than 90 countries, speak over 40 languages, answer more than 10 million questions a year, and are awarded in almost 90 Microsoft technologies—reflecting the breadth of our products and our global communities.
Six years and counting
Wow, what a journey.
I still remember the first time I received the Microsoft MVP award. It was October 1st 2008 (sorry, lost all the hundreds of comments from that post in the migration ). I joined ranks with my friend Göran Husman as the second ever Microsoft MVP in Sweden in the area of SharePoint.
It was huge, well at least for me. It was the start of a long and (evidently) awesome journey where I got to meet with some of the best and most skilled people on my topic of interest, SharePoint. Heading on over to Redmond to visit Microsoft HQ and meet the guys who’s actually building the stuff we’re working on, that was huge and impacted me a lot. New connections, new friends, new experiences and new skills.
To conclude this short post, I’d just have to say: Thank you Microsoft and thank you the SharePoint Community that’s ever growing bigger and stronger. You’re all awesome!
September 5th, 2013 by Tobias Zimmergren
Update 2013-09-07: After two days of open registration we only have about 20 seats left out of 60.
Update 2013-09-11: We now only have 2 seats left out of 60.
17:30 – Mingle & Beer
18:00 – Welcome to SSUG (by Tobias Zimmergren)
18:05 – Welcome to Tretton37 (by Peter Ekerot)
18:10 – Session 1: (by Matthias Einig)
Automated Code Quality Analysis of SharePoint Solutions
High quality SharePoint solutions do not have to be a coincidence! Learn about the challenges and their solutions of SharePoint code analysis and start avoiding the many pitfalls already during SharePoint development before the code reaches production.
18:45 – Break: Food & Beer
19:15 – Session 2: (by Anatoly Mironov)
Let’s talk about SharePoint Apps
We all know SharePoint Apps by now. But how are they adopted in the enterprises today? Anatoly will talk about his experience with Apps in a SharePoint 2013 project and discuss the possibilities with Apps.
Please be advised that the number of seats available for this event is maximum 60. First come, first served.
If you register for the event but in any way will have to cancel, please cancel through EventBrite so we can release your seat to someone who may be on the waiting list if we’re full.
Thank you and see you there!
Sign up & connect with us
Sign up from our EventBrite page: www.ssug.se
Hang out with us on Facebook: www.facebook.com/SharePointSweden
March 17th, 2013 by Tobias Zimmergren
Time goes by fast. Especially when thinking back at when we started our User Group in Sweden. We started the Sweden SharePoint User Group (www.ssug.se & www.facebook.com/sharepointsweden) back in 2007. We’ve had it running for a solid 6+ years and are soon entering our 7th anniversary. Pretty cool if you ask me. So here’s a few details and notes about that.
Sweden SharePoint User Group History
Back in 2007 at our very first meeting we were only about 15 people showing up. This was of course due to the natural reasons that nobody knew we existed and that we hadn’t really promoted the user group that well for our first meeting.
As time passed by and we had a few meetings every other month, members grew and the interest for our User Group really picked up. The following years the adoption of SharePoint became more and more common in organizations, which naturally led to more people picking up an interest in our group as well. Today we have more than 1100+ members that have registered their interest in the group. AWESOME.
So, where have we been hanging out?
During all the years we’ve been pulling our efforts for actual offline and on-site meetings. We rarely to never do any online sessions or recorded webcasts. The most obvious reason for this is that we want people to show up at our meetings, network, have fun, (obviously drink beer) and while doing all of this be able to grow their own professional network.
We started out in Stockholm by hanging out at various companies and letting them sponsor our meetings by setting up a room, arranging food and beverages and mostly have at least one session delivered by one of their SharePoint professionals. Today we have meetings in Stockholm and Malmö regularly and we’re expanding the group (again) to Göteborg.
As time flew by, we also set up a few different web sites for our members to use as a discussion point. We ended up realizing that nobody actually used those resources since you have MSDN and Stackexchange. We then decided to only use our new Facebook page for discussions and interactions (www.facebook.com/sharepointsweden) and our EventBrite page for event registration and overview (www.ssug.se). The rest of the action happens when we meet, and not online – so be sure to show up at a future meeting in order not to miss out.
Why would you attend the SSUG meetings?
In Sweden we are pretty confident that this is the most relaxed and easygoing way to network and learn about SharePoint – FOR FREE. All the hours, days, weeks and months of work that we put into this is on a voluntary basis in order to keep it neutral and in a relaxed atmosphere.
Some of the top reasons why I personally attend (and organize) our meetings are:
You get a chance to meet old and new friends in the same field as yourself. Invaluable connections for your future adventures in SharePoint land.
You get a chance to learn and pick up new stuff about SharePoint.
We try to have some sessions about customer showcases where you can see SharePoint being implemented in an organization and hear about the challenges, benefits and so on.
There’s no doubt that these events are one of the most social of events where geeks meet up. SharePoint is about sharing and collaborating – we make sure to do that when we meet. I mean who doesn’t like beer anyway?
Fun & relaxed
We always change the venue and keep it simple and relaxed. Grab a beer, listen to SharePoint and chit chat with fellow SharePointeers. Keeping it simple and making it awesome.
I don’t need to explain this one, do I?
We have fun. That’s key. So watch out for one of the following SharePoint geeks as they may be spreading awesomeness or simple rant about random SharePoint topics at an event near you in the future