What geology did to me #4 – scientific thinking

I work in IT, computers, geeky stuff. Having been a programmer I now manage a team of them, building new systems and supporting old ones. Having a science PhD is quite a common background in my line of business. Not the best use of my scientific training perhaps, but at least I don’t work for an investment bank.

Computer programs are sets of instructions written by humans, who get things wrong. The instructions are then followed by computers, which are stupid. Throw into the mix the fact that the people who pay for software often don’t understand IT and sometimes don’t really know what they want and you get an explanation for the high cost of the average IT project. [Or so I’ve heard, obviously my current and any future employers are exceptions from this depressing picture *cough*]. A big part of the cost of software is testing it to remove bugs. Removing them all is nearly impossible (you’ve used software, so you know what I mean).  Simply removing the embarrassing ones is hard enough. Many bugs are where the person writing the code has made an obvious mistake. These are easy to diagnose and fix.

The bugs that the manager in me most fears (and the geek in me quite enjoys) are the hard ones. The ones where the fault is intermittent, strange and where you don’t even know where the fault lies.

In the old days, computers were big humming boxes in the corner of the room. There was only one set of code to go wrong. This old mainframe code is fantastically successful and is still running in many companies. If you perform a financial transaction it is likely that some of the code involved was written in the 1960s or 70s by a quietly spoken man with a beard and flared trousers.

Now life is more interesting. Imagine this web-page has gone wrong in some way. Where is the fault? It could be the blogging software, or the database software the blogging software uses, or the operating system of the server hosting this site. Or it could be a router, DNS server, piece of cable, piece of wire, internet cache or network accelerator anywhere between the server and your computer. Or it could be your browser, or your operating system, or you. Yes you! You might raise a bug saying this post should be more interesting: clearly nonsense, user error!

You take my point. Most of the applications my team supports are web-based. Often if a user raises an bug we don’t know where the problems lies. I work for a big company and our systems are much more complicated than my example.

Inexperienced developers when confronted by an urgent bug often dive into the code. They feel safe there, they feel like they are doing something. Wiser heads take a step back and start formulating hypotheses and collect data to falsify them. In order to fix a complex problem you must first understand it. This requires you to engage with a large and complicated situation, decide what you think is going on and then collect more information to see if you are right or not. A geological training is a good preparation for this.  We know that there are variety of ways of gathering more information: a literature search, mapping, thin-sections, microprobe, isotopic analysis and so on. Deciding between more logging, sniffing the network, finding out how many users the problems affects or getting details of a user’s desktop configuration is a very similar process.

With Geology, understanding something is the goal. When fixing a bug, this is only the first stage, but it is usually the hardest. If the problem is in your code, a fix may be easy, it may be hard but at least the solution is in your own hands. If you need a fix quickly, then there is always some dirty hack tactical enhancement available. If you are unlucky and the problem is in someone else’s code then having an explanation complete with evidence is vital. Getting someone else to take responsibility for ‘your’ problem is basically against human nature. The trick is to have compelling evidence and to use it to make your case clearly and concisely. Again, my geo soft skills come into play.

Just to close the conceptual loop, consider the ‘faster than light’ neutrino situation. The last I read the ‘impossible’ result has been traced back to a fault in a cable in a GPS device. Surely this is a case of scientists using the scientific method to find bugs in systems? To be fair though, I’ve never yet invoked Einstein’s theory of relativity to solve one of mine.

5 comments

  1. After nearly 20 years as a geologist in the oil industry, I retrained into software development a decade ago, and I now work in IT strategy, architecture and innovation for a UK government department.

    Like you, I think that my geology training has well suited me for an IT career, and I really identify with what you’ve said above. Here’s a few other reasons why geology is a good foundation for IT:

    Multidisciplinary. Geology is a multidisciplinary science – you need to know a bit of physics, chemistry, biology, mathematics, engineering and even history. Geologists therefore are natural polymaths and are able to appreciate and learn from other disciplines. This is very useful to understand the perspectives of a wide range of business and technical stakeholders in an IT project. After all, hardware engineers aren’t too different from Schlumberger wireline engineers, really.

    Abstraction. The Earth is a complex system with processes operating at many spatial and temporal scales. To have any chance of understanding these processes a geologist needs to be able to abstract information over many scales, and to decompose complex information into more understandable building blocks. This is a key skill in software development and architecture.

    Visualisation. Geology is a visual subject and either attracts or trains those with a strong visual understanding of the world around them. I often find myself in conversations saying “let me draw you a diagram to explain”. Drawing also helps abstract thinking.

    There are probably other aspects of geology that lend themselves to IT, and particularly to software development, but these are the ones that I think apply to my experience.

  2. For example, you could enter “DUI attorney Los Angeles” and end up with a long list of individuals or law firms, all of which could provide you
    with a capable DUI attorney. I Googled, “DUI lawyer Los Angeles” and came
    up with million defense attorneys in Los Angeles County.
    <w:Lsd – Exception Locked="false" Priority="68" Semi – Hidden="false". A driving under the affect (DUI) or "drunk driving" scenario is a special situation. A qualified attorney will understand the best way to present your defense based on how you are being charged.

    my web blog … DUI Attorney In Long Beach

  3. Hi, I do believe this is an excellent website. I stumbledupon it ;
    ) I am going to revisit yet again since i have
    saved as a favorite it. Money and freedom is the greatest way to change,
    may you be rich and continue to help other people.

  4. It is truly a nice and helpful piece of info. I am happy that you shared this helpful info with us. Please stay us informed like this. Thanks for sharing.

Comments are closed.