Tuesday, 28 February 2012

NOTE: Hot Fix Home

A recent upgrade from SAS 9.1 to 9.2 necessitated an upgrade from Enterprise Guide (and Add-In for Microsoft Office) 4.1 to 4.3 for one of my clients. Disappointingly, the EG and Add-In upgrades didn't prove to be the smoothest, and the experience was painful for a significant number of users. Top issues were a) poor migration of EG projects, resulting in users having to re-write some of their projects, and b) Excel freezing when the Add-In was used and the session was left for 15 minutes or so.

As a result of the foregoing, I took more than the usual amount of interest in hot fixes. My usual approach to hot fixes is "if it ain't broke, don't fix it", i.e. I only recommend the application of hot fixes if there's a specific issue to fix.

If you have an interest in hot fixes, the SAS Hot Fix Home is an excellent one-stop-shop for this information in the SAS Support web site. From there, you can choose your version (in the left-hand column), and then select "All SAS 9.x Products" to find a comprehensive list of SAS products with hyper-links to hot fixes for those individual products.

We're now running EG and Add-In with hot fix 20; our users are much happier.

Contrary to the experience with the SAS clients, the deployment of SAS 9.2 Grid has been pain-free and the users have no complaints about performance or reliability/availability. My clients have a robust, scalable SAS service.

Monday, 27 February 2012

NOTE: Enterprise Guide 5.1 - Now Shipping!

If you haven't already picked-up the news from elsewhere, I should tell you that Enterprise Guide 5.1 (EG 5.1) started shipping earlier this month. For SAS 9.2 and 9.3 only* at this point in time, EG 5.1 looks like it adds some decent new functionality. I'll be keen to see it running at SAS Global Forum 2012 in a few weeks.

The What's New guide lists many new features. The ones that caught my eye were:

  • Improved grid support plus support for parallel execution of tasks. I shall be interested to see the degree of WORK library sharing between grid/parallel activity. This has been a weakness in out-of-the-box versions of EG to-date
  • Ability to export your output as an xlsx file (for use in Microsoft Excel 2007+)
  • For programmers, EG 5.1 offers additional autocomplete information (for data set names and data set column names)
  • Sundry enhancements to Query Builder and OLAP Analyser
  • Available as a 64-bit version, in addition to a 32-bit version
There's also an intriguing new tool called the Data Explorer. This apparently allows users to create views of their data with specific columns plus sorting and filtering. It sounds remarkably like the existing Filter and Sort task, so I'll be interested to understand the distinction between the two.

I hope to get my hands on a copy soon!

*I had understood that EG 5.1 was only available for SAS 9.3, but the EG 5.1 section of the What's New guide explicitly states "You can run SAS Enterprise Guide on either a SAS 9.2 or SAS 9.3 server."

Tuesday, 7 February 2012

NOTE: Code Kata #1 Follow-Up

A few weeks ago I published the first in an irregular series of code katas. In a previous post I had described code katas as a form of training for programmers.

I saw a lot of interest around the post.

Richard Koopman posted an elegant response on his blog, including an additional solution for US coinage. His solution was neat, making good use of arrays and iterative coding, but my attention was also caught by Richard's home-made phone stand for his iPhone. Nice work Richard.

My old friend Dave Booth emailed me a solution that he had written off the top of his head, with no access to SAS at the time. It worked. I was suitably impressed. Dave's solution, like Richard's, used what Dave describes as a greedy algorithm. This is a very descriptive name and the Wikipedia entry offers the "coin change" challenge as an example. Dave also made a good point about handling errors elagantly:
Putting something in the code to try to trap unforeseen outcomes is a good habit to get into.
I agree, and code katas are a good opportunity to practice error trapping strategies.

Finally, Dave drew my attention to an excellent source of puzzles that could form code katas: ProjectEuler.net. The site offers a series of challenges that require a mixture of mathematical and computer science skills to solve. Take a look at the list of challenges and you'll see some good starting problems such as "Add all the natural numbers below one thousand that are multiples of 3 or 5".

