Monday 28 December 2009

The Greatness Guide

I'm currently re-reading the humbly titled "The Greatness Guide: Powerful Secrets for Getting to World Class" by Robin Sharma. It's a nice easy read at Christmas time because each chapter is only a couple of pages long, so I can pick it up and put it down in between peeling the sprouts and fixing the Christmas tree lights (again).

It's an easy read, but that doesn't mean it's light on content. Sharma manages to offer 101 focused nuggets of advice for one's approach to life (professional and personal). Whilst the book can be summarised as yet another publication encouraging positive mental attitude and a can-do approach, Sharma's real-life illustrations manage to lift the book above several others that I've begun reading (but not finished).

Monday 21 December 2009

Round the World: Race 4 ends - SAS Consultant's Yacht Continues to Lead

Team Finland, the 68-foot racing yacht with UK-based SAS consultant Andy Philips onboard, won the Africa to Australia leg of the round-the-world race last Wednesday. Having won the first two races and achieved second place in the third, Team Finland sits comfortably at the top of the leaderboard as the crews look forward to Christmas in Oz.

A win is a win, but it was closely fought, and the second placed yacht (Spirit of Australia) was just 30 minutes behind Team Finland as they crossed the finish line. That's a very close margin after nearly 30 days of 24 hour racing across 4,700 miles of the Southern Ocean.
Race four was notable for its close finish (8 yachts finished within 7 hours of each other) and a dramatic startline crash that left two yachts with an unexpected visit to the boat builders prior to leaving port. In addition, Team Finland had a too-close-for-comfort encounter with a whale. After their encounter with a squid in race 2, Team Finland's crew will be hoping for more distant contact with wildlife on the remainder of the journey!

Clipper Round the World is a unique challenge for amateur sailors and those who've never sailed before. If you fancy braving the icy conditions of the north Pacific, the energy sapping heat of the tropics, the mountainous seas of the Southern Ocean and the frustrating calms of The Doldrums, make enquires about signing-up for Clipper 2011-12. Just visit the Take Part / Sign-Up page on the Clipper web site and get a brochure and application form. No sailing experience required, just determination, resiliance and a desire to grab a once-in-a-lifetime opportunity.

Wednesday 16 December 2009

The Duct Tape Programmer (is unit testing necessary?)

A few weeks back I noticed an interesting posting on the Joel On Software blog by Joel Spolsky. Entitled The Duct Tape Programmer, the post was a reflection from Joel after having read Peter Seibel's recent book Coders at Work. The book is an interesting read and is a collation from Seibel's interviews with 15 "all-time great" programmers. One of those programmers is Jamie Zawinski - an early member of the Netscape development team (now a nightclub owner).

In Spolsky's post, in between a few expletives(!), he highlights Zawinski's positive attitude to getting the product out of the door:
It’s great to rewrite your code and make it cleaner and by the third time it’ll actually be pretty. But that’s not the point—you’re not here to write code; you’re here to ship products
Spolsky also highlights Zawinski's more challenging approach to testing:
[Unit tests]sound great in principle. Given a leisurely development pace, that’s certainly the way to go. But when you’re looking at, ‘We’ve got to go from zero to done in six weeks,’ well, I can’t do that unless I cut something out. And what I’m going to cut out is the stuff that’s not absolutely critical. And unit tests are not critical. If there’s no unit test the customer isn’t going to complain about that.
I find the last sentence to be the most challenging. And it seems I wasn't alone. In a subsequent post on his own blog, Peter Siebel went into detail about his 15 interviewees' attitudes to unit testing (and test-driven design). It seems that attitudes were mixed.

As I suggested in my previous post entitled "Who Makes the Decisions to Cut Corners?", the customer will see the impact of reduced testing, and hence I believe that the customer is (should be) interested in unit testing. I don't suggest that your non-techie customer needs to be aware of the detail. What I say is that the development team should be able to offer a reliable estimate of how long each of the steps in the development process will take (including peer review and unit testing), and they should know the benefits of them and the business impact of reducing them. In circumstances where it is suggested that unit testing (or peer review) be reduced, the development team should be in a position to explain the business impact of making such a change, thereby empowering the customer to make a commercially-based decision.

Monday 14 December 2009

NOTE: Will You Be Listening To Enterprise Guide?

This Thursday (17th December, 6pm GMT, 1pm ET) Chris Hemedinger (senior software manager in SAS R&D) will be featured in the next installment of the SAS Talks series. Talking live, Chris will be discussing how SAS programmers can use Enterprise Guide effectively. It's a webinar presentation where you can listen to Chris talk, watch him demonstrate the software, and get your questions answered in real time.

Chris says this is a technical presentation for SAS users, not a sales pitch. Sound interesting? Registration is free! I've registered. Will I "see" you there?

Read the details in Chris's latest post on his SAS Dummy blog.

Who Makes the Decisions to Cut Corners?...

