Where’s the value in your SharePoint implementation?


SharePoint developers and consultants are under constant pressure to deliver projects quickly and cheaply. More often than not this leads to quality taking a back seat while the rush to deliver projects on time and on budget becomes the main objective.

It’s upsetting to witness projects that were initially sold with a passionate sales speech and much enthusiasm, delivered in the end as sub-standard implementations that don’t deliver on their promises. Yes you’ve delivered an intranet, but will it really be used and will it really help your customer?

To deliver more meaningful SharePoint implementations, try taking a proactive approach to quality standards by injecting quality right from the beginning of your projects, all the way through to the end. Don’t wait until your project is nearly finished before considering quality aspects such as performance, design, maintainability and all those other quality factors that seem to somehow creep into SharePoint projects when they’re ‘almost done’.

I know you hear this all the time, but test your functionality as if you were your own end user. Why not deploy some of the functionality you’re building for your customer onto your own company intranet to see where the values lies and what can be improved?

SharePoint for Project Managers


“Unfortunately, many PMs just don’t understand how to leverage SharePoint to manage project information and use the technology as a communication tool to both project teams and upper management.  As PMs, we continue to use Word tables and Excel and email documents to each other.  We’re held hostage by our inboxes, methodologies aren’t always followed consistently, project artifacts wind up in multiple repositories including SharePoint, and project information and status lack visibility.

With that understanding, there are several things an individual PM can control and implement on a SharePoint site simply by educating yourself a little or getting some assistance from a resource who has some SharePoint knowledge.”

Read more…

The Importance of Sprint Zero


One of the more common challenges that we see companies face is scheduling time within their sprint iterations to address ‘non-software/product’ development activities. This includes foundational tasks such as:

  • Identifying new tools or platforms for implementation
  • Product demonstrations from 3rd-party companies
  • Streamlining build management and continuous integration
  • Researching new patterns or processes to introduce into the life-cycle
  • Documenting or defining templates and standards
  • Training (internal/external)

These activities require time. They can make a significant impact on your velocity and they’re typically the top items raised during sprint retrospectives. They’re also required if you want to improve the way you operate.

Read more…

Adopting Agile: Teaching an old industry new tricks


A colleague once commented that he feels agile software development is more idealistic than realistic. I thought about his comment for a while, and realised that maybe this is how it really appears to many people. Maybe people think of agile as idealistic because it can often sound ‘too good to be true’ – especially when being punted religiously by eager employees looking to improve things. Maybe it’s the perceived ‘airy-fairyness’ of it, or maybe it’s simply the unwillingness of companies to want to implement radical changes to their rigid development approach which works, kind of. After all, that’s how software has always been built right?

In reality, there are many organizations around the world utilizing agile practices: Microsoft, Google, Yahoo!, Nokia, Electronic Arts, Siemens, Philips, Oracle, Sun Microsystems, SAP, Lexis Nexis, Time Warner, IBM, Infosys, Motorola, HP, DaimlerChrysler, Delphi, General Motors, Dell, Verizon, and Accenture, to name a few of the largest (see more here). Countless other organizations are applying lean and agile principles successfully today, and while it’s difficult to determine exactly how many, Allan Kelly, author of Changing Software Development – Learning To Become Agile, estimates that a realistic figure is that between 5% and 15% of all software development is done using agile software development. This figure may seem small, but in a way that’s a good thing; because it’s not mainstream yet, you have a very good opportunity to get one-up on your competitors. As Allan comments in his post, “there is a real competitive advantage in companies adopting it. If your company can produce software in a fraction of the time, or with a fraction of the people of your rivals then your onto a good thing.