In summary, don't wait for me to post more code katas. There are plenty out there on the web, and they all offer great opportunities for you to improve your coding skills.

Tuesday, 31 January 2012

"The Delegator" - Positive or Negative Epithet?

In a recent meeting, an action arose and I asked one of my team (PJ) to catch it and complete it. He (tongue in cheek) commented to all those at the meeting that I was "the best delegator" he'd ever worked with. His humorous implication was that I don't do any work, I just get other people to do it for me. I've known PJ for years and worked on many successful projects with him, so I was happy to be the butt of his joke. However, I see delegation is a positive thing, so it set me thinking about how different people understand the verb "delegate".

The dictionary says it means "to give a particular job, duty, right, etc. to someone else so that they do it for you". The fact that one is giving one's work to somebody else to do doesn't sound altogether positive, but if we accept that a team can do more work than one individual, and if we accept that a team needs a leader to coordinate and dispatch work around the team, then the team leader isn't delegating his/her own work, they are simply spreading the team's work around the members of the team.

However, in my mind, delegation is a tool to help the team learn and grow. And that means that I choose to delegate some of the management work to members of the team also. By doing so, I can coach them to learn new skills; and I inevitably learn new things as we go along too.

Not everyone wants to be a manager, but everybody needs to understand the objectives and challenges of management. Armed with knowledge of management, one can work in harmony with one's leaders and management. Moreover, it is often the case that the perception of the team leader's role is not a match for the actuality. For me, team leadership is about a) achieving more than I can manage on my own, b challenging myself and my team to do new things, c) helping my team members to become the best they can become, d) learning from others, e) enjoying the benefits of being part of a successful team.

So, "The Delegator", is it a positive or a negative epithet? In my mind it is a distinctively positive name. It means I'm helping my team to learn and grow, and I'm helping them with their career and their ability to enjoy their working days (and at the same time they are helping me to do the same).

Tuesday, 24 January 2012

You Can't Fire Everyone

Some years ago I was taught a memorable and valuable lesson by my erstwhile programme manager (we'll call him BJ). I was brought into the project to provide knowledge of i) business intelligence, and ii) software documentation appropriate for the regulated pharmaceutical industry. After a while on the project, BJ asked me to act as BI Delivery Lead. He promised me the ability to recruit a team but initially supplied me with two existing staff members.

After a week I went back to BJ and said he'd have to provide me with two different staff members because the first two a) knew nothing about BI, and b) were at each other's throats all day long. BJ told me that nobody else was available; I'd have to make it work. Then he put his hand on my shoulder and told me he'd especially chosen me to act as BI Delivery Lead because he knew I had good people skills. Flattery is a good management technique! But more importantly, BJ was teaching me an important team leadership lesson: developing people is just as important as developing software.

It's a lesson I'll never forget and, as I worked with my two staff members over the following months and we all achieved increasing degrees of success, I discovered that developing people can be at least as satisfying as developing software.

I was reminded of this specific lesson when I read Roy Osherove's You Can't Fire Everyone post on his 5Whys blog in December. Roy's blog is a treasure trove for those who want to become a better team leader. Roy typifies the process of team development as following three phases: the chaos phase, the learning phase, and the self-leading phase. Roy describes how to recognise which phase you're currently in, and how to progress and develop your team. Recommended reading.

NOTE: Monitoring the SAS 9.2 Metadata Server

There's a nice walkthrough of some of the features of the SAS 9.2 metadata server on the SAS Professionals web site in the Social Media / Videos section. You'll have to be a SAS Professionals member to view it from the link I've provided, but if you're not already a member it's a good reason to join now (it's free).

The 7 minute video is particularly useful if you've recently upgraded from 9.1 and would like a reminder of the nice new features you now have available to you.

It particularly caught my eye because I've just recently added the SAS Platform Administration: Fast Track (SPAFT) five-day course to my training repertoire. So, if you plan to attend this SAS UK course this year, you might just find me teaching you (please don't let that put you off booking!).