As I was looking at Maxine Giza’s article regarding the Long Term IT Outlook, I was drawn to the areas many people cited as concerns. I likewise see that there are many challenges we are all facing, and that challenges differ between organizations. How optimistic or pessimistic we are depends a lot on where we are, what we do, and how flexible we are with the work we do. With that, here are several concerns voiced in the article, and my comments about them.
Career advancement is limited
As a software testing practitioner, I can continue to be a practitioner, and get better at what I do, or I can manage other testers. Those are generally the options, without changing my role… and that’s the key. If I expanded into coding, security auditing, or working on a less well served initiative, that greatly expands my career opportunities. It may not immediately expand them upward, but it will certainly expand them outward.
Management is ineffective
This would have impact on my own feelings of positivity for the future. What can I do about it? Keeping an open dialog with my manager is critical. It’s also important to get a higher view; see what my manager’s manager is looking at. By working to understand my business better, and what matters to my business, I can better understand management’s motivations and priorities, and align my efforts where possible with those priorities.
Training is limited
Considering the wealth of information that is available on the Internet today, and the ability to create virtual spaces and to download applications to create services, I feel we have a leg up here. Granted, some opportunities to learn will not be done in this manner. I cannot realistically simulate a mainframe or a big data cloud. Still, today, anyone can create a plan to learn more and become more proficient at almost any area they choose. For those areas still out of reach for a do-it-yourself learner, up-front initiative so far has helped sell the organization on me taking the next step.
The IT Budget Keeps Getting Cut
This is hard to overcome, but its not impossible. Initiatives can be developed for free with open source tools. Cloud devices can be configured and used on demand. Scripting and removing repetitive tasks can win back some of the discretionary budget by making onerous and time consuming tasks more manageable. Doing more with less always sounds like a cop-out answer, but if we can consider it a challenge to rise to, it may well pay dividends later on.
Little room for innovation
If this is a top down view, perhaps bringing a small side project to fruition will help management think differently. If it’s bottom up, there’s little to stop me making the future I want to see. Limitations may of course exist. Rewriting our legacy application in a new language may be impossible if attempted up front and whole cloth. Iteratively, and over time, it may be much easier to accomplish.
Jobs are being outsourced
I have seen this done effectively. I have also seen it cost companies much more than if they kept jobs local. Companies that choose to “race to the bottom” ultimately get what they pay for. I have to innovate on a different level, in a way that cannot be outsourced. Is that a high bar to aspire to? Absolutely! However, I would say working with that approach may well make me harder to replace.
We are still in a down economy
How important is long term job security to me? If that is important, then fears of the economy, and the ways larger companies hire, do play into this. If, however, I am willing to place bets on smaller organizations, am willing to move for work, and can deal with the possibility of needing to look for new work every couple of years (on average), working through a down economy is not so scary. To paraphrase James Bach, “I don’t need every company to hire me. I just need a few. In fact, at any given time, I just need one!” How I position my work, and my efforts in the broader community will have more effect than an up or down economy will.
To reiterate, my assessment of the future outlook in IT is “guardedly optimistic”. Disruption and challenge face me every day. There will be challenges in the next few years I haven’t even started to consider. I also believe showing activism in my craft and getting involved in initiatives will help with that uncertainty. Ultimately, my questions is this: we see the future challenges… what are we going to do about them?
It is not uncommon for people in technology to occasionally shoot a provocative idea out into the wild and then make a temporary show of it. David Heinemeier Hansson did this recently by claiming that TDD is dead, and Woody Zuill did the same with NoEstimates.
A lot of the time, the conversation softens a bit when you step away from the loud title and figure out what the person is really trying to say. That can be difficult to do.
His post outlines a couple of main needs in creating software such as customers wanting products that work, companies needing a positive reputation, and people on the development teams needing to feel competent.
The question being posed via the NoTesting hashtag is “Is testing the best way for a company to meet these needs?”
Lets take a closer look at the question, the premise, the rhetoric, and test this idea.
“You have to put keywords in your resume because everything is digital now. So you need to make sure you show up in searches for the jobs that you want. You may only have 80% of the skills needed which is usually ok but you need to lie about the other 20% just so a recruiter will talk to you.”
- Anonymous Hiring Manager, Private Correspondence, November 2014
Imagine a world where this is actually true, where every employee lies in order to get the job, or at least, most of them do. This leads to the worst kind of imposter syndrome, one where people are afraid of being found out, not because of a lack of self-confidence, but because they can’t do the job and are faking it.
I expect three things would happen in this kind of world: Delegation, Deflection, and Destruction. Sadly, I’ve seen them all, all too often.
Let me explain.
If you don’t know how to do it, that might be okay — you just need to find someone else that does. As awkward as this sounds, it is exactly how upper-level business functions: The senior executives set vision, middle executives declare tactics, managers break that down into tasks, and the person at the bottom actually does the work.
In some cultures, getting someone else to do the work is a sign of leadership.
In a world where everyone is doing this, there will be one poor loser at the bottom keeping the lights on while everyone else is busy managing or architecting or analysis-ing. It’s sad.
Most companies are not this extreme, but I have worked with a contractor or two that did not understand the difference between compiling the code and executing it. How did anything get done?
He had a buddy.
If you can’t do the work and can’t delegate, then next best thing to is find someone else to blame. The project isn’t your fault, after all: It was the vendor who couldn’t deliver their part. Perhaps the analysis was too vague or the DBAs couldn’t configure the system. You can blame anyone involved — just don’t admit that you can’t figure out how to do your part. Maybe, if you blame and stall long enough, you can find someone else to do the work!.
Again, the world isn’t really this dark, but I did work on a major project for a large telecommunications company you’ve heard of, and the permanent employee who was “supervising” us couldn’t get Microsoft Visual Studio installed on their machine. In a two month period. They asked us to do it for them. Really. (It was little more complex than usual: Windows 8 was in preview, we were building apps for the windows store pre-launch, there were VM’s involved … but no, it wasn’t that hard.)
Sometimes, competent people make a ruckus about how everyone else is incompetent. If that is true, the bad news is the competent person is vastly outnumbered, and the incompetent have something to lose. The result is an activity known as workplace mobbing. Psychcentral describes workplace mobbing as a reverse-bullying where a bully enlists co-workers in a campaign of “psychological terror” against victims who are typically “competent, educated, resilient, outspoken, challenge the status quo, are more attractive or empathic and tend to be women, aged 32 to 55.”
Reading that list again, I notice these are virtues. The competent person is good and experienced. They likely gained that experience outside of current company, recognizing shenanigans and incompetence for what they are. The person goes one step further and acts on this knowledge – putting the fakers at risk. So the fakers destroy them.
Undistracted by little things like work or the pursuit of excellence, the fakers have plenty of time to plan and organize the destruction.
If any of what I wrote above feels a bit to close for comfort, that’s likely because it is a little bit too true. The anonymous example above is real, taken from a hiring manager from a real message board, talking about real work.
The “imagined world” is not quite real, but it is a little too realistic for comfort.
Here’s the big news.
This is about us. All of us.
It’s easy enough to criticize those horrible people that lie on their resume. As long as those are other people, we can feel smug, secure, even superior. But we’ve all done some things wrong. If you haven’t ever lied, there is always the misrepresentation – saying a truth in such a way that it gives the wrong impression.
The further you climb, the more the temptation to misrepresent, to be bigger than life, to get someone else to do the work. Meanwhile the system rewards the lying.
We can’t change the system, but we can change how we behave. Take the hit for doing the right thing. Be the manager that rewards the right behavior. Protect the team from silliness. Hire for ability to learn, dedication, and integrity.
For fifteen years, my friends and family told me that if I hated the system so much, I should start my own company.
In 2011, I took Excelon Development full-time, and we ain’t starving.
What have you done to make the world a better place lately?
What are you doing today? And tomorrow?
Admittedly, the title is a bit misleading. Time is a constant. We cannot really “make time”. We can’t bank it, we can’t borrow it, we can’t really even “manage it”, contrary to popular belief. There is only one thing we can do with time, and that is use it. Each one of us gets the same twenty-four hours as everyone else, and each of us has to make choices as to how we will use that time.
Additionally, we have another limited resource, and that is attention. We like to think that we can effectively multi-task, or that we can accomplish many things at the same time. For myself, the more critically I look at the way I work and the goals that I can accomplish, I have given up on this idea. Sure, I can read email and listen to music at the same time, but that’s not the multi-tasking I am referring to. When I need to be working on something that requires focus and attention, I do much better when I can partition the work I need to do, and want to do, in discrete chunks of time. Even here, it can be difficult to give the proper attention to multiple areas that need it. Also, there is the very real problems of getting stuck on a problem, and having to deal with a challenge that, for lack of better words, is just tedious.
The time and attention problem can be approached from many angles, but my personal favorite is to use a method called the “Pomodoro Technique”. This method gets its name from the kitchen timers that look like tomatoes (Pomodoro is Italian for “Tomato”). The traditional approach to using a Pomodoro timing system is that a block of time is set up where deliberate, focused work is done. That work is timed (typically at intervals of twenty five minutes). At the end of that twenty-five minute block of time, you take a five minute break. These breaks are critical, make sure to take them! At the end of the five minute break, start the twenty-five minute timer again. Repeat the process four times. At the end of those four “Pomodoro” periods, you set up a longer break, between fifteen and thirty minutes. The net result is that, in a period of two hours, you have put an hour and forty minutes into intense, focused work and effort, with twenty minutes of “slack time”.
Along with this approach, for it to be truly effective, a way to keep track of the time you are spending is important. This can be done with a notebook and an actual kitchen timer, or it can be done with a dedicated application that takes care of these steps (I use a program called Pomodairo to do this for me).
In most cases, placing a boundary of twenty five minutes is ample time for a session, but some tasks are, frankly, too frustrating or painful to deal with in full twenty-five minute blocks. These are the areas where procrastination is all too familiar. Still, I know that I need to do these tasks, but struggle with getting them done even in this environment. What to do? For this, I am grateful to Merlin Mann and what he calls the “Procrastination Dash”. This is a modified Pomodoro approach, in which you set up ten minute intervals for focused heads down time, followed by two minute breaks, and then repeat the process five times. In this manner, one hour yields fifty minutes of focused attention and ten minutes of break time. More important, it’s a great way to focus on genuinely problematic tasks, or areas that may not require a full Pomodoro cycle to accomplish.
For me, the biggest benefit in using these approaches is that it gives me a target for focused effort, and it also gives me permission to take a break and do anything I want to with that break time. It gives me a chance to work on the things that are most important (or should be), and can also be used to “schedule in” fun things I can do on a given day. The key to using the technique is to be mindful of the time that is being applied, and how much attention you are placing on a given area.
Whenever I talk to companies or recruiters at local meetups, there is usually a common theme. They are looking for tech people, but good talent is really hard to find. Conversations like this are usually followed up with a description of some sort of very senior job for not so senior pay or a very hard to come by skill set.
Forbes online did a piece on why more people don’t go into programming. I’m not sure I agree with all or even most of the reasons mentioned, but when reading the laundry list it would be easy to come away with the impression that software jobs, particularly programming, is something no one really wants. High barriers to entry, high levels of ambiguity, and constant high pressure make the job sound really undesirable.
The premise of this problem is probably questionable, lets take a look at why.
The yearly performance review is either a boring formality where you’re checking boxes and signing on dotted lines, or a dreaded hour of what feels like ridicule from a superior. The economic climate of the past 5 or 10 years has lead even good performers to be told “You’ve done a great job, but sorry, we have no money for raises this year.” This creates a system where employees game the system by leaving to get that raise every few years.
Exit interviews are a place where you discover why your employees are leaving, because either they have not felt free enough to discuss their points of dissatisfaction or because when they did no one listened.
Both of these very common activities are a sign of disfunction in the way people are being managed.
So, what is the alternative?
I’d like to say a few things about waste. No, not the obvious kinds of “waste”, too much youtube or twitter or a lunch that was a bit too long — sometimes those are really opportunities for the unconscious mind to work.
Instead I am talking about the things that have the form of work, that look like we are doing something, but don’t actually move us forward. Aristotle might call this work that is accidental, not essential.
For example, I own a small technology company. The essence of our work is finding new business, executing on that business, and doing the things that make people want to work with us. It’s that third category that is dangerous.
I could spend a day — frankly, I could spend a week – goofing around with our website. Looking at promotional items, like pens and calendars. Retooling and reordering business cards, or trying to tweak the website to be just so. All of those things might be good, but do they generate leads? If the answer is no, they are waste — but a sort of sweet waste. Tooling around the website is easy. It doesn’t involve rejection or failure. Working on the website is a seductive time waster.
It’s the same thing in the job hunt. Working on the resume, going to career counselors, paying for a resume touch-up service, a Linkedin touch-up service, reading a “tips for interviews” book – those things are fine, but the essence of getting hired is to find potential employers, arrange interviews, and execute on them.
The main thing, as they say, is to keep the main thing the main thing. Continued »
A new tech industry phrase, The Internet of Things, has been floating around the web for a few months now. The Internet of things is a loose term people are using to describe any number of devices that may or may not currently live in your house. It’s all so vague. Last week, I found myself reading the phrase yet again with no clue about what was actually meant.
I work in an open office at my day gig. After seeing that phrase for the hundredth time, I asked “Has anyone heard of the Internet of Things. Can you please explain to me what that means?” After chuckles and light ribbing for asking questions like their grandparents would ask, I got a few vague answers of “I think it’s a little like this” or “Its kinda like when you have blabla”.
Yeah, still pretty vague.
So, lets explore what The Internet of Things really is.
Just two weeks ago, I was in Portland, Oregon, with my family of five, about to pick up a rental car from Hertz. It was 9:00PM Pacific, about midnight back home; the rental area was nice and empty …
It was still nice and empty forty-five minutes later when we received our vehicle.
It turns out the computer system was down from 1:00AM that morning until 3:00PM that afternoon. During that time, people still returned (and checked out) automobiles, and the technical staff lost them.
That’s right, they lost cars — knowing the car is on the lot, in one of a few hundred places, but not exactly where.
Then things get weird.
“Collaborative tools” is a large bucket. Wikis, multi-edit documents, shared spaces, asynchronous editing, chat tools, video conferencing, terminal multiplexing, and a variety of other options can all be considered “collaborative tools”. The goal is to encourage people to actively work on things together, to make changes in real time, or where asynchronous edits can be versioned so that no information is lost. Below are some of my favorite ways to use collaboration tools, and what you can use to get similar results.
Screen sharing can be performed in a variety of ways. When working at the console, or command line level, there are tools that are referred to as “terminal multiplexers”. Terminal multiplexing is a technique where you can open up a terminal window and either display several windows separately, or watch them in real time in the same pane. The two I am most familiar with are GNU Screen and tmux. Both allow the user to open several windows from the same terminal shell, but what really makes these tools valuable is the ability to share the screen and interact with each other at the same time. The first thing we do each day when we get to work or consider ourselves “on the clock” is to go to our shared development server and start a screen session. If we find ourselves in need of guidance, or if we have questions, the next question is “what is your screen session?” By doing this, we can jump on the screen session and interact together to see what is happening. In the process, we hand control to each other as needed.
In addition to using multiplexer applications, there are ways to share an entire desktop with your team mates. Google Hangouts allows users to share their screens and change views, and join.me allows you and your team mates to interact and pass control to each other.
Wikis and Document Shares
Wiki is Hawiian for “quick”. A wiki is a web page with an ‘edit’ button that allows you to create many pages, and link them to each other, very easily. Since Ward Cunningham invented the wiki in 1994, we have continued to see faster pages with more incremental changes. Google Documents and Etherpad are examples of document sharing where you can edit text at the same time and visualize who is editing what. This approach lets teams edit or create documents where sections can be worked on simultaneously. Changes can be examined and agreed to in real time. This is exceptionally helpful with test design, executing tests, and seeing output or anomalies together. Two people in front of a screen is great, but if that’s not an option, collaborative editing sessions can do the same thing, and there’s a paper trail to prove it.
There are a variety of chat tool options, ranging from the grand-daddy of them all, Internet Relay Chat (IRC), to more modern chat tools like GChat and Skype. All of these examples mentioned are free! Many chat tools allow recording of sessions (our group chats are archived every 24 hours). We can also set up private chat sessions outside the main groups. These options allow testers and programmers to communicate in real time. Going back to review sessions, I can see the light go on, and understand where the “A-ha!” moment occurred. Chat sessions are also good for sharing links and checking each others work for errors or missing test cases.
It’s In the Way That You Use It
With a little time, and communicating with your team, you could easily put together a broad array of useful tools that are open source and free to use. Regardless of what you use, the goal is to help others “work with me and see what I see”. Given enough practice, the process of collaboratively sharing ideas, along with active create, edit and debug sessions, will help you pick up many valuable new skills.
Disclaimer: I work for Socialtext. We make collaborative tools. Having said that, this article offers a tool agnostic approach, emphasizing goals and methods rather than specific tools to accomplish the job.