There are numerous studies, reviews, surveys and opinions that prove how much more successful agile methods can be than the old approaches that have been around for decades. The reason for this is simple: agile was developed by people looking for a better way of doing things, to fix the problems with the old development methods and solve the issues we commonly face in software development. The sad thing is, many companies continue to use the old ‘big design up front’ and ‘all or nothing’ approaches of building software; methods that originally stemmed from the construction and engineering industry when the first software engineers were trying to figure out how to build software with some level of structure and predictability. Things have changed a lot since then, which why these new models should be embraced by any company looking to do things the right way going forward. Building software is not like building a bridge.

The good news is, moving to an agile approach need not be about throwing away your current process completely and adopting a new one overnight.

Almost nobody uses a ‘pure’ agile methodology as every company works differently and has unique needs, so if you are a software house looking to become more agile your overall goal should be to incrementally improve your software development strategy by learning to utilize some of the core lean and agile principles. Start small, then gradually improve each process and department over time. This will allow you to benefit immediately from the changes without having to go all in with a big-bang approach.

The SharePoint Customization Hippocratic Oath


Here’s an excellent post on how to go about deciding on an approach for modifying your SharePoint implementation – or, should you be modifying it at all?

From the article:

When I was speaking at the Wisconsin SharePoint Users Group last week, someone asked me: “How do you know when to choose SharePoint Designer or Visual Studio for a particular change to a site?” I explained that I had a sort of “Hippocratic Oath” for SharePoint customization. In essence, it involves not making changes any more complicated than they need to be in order to achieve the design objectives.

Read on for some great tips on when you should be modifying CSS or master pages, when you should be creating site definitions or just creating features, and how you could be using the out-the-box functionality instead of building your own components.

K2 Solutions Professional Training – Day 3


After a bucket load of theory I was pleasantly surprised when our lecturer gave us our overview for day 3.  It was going to be basically just practical – #excite.

During the exercises I got a fairly decent overview of the API and realised that the product is super extensible (blackpearl off course).  In our labs we built a custom work list, custom approval form, mini management interface (via ProcessSets) and more.

The support our lecturer gave us was brilliant and apart from the annoying HTML (which I started skipping after exercise 1) all our labs were good.

Here, in no particular order, are the K2 snacks I picked up on day 3:

K2 intends to move away from Kerberos.

The Server Event permission is required for long running processes

Action Rights allow for granular action management per task on each process

Reporting in K2 can assist business to plan resource using Activity reporting

ETL – Extract, transform and load (runs on schedule)

K2 does not support ETL out of the box

EII – Enterprise information integration (real-time data from multiple data sources)

K2 provides EII as part of SmartObjects

K2 surfaces their reports using SSRS and a K2 for SSRS component must be installed for it to work.

K2 ships with the 2 x Reporting Tools; K2 workspace and K2 Process Portal

Custom development tools such as .NET, Silverlight etc are all supported to surface the data

The K2 view flow is available for users to see the real-time look into the process. Take care of this when designing your process

View Flow component can be re-hosted as it simply requires the process id as a query string parameter

Reports may be build using Reporting Services and SmartObjects. To get to the queries, run the SmartObject Service Tester.exe (C:\Program Files\K2 blackpearl\Bin)

Example query: SELECT * FROM Activity_Instance.List inner join Process_Instance.List on Activity_Instance.List.ProcessInstanceID = Process_Instance.List.ProcessInstanceID

By default console logging is enabled

When versioning DLLs, try not to leave the DLL extension as K2 gets slightly confused. Rather use TFS for source control

K2 DLLs need to be GAC’ed on the reporting server if you wish to use the extended reports with K2 blackpoint. Once that is completed, register the extensions in the reporting services configuration XML files to ensure the SOURCECODE data source is available for selection.

I used the same trick on day 3 to warm up my food and enjoyed lunch thoroughly.  After lunch, with some extra inspiration, I also added a link to the View Flow report into my custom work list which made me smile.

 

K2 Solutions Professional Training – Day 2


Day 2 started off considerably better than day 1.  A minor hotfix was required to get our SharePoint hosts back up and running and I was delighted to find my VPC is running order after updated it.  #success.

