The following interview is the third installment in the developer.* Global Development Interview Series, a tour around the world of software development, in which we interview a working software practitioner from each country in the world. In the first two installments we visited with developers from Saudi Arabia and Colombia, and here in installment #3 Donna L. Davis converses with Craig Murphy about software development life in Scotland.
Donna Davis: Where do you live and work?
Craig Murphy: I live in Scotland, in a little village called Crossgates which is in the region of Fife. It's a little bit "in the sticks," but we have broadband!
My day job is based in Edinburgh which is about 15 or so miles from where I live. The firm I work for is called Currie & Brown. Their business is quantity surveying, project management, and cost management. I've been with Currie & Brown for nearly eight years.
I also do a lot of voluntary work in the IT community. This manifests itself in the form of written articles, technical presentations, forum/newsgroup posts and very soon, blogcasts!
DD: How would you characterize the type of software development you do in terms of toolset and the nature of the applications?
CM: For six of the seven or so years at C&B, I spent much of my time writing "value add" applications that augment our core business products and services (typically cost management). Therefore, the type of software development I'm very familiar with revolves around software that manages "costs." Much of the software development that I've been involved with stemmed from my employer's clients: city councils, major oil & gas companies, and a number of government agencies.
Of course, there have been some internal applications too, for example, I wrote Currie & Brown's time and expense recording application. It's a Delphi application that creates Word documents; about 300 employees use it day-to-day.
Typically, the toolset that I use revolves around the use of Borland products. I have a lot of code that was written using Delphi and have followed Delphi from version 3 through to 6. Delphi has been greatmoving our applications through the various versions has been a dream. Delphi offers excellent connectivity to virtually any database we might encounter, provides second-to-none support for COM, and it is a pleasant IDE to spend time in! I've also used VBA in conjunction with Delphi to write Office automation applicationsmost users are so familiar with Microsoft Office, it's good to take advantage of that fact.
Outside of my day job, I spend a lot of time in the .NET environment, either in Delphi 2005 or Visual Studio 2003/5. I see a lot of benefits coming from test-driven development (TDD) and find myself spending a lot of time looking at how TDD can help improve the quality of the applications I write both commercially and in my spare time. I'm particularly interested in how we can codify application usage scenarios such that we can test larger parts of the application from a user's perspective (customer tests). It's important to stay up-to-date. Some of my employer's clients use .NET, so it's good to be able to talk to them knowledgably.
DD: Do you work for one company or do you contract for several?
CM: Whilst I'm employed by one company, the work we do for our clients necessitates that I maintain a close relationship with said clients. So yes, I do work for several companies, albeit under the auspices of my employer being contracted to those clients.
DD: Do you consider yourself a specialist or a generalist?
CM: Until recently, I would have considered myself a specialist. Why would I say this? Well, I like to focus on specific things or problems, often finding solutions to them.
Latterly however, and this is especially true as I learn more about project management, the role of the generalist is starting to appear. I wouldn't go as far as saying that inside every specialist there is a generalist trying to get out, but it's not too far off the truth! I'm still a specialist at heart!
DD: From your website I can see that you're involved in the "agile movement." Would you say agile development methodologies have been widely adopted in Scotland?
Scotland enjoys good coverage of the agile movement. For example, we have our own "eXtreme Wednesday" community that serves the same purpose as London's eXtreme Tuesday group. We also have Agile Scotland promoting all things agile on the last Monday of every month. Not forgetting fellow Scot David Anderson, now a Microsoft employee, but still a key player in the "agile management" arena, David has actually spoken at an Agile Scotland meetinganother excellent session.
And we're not short of support for the agile movement from a corporate perspective. Big agile player ‘exoftware' promote agile in Scotland; their Brian Swan has given many thoroughly excellent presentations to the Agile Scotland community. ThoughtWorks too, have provided support through sponsorship, giveaways, and speakers (including Martin Fowler!)
A number of major financial institutions (Egg, JP Morgan, Standard Life) are either very advanced in their agile implementations or are just starting out. The eXtreme Wednesday and Agile Scotland communities have proven to be excellent recruitment zones. Both groups meeting regularly and promote attendee interaction through the use of group exercises or live coding/refactoring sessions.
Whilst adoption of agile and extreme methodologies has been demonstrably good, there's still the issue of how we "sell agile" to companies that are either traditional in their approach or don't really believe that "agile" works. To that end Clarke Ching, a New Zealander living in Scotland, set up a Yahoo! group called SellingAgilea place where folks can discuss what has worked for them.
DD: To what degree would you say Scotland is being affected by the software development/support outsourcing?
CM: Good question. Labour rates for programmers/developers in Scotland is typically (in my experience) 20-30% less than it is south of the border in London and the surrounding area. I'm going to avoid quoting day-rates as they are too emotive.
If, by outsource we mean the situation where a company devolves its development division to another company within the UK/Scotland, then yes, certainly there seems to be a lot of outsourcing, especially of the support function. This is particularly evident as over the last 2-3 years a number of dedicated "call-centre" style operations have appearedthese companies will offer to perform all of you support issues, both on and off-site. It's not uncommon to see Invitations To Tender (ITT) adverts appearing in the local press.
Outsourcing of development exists, however because many companies see their software as an asset, much of the outsourcing revolves around applications that aren't considered valuable from an Intellectual Property angle, or isn't all that unique. Outsourcing of development that provides a company with a competitive edge, perhaps because the software is very specialist in nature isn't something that should be outsourced. If you do outsource a competitive product, make sure that you have put in place legal measures to prevent the outsourcing firm using your software elsewhere...common sense I know, but you would be surprised how often it's overlooked. What I'm trying to say is, "don't outsource your company's IP and your software assets."
I'm not a great believer in the outsourcing of development work, especially if it means that the end-user (the customer) is remote from the development teamthe only thing that vaguely links them is a specification or a requirements document. It's important to bring the customer and the development team closer together, that way the customer gets to see incremental progress, they can see what the development team is doing on a day-to-day basis, guiding them if ambiguity arises and generally being more involved.
Sometimes there's a little irony involved: many Scottish companies outsource their development work to their English-based head offices, yet the software they develop is used in Scotland. This is especially true for call-centre software, but I've seen the same model applied in other engineering industries. Again, the geographical disparities between the developers and the users frightens mebring them closer together!
DD: From your website I can see that you're active in a group called Scottish Developers. Can you tell us what that group is about and how you got involved?
CM: Scottish Developers is a not-for-profit community that offers on-line support via targeted forums and face-to-face events such as evening events and full day conferences. Whilst it's aimed at Scots, we do have members from all over the world. We have close ties with Microsoft, the International .NET Association (INETA), and various book publishers (we invite members to review books). As a group, we've held day conferences across Scotland, attracting 30-50 attendees. It's a language- and platform-agnostic group, so we don't focus on one specific programming language or IDE, although there is a little bias toward .NET and Delphi!
I've been active in the user group community in Scotland for at least the last five years, spending a lot of my time either delivering presentations or writing articles for the UK Borland User Group, UK-BUG (now the Dotnet Developers Group, DDG), the Visual Basic User Group, VBUG, or for the British Computer Society, BCS. Way back in 2003 a few of us wanted to expand the user group presence in Scotland, we kept meeting each other at user group events, so we decided to bight the bullet and started Scottish Developers.
As a result of my work with Scottish Developers, I've found myself playing a big part in the organizing of UK-based events, notably DeveloperDeveloperDeveloper (DDD)taken from Microsoft's Steve Balmer "pitch"! DDD is a community-led event that takes place on SaturdaysMicrosoft offers us their facilities, but none of their speakers! We've had one so farit was a great success attracting nearly 180 people. It's somewhat gratifying seeing such an event take placethe sense of community is good.
DD: What is one of the greatest professional challenges you have faced in your career and how did it change you?
CM: The greatest professional challenge? How did it change me? Wow, that's a fine question. Let me think about that...
Way back in the early 90's I faced a moral and professional dilemma. I was working for IBM at the time; I was on a student placement. Here was the problem: I became involved, without my knowledge, in what I will refer to as a "security incident." I became embroiled in a police investigation involving the alleged authoring of a computer virus. Naturally, I had nothing to do with the said virus, but that didn't help me much with the police (who were rather abrupt with me over the telephone, but rightly so) or how I handled this with IBM.
This couldn't have occurred at a worse time; my boss had just left the company and a new boss had been allocated. What would I do? I hadn't known my new boss for very long, approaching him so soon might cause us to get off to the wrong start. I had confided in a fellow IBMer of long-standing, he gave me advice and support when I needed it.
Eventually (in my eyes), I approached my new boss and told himI told him exactly what happened, how it happened, and the conversations that I'd had with police officers. He sat there with a rather smug look on his face and said "we know, well done for coming forward, we appreciate your honesty." Naturally, I was a surprised, gob-smacked if you will, but part of me was pleased that I had done the right thing. After that meeting, things progressed on a very open and positive note: IBM were very supportive and let me speak openly with their investigatory team. It had been hinted that I should write a paper on the subject; academia, employment and the community mean that I've still to get around to it...who knows, may be there's some mileage in a paper or even a book?
It changed me a lot, and for the good too. Since then, openness and honesty have been key drivers, they are things I look for in others (especially if I'm looking to hire them or work with them), and they are things I hope emit from me. Many people don't appreciate openness and honesty as it can be seen as a negative thing or it is seen as an admission of failure. I'd far rather know about a problem early in a relationship/project than witness a lot of "about turns" or "cover ups" just so folks can save their face. Being open and honest is the best way to move a project forward and to avoid downstream problems.
DD: Are academic programs for Computer Science, Software Engineering, Information Systems, etc., widely available in local universities?
CM: Definitely. Scotland's academic institutions offer a profusion of courses ranging from general IT courses all the way up to specific degrees and master courses. Whilst it's not as famous as the Silicon Valley, Scotland's equivalent is the Silicon Glen, although we use the term less than we did.
Scotland has many IT centers of excellence and provides a lot of expertise to standards groups like the W3C. For example, Edinburgh University's Language Technology Group is heavy contributor to the W3C's XML Core and XML Schema work and the Technical Architecture Group.
DD: Have the Scottish, in general, widely adopted technology for personal use such as Internet connectivity and in-home computers?
CM: I would have to say yes, yes we have. It was a slow start. Many of our telephone exchanges had "thresholds" whereby a number of subscribers had to express interest in ADSL/Broadband before the telephone company would consider enabling the telephone exchange. Then, rather suddenly, late 2004 early 2005, the thresholds were removed and all exchanges received "enablement dates."
Since 2004, the number of "households" that cannot get ADSL/Broadband has reduced to a very small percentage, with many being offered alternative means of connection.
Similarly, the number of wireless hotspots that have appeared is amazing. In the last year, the number of pay-per-use hotspots at Edinburgh airport as trebled. You've got to love what wireless has done for the connected world. With the price of wireless networking kit, you would be daft not to make use it (with the appropriate security in place of course!)
DD: Would you say that the Scottish corporate world has adopted Microsoft or other technologies more widely?
CM: Actually, I would say it's pretty much 50/5050% Microsoft and 50% Java. Obviously there are other technologies that should be mentioned, but let's focus on those two for now.
From a user group or community angle, we've had great take-up for day conferences with a Java theme; similarly, we've enjoyed success with .NET-themed events. On the ground, members of both Scottish Developers and Agile Scotland are a mixed bunch. The agile folks tend to be using Java-based tools, whereas the .NET folks are sitting in the C# camp.
Scotland enjoys its fair share of Microsoft Partners, so it's to be expected that there's a big take-up there. And since many of the large financial institutions run their systems on Java platforms, adoption of Java is high too.
DD: What advice do you offer individuals interested in a career in software development?
CM: This could be a long answer! In no particular order:
Keep yourself up to dateread as much about emerging methodologies, processes and, technologies as you can. Just because college/university is over, keep buying books and keep reading. Keep a keen eye on the standard texts like those by Steve McConnell, Martin Fowler (and his ‘Signature Series' books), Kent Beck, and Steve Maguire. This might also be referred to as: learn one new "thing" every 6-12 months.
Don't become a specialist too soon. I've seen a lot of CVs where candidates focus on one specific programming language; they seem unable to take the skill of programming and apply it in a different programming language. Generally speaking, all programming languages offer the same core functionality, and this is more noticeable in .NET languages. You should be able to turn your hand to most languages in a short space of time.
Don't focus on legacy technologies or "dead" programming languages. Whilst I dislike the cliché, focus on the future. Software development is rapidly becoming a standards-based activity, Microsoft's work in the patterns & practices arena confirms this (Enterprise Library springs to mind). Soon we'll all be abstracting away from the business of writing software towards the business of writing a feature-rich application that is reliable, is proven (well-tested), can be built in a shorter timescale, and focuses on the problem at hand. How often do we, as developers, find ourselves writing the same piece of code over and over again? The adoption of application building blocks will save all developers a lot of time, freeing them up to focus on the real problem (writing the business application) rather than lots of scaffolding/infrastructure and plumbing work that is required to get the business application off the ground.
DD: I see that you do a good deal of professional writing and speaking. Do you have favorite topics you enjoy focusing on?
CM: I tend to focus on topics that I've actually used in my day job. My first SOAP articles way back in 2000 were the culmination of weeks and months of work building an intranet-based human resources package, using a mix of ASP, XML, XSLT, COM, JavaScript, HTML, etc.. Since then I've focused on things that have been good for me, perhaps saved me time, made my job easier or, better still, things that have made the user experience (of our software) much better. This means that I've written about third party components, particularly those that affect the user interface and software testing.
That said, and despite the fact that a lot of folks think it's "bloat-ware," I do like writing and speaking about XML. And because XML can be used to represent SOAP messages, and SOAP messages make up web services, I do like writing and speaking about XML and web services. The whole "Connected Systems" arena, to use Microsoft terminology, is massive: if you're not looking at how Indigo can help your business, you should be.
DD: I notice that your blog is called "The Social Programmer." In what way does that label characterize your "platform," so to speak?
CM: Fellow Agile Scotland attendee, Abdel Saleh, noted that I spent the bulk of 2004 traveling and orchestrating a product roll-out...and spent less time actually programming/coding. Given that I am a developer at heart, Abdel found it odd (read: interesting!). Abdel then noted that I wrote and spoke about my programming experiences and that he thought I was being sociable by sharing what I had learnt...hence the name "The Social Programmer". Abdel came up with the idea around about the same time I started blogging, and my blog needed a name, it just stuck!
My day-job uses me for eight hours per day, more if travel is involved. In addition to those hours, I spend three to four hours per day either writing, preparing presentations, learning, blogging or any other community-oriented work. Community work includes organizing developer conferences, evening events, reading and responding to questions in newsgroups and forums, and even some admin-like tasks such as posting out Visual Studio 2005 beta 2 DVDs to those who couldn't get hold of one though other means. The community work is a social thing tooit's about doing something that brings like-mind people together.
I get endorphin hits from the community work. It's very gratifying playing a part in the organization of a developer conference, completing an article, or delivering a presentation. We all need endorphin hits!
developer.* appreciates Craig Murphy for sharing his time and efforts with us, and Donna L. Davis for the great interview.