Sorry, I can’t be there. I’m going to a movie with my sister.

Believe it or not, I actually said that this week.  As a small business owner (I own Custom Software Design Global LLC in Woodstock, Georgia, just north of Atlanta, with my husband, Tim) that is a death sentence to a potential client relationship.  Normally I would never turn down a sales opportunity, but as I approach 50 I’ve realized how much more important family is.

My older boys, Matthew and Michael, are grown (27 and 25 respectively).  As I reflect on our brief time together as a family I realize they grew up and left while I was in a fog.  I was a young single mother for most of their lives, so I had no choice to prioritize work over family too often.  I blinked and they were gone.

I just don’t want to do that again.

Although I once again have two little ones, Isaac and Joy Ann (7 and 6 respectively), things are very different now. I cannot prioritize work over time with them.  I know all too well how quickly time disappears.

I miss Matthew and Michael tremendously.  They brought me so much joy in such a short period of time.  Now they are both living in far away cities and I rarely see them and their families.

When I got an email yesterday that a new potential client wanted to meet with me Friday my immediate response was “Sure!”.  Then as I settled into the routine at home last night I realized I had scheduled a ‘date’ with my sister for the same day.  We planned to go this Friday see the new movie “The Best Exotic Marigold Hotel” several weeks ago.

Years ago I would have called my sister to excuse myself for this potential opportunity.  However, last night I did not even hesitate.  I emailed and excused myself from the meeting with the potential client.  I truthfully explained I had plans with my sister.

I would never want a client or colleague to feel as though I did not value their time.  I would never deliberately inconvenience anyone.

On the other hand, my priorities have changed in recent years.  A lot.

Will I have another chance to see my sister soon?  Probably.  She lives in a nearby suburb of Atlanta as well.  However, time is not guaranteed and I truly value my time with her.

I may have missed a golden opportunity, but it won’t bother me one iota when I’m old and think about it.  I’ll only remember laughing hysterically at the movie with my precious sister.  Time well spent.

 

Building custom software for an industry you are unfamiliar with

The telephone call

Whether you are a consultant, contractor or full time employee, you have gotten that call. It sounds like the perfect job for you, but it is in an industry you know nothing about. If it is a job you would love, you panic when the question comes up: “How many years experience do you have in this industry?” If you are a contractor or consultant or you are like me and own a firm of your own you know your customer is thinking: “I want someone who has built this type of project in my industry before.”

Sweaty Palms

Ok, before you start getting sweaty palms, let’s think about your answer. You know programming. You have mastered a programming language or many programming languages and built custom applications before in other industries. What do you have to offer this client that he would not find in a “more experienced” person or firm?

The one thing many companies are looking for is a fresh perspective. Even if the caller has not considered this before, this is your chance to turn around their plans completely. Sure, there are benefits to hiring someone who has written multiple enterprise-wide applications in that industry before. Let’s face it – they know what they are doing.

However, is that a good thing? Maybe not.

If you have driven the same way to work for the last 20 years and you have never ventured onto an alternative path and you never look at a GPS or map of the area, how do you know if there is a more pleasant path or a shorter one? Have you even considered that there might be?

We are creatures of habit. While those habits can often be very good ones (ie, exercise) some of those habits can be very bad ones (ie, smoking). However, if you started smoking in 1950 you might not realize it is killing you if you never read or watched the news.

A New Kind of Value

So let’s assume you have no experience in Bob’s industry (for the sake of argument, let’s assume Bob is in transportation). You already know there is one objective in transportation: get from Point A to Point B.

Easy enough, right? Clearly there are monumental steps between, on top of and around this objective, but when you boil it down to basics, this is what you have.

Rather than sit with Bob and go through how he currently does everything, why don’t you use this simple objective as your starting point?

Instead of doing research on the software that is already available to the transportation industry, do your research on processes in the transportation industry. Focus your new enthusiasm on learning what physically happens every day in a transportation business (not just Bob’s business).

Go to Google and type in “transportation”. What do you see? I started with the Department of Transportation website (I knew with pretty solid certainty they would not be the most cutting-edge technologists in this industry so it was safe to assume I would learn all about the physical aspects of transportation.)

Using this information you can build on all kinds of branches of research within the transportation industry. Build a comprehensive document for yourself and for Bob demonstrating your new found knowledge of the industry.

What does that mean to Bob? He just got a completely fresh perspective on his business from a very bright developer that he could not have gotten otherwise.

What does that mean to you? Knowledge begets knowledge. Once you have tried this method on multiple industries you will be amazed at how broad your knowledge base has become.

A new found strategy

Now when the telephone rings you have a strategy. If you do not know the industry, offer to learn more about it and come in with a fresh perspective.

Once you’ve done this a few times you will find you are really quite good at convincing yourself and your prospective client/employer that he/she would be crazy not to use your services.

No more sweaty palms and no more lost opportunities.

Data Science: What Creeped Us Out Early On