Here, in no particular order, are the K2 snacks I picked up on day 2:

SmartObjects allows for loose coupling of data via referential consumption

Enterprise information integration (EII) ensures that you are always looking at real-time data

SmartObjects are transactional and expose methods to rollback if required

SmartBox is a pretty useful tool to create virtual 3rd party datasources as part of a POC / presales engagement

SmartObjects only available for design when using K2 blackpearl.

K2 blackpoint does not ship with SmartObject designer, but references the SharePoint objects.

K2 ships with SmartObjects out of the box for example Salesforce.com, Microsoft Active Directory and more.

K2 blackpoint SmartObject definition is still slightly unclear.

K2 underground has a number of prebuilt service objects for use.

K2 plan to add Dynamics CRM to their list of available service objects soon.

K2 connect is geared towards providing Service Objects for SAP using BAPI.

A SmartObject tester utility is available in the K2 bin folder on the installed server. This tool can be used to interrogate the SmartObject without building InfoPath forms or any other data surfacing tool.

K2 has 14 databases

At lunch I decided not to settle for cold food and took it downstairs so I was a happy camper.

Mounting an ISO image on Windows Server 2008


I used to use Daemon Tools exclusively for all my images.  Games, program installs, you name it.  It worked just fine.  Then I took a small break from the ISO world (work and life happens) and on my return I found that sadly Daemon is no longer the answer to all of my ISO related challenges.

I needed a quick way to mount the Visual Studio 2010 evaluation image so I can develop on my BikeID project and after doing a little bit of research I found Magic ISO Maker.

Quick and easy to install and it just works.  My kind of development support application.

I came across a great post on how to download, install and enable it for Windows Server 2008 by MrGroove. *Love the name btw.

Here is a link to the post.  It saved me quite a bit of time. – GroovyPost.com

What is BikeID?


Overview

Cycling, no matter which form, is a huge sport in this country.  Many people participate in various categories every weekend. BikeID

N number of cyclists’ suit up every weekend for fun rides, recreational rides, club rides, events, tours, excursions and more.  In the same token, thousands of golfers play golf every weekend.  Golfers have an online identity which they access via myhandicap.co.za.  This identity allows the golfer to track their progress throughout the year as they play round after round.

Why can’t cyclists do the same?

The simple answer to this question is that cyclists CAN do the same.  It’s just going to take key relationship management, a solid solution implementation and a bit of marketing to spread the word.

Introducing, BikeID, the online identity for all cyclists.  The website, www.bikeid.co.za, will act as an aggregator of information in the cycling industry with one key differentiator, your BikeID.  BikeID will work on the principle that each cyclist, once they’ve completed their race, will be able to come to one web destination to view their results and compare them to their friends’ results, plus a whole lot more.

BikeID will not try to replace any of the existing websites or portals that exist today, but rather fulfil a need that is simply not catered for: a one stop shop to track your race results.  BikeID was conceptualised because of the following high level reasons:

  • Cumbersome and time-consuming to find race results / photos:  When participating in a race, participants need to return to the particular site for race results.  A number of action photo providers also exist, and participants aren’t always sure where to find their photos;
  • Difficulty in finding events:  A number of websites host event calendars including cyclelab, ndorfin, entrytime, mtncycling, Nissan Series to name a few;
  • Tracking history of events: There are a number of key timing players in the cycling industry, for example Racetec, Championchip and SSTiming.  These organisations keep a history of all races completed by an individual, but the rider has no way to track their history across all events, as these organisations do not merge their results together.