We produce SAS code to solve business problems, right? Those business problems might be a simple question about recent sales figures (resolved by a quick ad-hoc report), or they might be allied to the ability to predict manufacturing failures so proactive action can be taken to avoid the failures. Either way, there's a business benefit which has a value attached, and usually there's a timeliness associated with it too.

For any significant piece of work, you will have some kind of plan as to how you will deliver the work; and that plan will include some element of each of the following standard steps (plus effort estimates for each):
  • Requirements capture
  • Design
  • Build
  • Test
  • Deploy
Sometimes (often?!) the time and cost constraints come into conflict with the total effort indicated by the plan. In other words, the project manager says "you'll have to deliver sooner than the plan indicates, we don't have enough time/money (delete as appropriate) to do all of that". How do you resolve this apparent conflict?

Wednesday 9 December 2009

NOTE: Are You In Need Of Support?

You'll have noticed that I'm a fan of SAS 9's thin-client and visual coding tools. Indeed, my clients are fans of any technology that offers lower total cost-of-ownership (TCO) and greater self-service capabilities.

Web Report Studio (WRS) is certainly a candidate for offering lower TCO and power to the users. Chris Hemedinger (aka The SAS Dummy) used his blog this week to encourage participation in the WRS forum on the SAS support site.

In my experience, the SAS support site is a much over-looked resource at many SAS shops. For clients who have not yet benefited from being regular visitors to the SAS support site I usually highlight:

  • The support home page (support.sas.com) where you'll find the latest highlights
  • The R&D communities (support.sas.com/rnd) which are now known as the Knowledge Base / Focus Areas. These "communities" are populated with information direct from the developers at SAS. They can be your first sight into new features such as Microsoft Project data conversion macros (introduced into SAS/OR in V9.1.3 release 2), earned value macros (currently experimental), and ODS LAYOUT (much of which is pre-production in V9.2). Some areas are more active than others; the Base SAS area seems the most active, and this is somewhat explained in Paul Kent's mission statement for the Base SAS area. If you don't know Paul, he is Vice-President of R&D at SAS
  • The search box on the support home page. This offers you instant access to SAS's vast support database. Check here before you call Tech Support; someone's probably reported your problem already!
  • The SAS Bookstore (support.sas.com/publishing). I've said before that books are the cheapest and can be the most effective training you'll ever get. The SAS Bookstore offers a huge raft of choice (from SAS Press and other publishers)
The SAS web site contains a great deal more than the marketing content that's accessed via sas.com. Use support.sas.com as your entry point and you'll see a whole new vista of information...

What's It All About?

Since starting this blog at the end of July, I've received many kind wishes expressing appreciation for the information that the blog provides. However, I've also had a small number who have (politely) enquired whether the eclectic mix of topics is appropriate.They ask whether the SAS-related posts sit comfortably alongside the "other stuff".

This blog is headed "SAS and software development best practice". With the possible exception of our coverage of the Clipper Round the World Race, all of this blog's posts are written in the belief that they offer constructive advice or information for SAS developers. But what is a SAS developer?

Monday 7 December 2009

NOTE: Jim Davis Jousts

Recently I highlighted a New York Times article about SAS and how its rivals are taking aim at its lucrative Business Intelligence business. I thought the article was informative and offered a balanced view.

I noticed that Jim Davis (Senior Vice President, SAS) posted an equally well-balanced response on his blog at the end of last week. Worth a read

Wednesday 2 December 2009

NOTE: Migrating to DI Studio

Users of DI Studio version 4.21 (available as part of the second release of SAS V9.2) benefit from the addition of the SAS code import wizard. In essence, you point the wizard at your code and it will convert your code to a DI job, including metadata for source and target tables. In practice, it has limitations, as you might expect of the first release of a tool with such high ambitions, but it is an impressive new capability. You can read more in the Data Integration Studio 4.21: User's Guide.

Under the covers, the code import wizard uses PROC SCAPROC. Rick Langston gave me a demo of this new PROC at this year's SGF and I was very impressed. Whilst it is used by DI Studio, you can also use it yourself, most notably for highlighting parallel processing (and, optionally, grid) opportunities in your code. SCAPROC is designed to operate in the background whilst your code is running, so you need to temporarily add a call to SCAPROC at the beginning and the end of your code. The SGF paper by Rick and Eric Thies provides a good introduction. SCAPROC was introduced with the first release of SAS V9.2.

Tuesday 1 December 2009

SAS Professionals Advent Calendar

Today is the first day of December. Time to open the first window of your advent calendar. For a SAS-themed advent calendar, visit the SASprofessionals community. You'll find an advent calendar with a beautiful picture of SAS UK's Marlow headquarters in a snow-filled setting. Each day's window reveals a special offer from SAS.

The SASprofessionals web site also contains a broad mix of groups and activities, forums and SAS-related information. It's worth joining the community...