
The Linux Philosophy for SysAdmins, Tenet 24—Reality Bytes
Author’s note: This article is excerpted in part from chapter 26 of my book, The Linux Philosophy for SysAdmins, with significant changes to update some information in it and to better fit this format. This is the last article in this series.
This series of articles and the book on which it’s based are, after all, about a technical philosophy which would not normally be considered to be very practical. I just want to take this opportunity to bring us back down to the real world.
There is “truth” here. Reality imposes itself upon SysAdmins every day in a multitude of ways. It is possible always to be able to follow each of the tenets previously set forth in this book — but it is quite improbable. In the “real” world, we SysAdmins face some incredible challenges just to get our assigned work completed. Deadlines, management, and other pressures force us to make decisions many times a day about what to do next and how to do it. Meetings usually waste our time — not always but usually. Finding time and money for training is unheard of in many organizations and requires selling your SysAdmin soul in others.
Finding the time to remember and employ the Philosophy is challenging at best. Yet adhering to the Philosophy does pay high-value returns in the long run.
Still, reality always intrudes on the ever-so-perfect philosophical realm. Without room for flexibility any philosophy is merely doctrine and that is not what the Linux Philosophy for System Administrators is about. In this final article we explore how some aspects of reality affect us as System Administrators.
People
Computers are easy – people are hard
– Bridget Kromhout
SysAdmins must work and interact with people. It can be a difficult but we do need to do so from time to time.
One thing I have always liked about computers from the very first time I sat down at one in 1969 was the fact that is did exactly what I told it to do when I wrote the program. I could make it do anything I wanted – within its capabilities – by typing in a series of commands that formed a program. If I wanted to change what it did all I had to do was change the program. Very simple.
People are not simple at all. Not only don’t I have access to their programming, they don’t always pay attention to the programming they have — or that others think they have. People are not at all simple. If I were the boss of everyone they would all do it my way and then things might be simple. But it doesn’t work that way.
So in our striving to be the most Zen SysAdmins possible we run into people. They are usually well meaning, even most of the PHBs. The problem is that many don’t understand technology.
The micromanager
I once had a situation where someone with a position of some authority at a place I did some volunteer work for sent me an email saying I needed to get a document up on the web site news feed as soon as possible. They also said that the hard copy was on the desk at the office. They wanted me to scan the hard copy and put that up as an image. I responded that I wanted to see the file and I could put it up before I would have a chance to look at the hard copy.
This person responded back to me that they (meaning more than two people by now) wanted me to see the hard copy because it was an odd size and they did not want it “to be too big.” Whatever that meant. But, oh, by the way, they did have a copy of the PDF that was sent to the printer. Unfortunately that PDF was not attached. To which I responded that I do not care about the size of the hard copy because I would make it an appropriate size for the space available on the web site news feed and please send me the PDF.
The next email I received had a copy of the PDF attached and a few words to the effect that, if the document was too big on the web site, a lot of people would be very upset. What?!
I did a copy and paste from the PDF to the WordPress post on the web site and added a copy of the image they wanted on the document. It looks really good, but it will be gone by the time you read this so I won’t tell you where to look for it.
But wait! There’s more!
So far, this has taken about three days. I could have had the document up on the news feed twenty or thirty minutes after receiving it had they sent the PDF in the first email.
In the interest of ensuring harmony amongst the people involved, I spoke to the writer of the emails the next time we met in person, indicating that I was not thrilled with their tone. I then briefly explained four good reasons why I was doing it the way I did and why the use of a PDF directly on the web site was not nearly as good as using the raw text I copied from it. I am sure you can think of multiple reasons why, so I won’t even go into that here.
The person I spoke to looked quite perplexed at all of this and said, “I don’t understand anything about what you just said.” I said that I was just trying to make sure that the document looked as good as possible on the web site, and left the conversation at that point, leaving unsaid a few things that I was thinking by then.
That is dealing with people. It is our reality.
I know that the people involved in this just wanted everything to look good and make a good impression on visitors to the web site. I know that. But knowing it does not make it easier to deal with the frustration of having multiple people trying to micromanage a task that needed no management at all.
Tech support terror
I am a people, too. When I call for tech support for my Internet connection when something is not working, I don’t even let the first level support person ask me the first question on their script before I say, “I did reboot the modem. I did not reboot my computer because it is Linux and does not need rebooted. I want to speak to the third level support.”
They hate when I call. I know they talk about me for days after I call them. And yet when I call I have already done all of the things that they would try to have me do during the scripted conversation with the level one support people. I cannot stand having to work my way up through various levels of support. It takes time away from me getting my work done.
Yet, sometimes, they can get it fixed right away. Sometimes the person on the other end of the conversation actually has some pertinent knowledge.
So I asked myself, “self — how do others see me when they need help from me?” The answer was not good. I asked my wife and she did not hesitate. It was not pretty. I can be arrogant, condescending, brusque, and a real jerk all at the same time. That is certainly not my intent, but there it is.
For me this can be the result of frustration at something else entirely, that I was interrupted, that I hear the same problems many times over, that I am just tired, or whatever. All of this emotional response to whatever is happening then gets in the way of fixing the problem.
This is my reality — in both directions. So my personal tasks are to be nicer to people who need my help and also to the people from whom I am trying to get help.
Of course, since I first wrote this for a different article, long before I included it in my book, we now have the endless loop of AI-driven voice response units to isolate us from any humon[sic] who might actually know about how to fix our problems.
You should do it my way
I can’t count how many times I have said in this series — and my book — that there is no one right way to do anything in Linux. I even wrote a chapter for the book entitled, “There is no should,” to get the point across.
Yet everything would be so much simpler if I just gave in to my urges and tell people to do it may way. I just know that everything would be fine if they just did it my way. It can be frustrating and hard to watch a new SysAdmin struggle with something that I can fix quickly. It is very difficult for me as a mentor to let them make mistakes. I think this is the hardest thing for me, to watch and let the young ones learn the hard way.
I learned how to do this from my flight instructor. Many years ago I took flying lessons. I was about half way through this process, which took several months, and I was preflighting a Cessna 152 prior to a training flight with my instructor. I had completed the entire checklist for the exterior and had gotten in the plane and seated myself in the left-hand seat. I went through the checklist for the cabin and the startup checklist. checklists are big things for pilots. All this time, my instructor just sat in the co-pilot’s seat and watched.
At the end of the checklist I released the parking brake and advanced the throttle a bit. The airplane did not move. I advanced the throttle a bit more and still nothing happened. There was only one reason this might occur. I looked out the side window to verify that I had indeed left the chocks in place. That plane was not going to go anywhere – that is exactly what the chocks are supposed to do.
I went through the shut-down checklist, exited the aircraft, pulled the chocks, got back in, and went through the startup checklist for the second time. This time, the aircraft did move freely. I taxied to the end of the runway and took off to start our training flight.
My instructor never said a word about it. She did not have to because I knew I had missed a step on the checklist. I learned that lesson well. It was my instructor’s job to teach me how to fly by myself and not to do things for me. How would I ever learn if she did the things that I forgot for me? I don’t fly any longer, but when I did, I always, always remembered to perform every item on the list and to be sure I checked that the chocks had been pulled.
These are absolutely the best teaching moments. When you can see that the young SysAdmin is clearly in the process of making a mistake and you let them continue without saying a word.
There is something else to watch for in these situations. Observe the demeanor of the SysAdmins you are training. If they get frustrated and angry and blame you for not telling them what they know you saw, if they blame someone else for their problems, they may not be suitable for the job of SysAdmin.
It’s OK to say no
Sometimes a SysAdmin just has to say “no.” A flat, straight, there are no alternatives, “no.” BRuce and I had to completely reject a couple projects that wanted to use our lab. Those projects would have produced great upheaval in our smoothly running lab, destroying the work of several other projects while they were about it.
I mean, we did explain why we could not take on those projects. We spent some time with the engineers who proposed those projects and helped them understand why their projects were incompatible with the work already being done in our lab. They were not happy but they ultimately understood why we could not do what they needed in our lab. In both cases we suggested alternatives including building their own labs but I have no idea what they ultimately did.
Sometimes a strong “no” is the right answer whether it is appreciated or not.
Understanding the past
I find it both fun and informative to learn about the history of Unix and Linux. Earlier in this series I referred to two books in particular that I have found helpful in my understating of Linux and its philosophy.
“Linux and the Unix Philosophy”1 by Mike Gancarz has been particularly interesting in terms of the philosophy. The second book, “The Art of Unix Programming”2 by Eric S. Raymond, provides fascinating insider historical perspective on Unix and Linux programming and history. This second book is also available in its entirety at no charge on the Internet.3
I recommend reading both of these books if you have not already. They provide a historical and philosophical basis for much of what I have written in this book.
Final thoughts
This has been a fun book (and series of articles) to write. When I first outlined the chapters I thought that I might not find very much to say about some of them. It seems that I really did have a lot to say. So I will keep this last part brief.
- Computers break.
- SysAdmins fix broken computers.
- People are hard.
- SysAdmins deal with all types of people.
- Read the books and articles I have referred to in this series. They are amazing resources and can provide powerful insights into being a Linux System Administrator.
- Never stop learning new things. There is so much to learn with more every day.
- Follow the philosophy.
- Use the algorithm. It works.
- Mike Gancarz, “Linux and the Unix Philosophy”, Digital Press – an imprint of Elsevier Science, 2003, ISBN 1-55558-273-7 ↩︎
- Eric S. Raymond, “The Art of Unix Programming,” Addison-Wesley, September 17, 2003, ISBN 0-13-142901-9 ↩︎
- Eric S. Raymond, “The Art of Unix Programming,” http://www.catb.org/esr/writings/taoup/html/index.html/ ↩︎
.
This is the complete list of all the articles in this series.
- What is the Linux Philosophy for SysAdmins?
- Data Streams, the universal interface
- Transforming Data Streams
- Everything is a File
- Use the Linux FHS
- Embrace the CLI
- Be the Lazy SysAdmin
- Automate Everything
- Always use shell scripts
- Test Early, Test Often
- Use common sense naming
- Store data in open formats
- Use separate filesystems for data
- Make programs portable
- Use Open Source software
- Strive For Elegance
- Find the simplicity
- Use your favorite editor
- Document everything
- Backup everything frequently
- Follow your curiosity
- There is no should
- Mentor the young SysAdmins
- Support your Favorite Open Source Project
- Reality Bytes