BikeID will overcome the challenges noted above, by creating a neat, clean and easy to use web interface whereby visitors can complete the following key functions:

  • View ALL race results:  BikeID will aggregate race results from all the major time keeping providers and surface it in a way that is easy to use, while giving cycling enthusiasts a tool whereby they can track their progress online in a very similar way that myhandicap.co.za allows golfers to track their handicaps;
  • Race Statistics:  Having one datawarehouse filled with race results and rider demographic information will give BikeID the ability to offer reports that were never before possible.  For example, “show me all the riders aged 30 years and older that have completed the Magalies Monster in under 3 hours”;
  • Find ANY event:  BikeID will set up partnerships with all event providers to build up the most comprehensive event listing in South Africa;
  • Find ALL photos: BikeID will have access to the photo providers in the same way that it will have access to the race results.

Benefits of having a central datawarehouse of results don’t only extend to the cyclists.  CyclingSA & Central Gauteng Cycling, for example, can also benefit by having an much easier way to seed riders.

The following diagram illustrates how BikeID will make cyclists’ lives easier:

BikeID Solution

As illustrated above, cyclists will no longer need to sift through tons of websites without direction trying to find that elusive event, photograph or race result. Instead, they will now be able to go to one website, www.bikeid.co.za, login to their profile, and view all this information in one place.

Initially, the website will cater for the three key areas that is frustrating cyclists today, which are events, results and photos.  A couple of key opportunities exist in doing so.  Advertising space is the first key area and moving forward, the information gathered from cyclists can be used for further profiling and target marketing.

A bit about the technology

BikeID will be built using Microsoft SharePoint 2010 and will take advantage of the rich reporting capabilities available in PerformancePoint Services.  The decomposition tree report (made possible by Silverlight 4) and PowerPivot will feature prominently to allow cyclists to dynamically report on data.  Static reports using dashboards will also be available, but with PerformancePoint Services these static reports are simply the beginning.  Cyclists will be able to drill into data dynamically by simply interacting with the report via the browser.

What about the existing websites?

As noted above, BikeID is not here to replace functionality of existing websites.  Race providers such as racetec, sstiming, championchip build their business models around the timing of events and not in providing their users a web front-end to analyse data.  It is important to note that where data is used from a particular provider, the provider will be prominently advertised with links back to their website etc.

Cyclenation is in my opinion one of the better community type websites out there.  BikeID will therefore not try to compete with social initiatives already running, but will rather add something to the cycling community which can be cool to use and get people excited about cycling.

Last Word

A good friend of mine, John Nelson, once said “If something is measured, it will be improved.”  I’m not 100% sure if he was quoting someone, or simply dropping knowledge, but since hearing that I’ve become determined to give the cycling community a tool to effectively measure themselves in a cool, funky, and easy to use way.

This is BikeID, your online bike identity.

Quality, Correctness, and Building Components to Specification


If you’re unlucky enough to still be forced into building software according to legacy predictive approaches such as Waterfall (something that still affects a large majority of companies today), something to always keep in mind is that the specifications and requirements documents are not the be all and end all of what you as a developer has to deliver.

As we all know, specifications are notorious for being vague and incomplete. More often than not, this leads to scope issues and quality complications down the line. One solution is for the project team to take advantage of newer and more efficient methodologies for building software (Agile etc.), however this is not always possible and hardly ever in your control, given that your company’s sales department is probably still selling fixed-length, fixed-scope, fixed-price projects.

When building software in this way, it is important to remember that – even though you’re restricted by the project approach – you still have a duty to deliver the most value possible to your customer, and this often entails stretching scope and accommodating functionality that is non-existent in the specification.

What this means is that, when you deliver a component that is ‘correct’ according to the functional or technical spec, it should not be considered finished until all of the necessary internal and external quality considerations have been met. What good is a component if it only meets the bare requirements of the specification? Is it really delivering the intended value to your customer? Is it simple, user-friendly and good looking? Is it fast, scalable and secure? Easy to deploy? Easy to reuse? Easy to test and maintain?

Clearly there are many factors that determine the quality of a final product, and hardly ever does your specification provide this granular level of detail (and rightly so). It is up to you as a software professional to use your experience to maximize the quality of your piece of the puzzle, and to always remember that your component is not ‘finished’ just because it meets specification.