“Data scientists solve complex data problems through employing deep expertise in some scientific discipline. It is generally expected that data scientists are able to work with various elements of mathematics, statistics and computer science, although expertise in these subjects are not required.[3] However, a data scientist is most likely to be an expert in only one or two of these disciplines and proficient in another two or three. Therefore data science is practiced as a team, where the membership of the team have a variety of expertise.” – Wikipedia Reference


The “information explosion” started around 1941.  (see reference) Believe it or not, the phrase “data scientist” was coined in 1960 by Peter Naur (Wikipedia Peter Naur) as an interchangeable noun with “computer scientist”.  However, the term wasn’t related directly to statistical data management until 1997 when, in an inaugural lecture at H. C. Carver Collegiate Professorship in Statistics at the University of Michigan, Professor Naur defined statistics in science.  The name of his lecture was: “Statistics = Data Science?”

It was a very modest beginning to something which has exploded into a entirely new profession today.


Fast forward:

In 2006 I was 10 years into my career in data management, manipulation, and adoration.  I also had a liberal arts education in political science – clearly unrelated to data science.  I had no idea what data science was, but I knew I loved data.

In that year a colleague of mine and I sat down with a quad processor server and MS SQL (some antiquated version) and a terabyte of data getting moved around every night to figure out what to do with it.  To our knowledge there was no name for what we were doing.  It was really more a pain in the proverbial … well, you know what I mean… for the company we were consulting with.  They knew there was value in that data, but at that point there was no popular concept of what that value was.  At least not in our little corner of the world.

The data came from click events in a few major websites – a LOT of click events – one terabyte a day worth.  My colleague and I were making great strides in ensuring the four processors were working overtime all night every night (one thread per processor running parallel).  One day I was discussing the project with a non-technical relative of mine when she stopped me and said in a very startled tone, “You mean you track everything I click on?  Creepy!”

Yep, I realized at that moment we were headed right for the last chapter of an Orson Wells novel.

Don’t get me wrong.  I still love data.  I still ‘practice” data science as my profession and hopefully I get better every day at it (I should be getting better after almost 20 years in this profession).  However, that realization was really creepy.  We were tracking every click event our customers created on those websites.  What else was being tracked in other organizations?

Today we know that everything we touch, every comment we make, every photo we post somewhere is tracked, analyzed and reported on to some organization.  I think some of the creepiness has been washed out of the concept simply because we’ve come to accept this “Big Brother” technology as an inevitable part of progress. 

The unasked question remains, however:  will anything “creep us out” going forward in this scientific practice?

I can think of a few things if I give it enough energy, but I try not to because like most people in this profession I love the story data tells.  It is not unlike the feeling of getting into a new car every day and smelling that “new car smell”.  It’s something intangible that you cannot define for someone who hasn’t experienced it first hand.  Every day I “get in that new car and inhale”.  It is as beautiful a high today as it was in 2006 when I couldn’t sleep at night wondering what story our click event data would eventually reveal.

~Amy

He’s a great programmer so he’ll make a great manager

That statement is akin to saying, “That cat fetches like a dog.  She must be a dog!”  Programming (or software engineering) has absolutely nothing to do with management.  There aren’t even any similarities between the two.

I get it: finding someone to manage technical staff is like finding a needle in a haystack. 

1.)  They have to be “normal” enough to be able to communicate with senior management while they manage a group of highly unusual and self-proclaimed intellectuals.  (Therefore, senior management often mistakes a relatively normal techie for management potential.) 

2.)  They have to be able to communicate with these intellectuals using “tech speak”.  (The worst example of a technical manager is always when senior management assumes someone who is gifted at software engineering makes a great manager of caffeine-addicted geeks in superhero t-shirts.)

Today, we’re going to look at the latter: technical managers chosen to supervise and direct a programming team simply because they rose to the top of the group with ninja technical skills.

First let me be very clear about one thing: I cannot stake claim to being the most intellectually gifted programmer in the room – anywhere.  I’m always learning and always growing (even though my feeble old mind fights me over it these days).  For the most part those of us who are programmers/software engineers/computer geeks chose this profession because:

  • We like working alone
  • We like math and logic
  • We adore caffeine, late night debates on the possibility of black holes and which is better: Star Trek or Star Wars (I lean toward the trekkie side as I’m of an older generation)
  • We think we can do things no one else can do – sort of
  • We have some hidden insecurity about our intellectual prowess

Using that knowledge it is pretty simple to see that most programmers have some deep-seated insecurities which rarely makes for good management potential.

There are, of course, great examples of exceptions to that assumption (besides which, we all know about the trichotomy of assumption, right?)  However, I am willing to stake my reputation on the fact that those examples are few and far between.

What makes a great technical manager, you ask?  There are many features of a great technical manager, but the one most often used to judge capability is really only a fraction of a much larger picture:

  1. The ability to understand technical jargon and translate it for senior management
  2. A genuine concern for those who work for him/her
  3. Understanding what motivates each person on his/her staff – why are those people really working there?  (When it comes to programmers, the answers will always surprise you.  Sure, money is a huge motivator, but what almost always ranks second?  A really cool, cutting edge project to work on.  If you want to demotivate a programmer tell them they have to do maintenance on a project using 10 year old technology.  Nightmare job!)
  4. A willingness to admit his/her own weaknesses, strengths, mistakes and successes (setting an example of humility while maintaining an official managerial demeanor)
  5. Respect for those who work for him/her and their natural individuality (some might see this as a respect for each extreme of geekiness)
  6. Being able to identify and tap into the true strength in each resource on the team while encouraging each person to take on roles that might fall outside their normal comfort zone
  7. Being able to keep the team focused and drive a project through to the end without making everyone on the team insane.  If I had a dollar for every project I saw fail because a team was not cohesive with clear direction I’d be very wealthy.  (One of my favorite interview questions is to ask programmers about projects they finished.  You would be amazed at how many programmers cannot answer that question because they never finish anything.)
  8. Giving constructive feedback.  Yelling, manipulation, and vicissitude have no place in management.
  9. Appreciating the difference between “downtime” and “avoiding work” and being able to identify each
  10. Personal accountability

Clearly I’m not the resident expert on all that makes a great technical manager, but as someone who has been on both sides of the fence I can assure you I know a bad technical manager when I see one.  Usually (but not always) that person was once the “Kid Rock” of programming and rose to the top of the ranks with his or her technical aptitude.  As you can see from the brief list I’ve made, being a great programmer has absolutely nothing to do with great technical management skills.

In fact, let’s take a look at your typical premium code jockey (here I will use the term “he” for the sake of brevity, but clearly I mean both genders of programmer):

  1. He views himself as cerebrally superior to most of humanity
  2. His self-opinion is usually reinforced daily by those outside the technical community who come to him for guidance and view him as a god of technology
  3. He views the other members of his team as inferior because they tend to view him as a god of technology
  4. He rarely admits to making mistakes
  5. He has absolutely no desire to “teach” anyone anything (In his mind they should have been gifted with his cerebral talent in the beginning.  He can’t fix their sad plight.)
  6. He believes people who make mistakes are idiots and has no respect for them
  7. His communication with senior management is often very smooth – I mean, he’s the god of technology, right?  Senior management loves him.  He can “fix” anything quickly.  He is, indeed, the god of technology
  8. He has no clue what his peers want out of life.  He couldn’t care less what motivates them.
  9. He can finish anything, but the boobs he works with are incompetent.  If he wants something done right he does it himself.
  10. He loves to humiliate potential new programmers in an interview.  He spends days brewing up the most insane technical interview questions he can find on the internet…umm…I mean in his mind…and then proudly prances into the interview room and swooshes out the white board markers to scrawl out a complex algorithm that encircles the room in a hush of reverence for his vast intellect.

Sound like someone you would want to work for?  I can imagine your answer is a resounding “No”.  So, perhaps you’ll take time to post a few stories below about someone technical you worked for who was really, really a great manager?  I’d love to hear your stories!

Until the next time my Tardis passes through,

Amy

 

 

The best worst boss ever

When I first started as a software engineer (over 20 years ago) I had a very wise person tell me I would learn something valuable from every boss I ever had.  I really took that to heart and tried to make note of those things as my career progressed.

One thing became apparent after a few years: I learned the most from the worst bosses I had.  Why, you ask?  Because I learned what I never wanted to be – and that kept me focused on doing what’s right – all the time.

So today I start a blog about some of the things I’ve learned from the best worst bosses ever.  Let’s start with my current boss.

Mid-thirties, ex-college-soccer player, and his technical skills range from moderate SQL to moderate report writing.  However, as one of six partners in his business he is considered the expert in business intelligence (really?)  I would bore you with all my qualifications, but that’s not what this story is about.  What I will tell you is that I have 20 years of very deep technology skills – far beyond moderate report writing and moderate SQL.

So what I’ve learned from this man is:

1.)  Never be threatened by employees you know are more knowledgeable than yourself.  Embrace that talent and use it to the betterment of your company and your own position.

2.) Listen.  Especially when you are “on top of the world” and making all kinds of money.  Listen.  Stop talking.  As long as you talk you are not absorbing and that means you are getting less knowledgeable every day.

3.)  Constructive feedback is specific and unemotional.  If you get angry when you point out someone else’s mistakes you just scare them into immobility.

4.)  Every day take time to say, “Hello” to those who work for you.  It demonstrates humility and respect.

5.)  Find something positive to say at least once a week – and be specific.  It takes very little to encourage an employee on a daily basis.

6.)  Encourage creativity.  Don’t be afraid of creative and bright employees.  In the long run they will make you look better.

7.)  What makes your employees happy?  Do you have a clue?  Why do they work for you?  How far are they from strangling you in your sleep?

8.)  Learn to love yourself so you can be kind to your employees.  If you don’t love yourself you’ll take it out on your employees and your company and career suffers.

I could go on, but it’s time to spend quality time with the children.  Tomorrow we’ll talk a little more about what makes a boss the best worst boss.

Amy