Why Experience Matters, or Does it?

Why Experience Matters, or Does it?

As a follow-up to my previous post, Youth is Wasted on the Young, this post will give a personal example of how valuable experience can be.

I was working on a project back in the late 90s on a 2-month contract which lasted over 2 years. I was hired as a C++ consultant to help them with the communication protocol between a VRTX real-time operating system application and Windows NT. Yeah, this dates me a bit but this will help explain may major point of this post.

On my very first day, I sat in a meeting with the lead developer discussing his protocol design along with six or so other developers. I was new so I didn’t interject and just listened. If you know me, you then know how hard that was for me to just listen.

The lead developer explained how he was using TCP via sockets to communicate between the VRTX application and the Windows NT application. He designed a protocol request and response packet for each command. There were over 100 commands and they were all different structures and even the responses were all different. This meant there were potentially over 200 separate formats. I noticed very quickly that he was going down a dark path full of gotchas. But, I smiled and listened. After three hours or so, I decided to interject.

You see, at that time I knew TCP/IP like the back of my hand, which is the main reason they hired me to work on this particular project. Years earlier, I wrote the TCP/IP protocol as well as the Remote Boot protocol in assembly language using only the RFCs. All of the code had to fit on an 8K EPROM on an NCR Ethernet card. I remember trying to cut 20 bytes out of the assembled code so it would fit on the 8K EPROM by changing things like "MOV AX, 0" to "XOR AX, AX" which changed it from 5 bytes to 2 bytes per instruction. Fun stuff. So, I love TCP/IP. It's the backbone of the Internet. But, you don't have to write to TCP/IP much anymore.

Anyway, back to my story. I asked the lead developer a few questions. Let’s call him Bill. It went something like this.

“Bill, I don’t know much about VRTX but I know it’s a real-time OS and is like Unix in many ways but is a real-time kernel, right? Bill said, “That’s exactly right.”

“Well,” I said, “it seems to me that VRTX should have Remote Procedure Call (RPC) functionality like most Unix systems do. Can we check?”

Bill was more than a little be perturbed but I knew I couldn’t sit in the meeting any longer without saying something. It was like watching a train wreck in slow motion and containing myself just wasn't an option.

One of the guys in the room ran out and grabbed the VRTX manual and started thumbing through it. In the meantime, Bill asked what RPC was and I began to explain.

I told him that he was basically re-inventing the wheel with his protocol design. Not only that, it wasn’t consistent, note easily extensible, and with over 100 separate commands with their own format structure it would be quite difficult to both implement and use. I told him that RPC solves these problems. RPC handles the all of the underlying mess that he was creating and allows the developer to make simple procedure calls that would then be executed on the remote machine and return the results. It took care of formatting of strings, numbers, structures, etc. I knew of an RPC library which I’d used in the past that ran on Windows NT so I was fully aware of RPC as well as its underlying protocol.

The developer thumbing through the manual interrupts and says, “Yes, VRTX has RPC.” I said, “Great! Can I give it a quick try?” There were a few more questions and answers and then I had one developer write the code on the VRTX side and I wrote the C++ code on the Windows NT side with a simple hello world remote procedure call. In less than 15 minutes we had a functioning RPC call from Windows NT to the VRTX OS, which basically did away with everything that Bill had been working on.

The manager called me into the office a bit later because Bill had gone to her and complained about me. I didn’t know this because I just thought I was helping. The manager asked what happened and I told her. She was excited that we found a better solution. She added that Bill had been working on this protocol for a while and it was holding up the project and I solved the problem in just 4 hours. He'd been working on this for 4 months and no code was written. Not one bit.

This is the value of experience. For me, it was just something I knew. I didn’t know that nobody else in the room didn’t know it and I got the experience only by doing it previously. But, the fact that I did have the experience is what helped them get the project completed. I’ve seen firsthand on many occasions and this is but one example of how experience won out over youth and exuberance. You may initially pay more for experience, but youth and exuberance may cost you more over the long run.

At the same time, you need a healthy mix of youth along with experience. Sometimes experience can be a detriment. Sometimes experienced developers get an a rut of doing the same things the same way and are resistant to change. This is where youth comes in to help them out of the rut and think of software development in a new way.

All of my posts may be found here: https://www.dhirubhai.net/today/author/7506493 or https://craftlogic.com/blog. Click to learn more about The Craftlogic Difference.

Brent Finney

Stroke survivor and The man in the arena

9 年

Reminds me of a guy I used to work with. He was by far the least experienced on our team. He suffered from not knowing enough to know how little he knew - so he thought he knew everything. And he wreaked havoc with everything he touched. He had a very forceful personality which allowed him to convince the powers that be that we needed a messaging framework for a web application we were building. Except this application didn't talk to anything other than a database. He also convinced them he should be allowed to build this critical infrastructure(rather than use an existing queuing product which we already had). A couple of months go by, and he delivers absolutely nothing. Swept it all under the rug as if nothing happened. Like 'Bill', he also had a nasty little habit of attacking other team-mates when he felt threatened, even going so far as trying to get multiple team members fired. I believe experience does matter. Youth can sometimes bring an open-minded approach to the table, but it can also be a limiting force. I think listening is very important whether it's a team lead listening to the ideas of a new team member, or a newbie learning from hard-earned experience from a senior. You took the correct approach by listening, then contributing to the discussion in a meaningful way with a relevant solution. I wish everyone could do that.

回复
Mike Burkhart

IT Applications Manager, Business Systems Analyst, FP&A Consultant - retired

9 年

Having been through similar experiences many times, I couldn't agree more. Young programmers bringing in new ways of doing things, balanced out with experienced, seasoned professionals often provides projects with a path that greatly improves productivity and efficiency.

回复

要查看或添加评论,请登录

Kevin Ferguson的更多文章

  • You Suck at Technical Interviews...

    You Suck at Technical Interviews...

    I was planning to write a new blog post earlier this year regarding how badly companies perform technical interviews…

    6 条评论
  • Brad Deppe to be VP of Sales and Marketing for Craftlogic Software

    Brad Deppe to be VP of Sales and Marketing for Craftlogic Software

    Frisco, TX, /PRNewswire-iReach/ -- Craftlogic is pleased to announce that Brad Deppe is the new Vice President of Sales…

    1 条评论
  • Keep Your Resume Out of the Bit Bucket

    Keep Your Resume Out of the Bit Bucket

    I see and review hundreds of resumes a week and have been doing so for over 10 years. Whether you’re sending your…

    1 条评论
  • 7 Steps to Giving a Successful Technical Interview

    7 Steps to Giving a Successful Technical Interview

    All companies need to hire people from time to time. However, how a candidate is interviewed is often an afterthought.

    2 条评论
  • Youth is Wasted on the Young

    Youth is Wasted on the Young

    Why you should consider hiring older workers When I hit 50+ last month (you can guess at the + part), I thought to…

    1 条评论
  • Racing, it's Life...

    Racing, it's Life...

    Do you know this quote from Steve McQueen in the movie Le Mans? "When you’re racing, it..

    3 条评论
  • I Hate IT Staffing Firms!

    I Hate IT Staffing Firms!

    IT staffing firms SUCK! Yes, I mean SUCK! I think most people hate IT staffing firms like they hate used car salesmen…

    49 条评论
  • How Do You Keep the Talent You Have?

    How Do You Keep the Talent You Have?

    Trying to hire IT talent in a seller's market is hard enough. Keeping the talent you have is even harder.

    5 条评论
  • Getting your message across in today's market

    Getting your message across in today's market

    I've had a lot of experience hiring people over the years. Before I started Craftlogic in 2003, I was a software…

  • The Culture of Non-Responsiveness

    The Culture of Non-Responsiveness

    Update (4/2/15): I'm very disappointed. Nothing has changed since I first wrote this.

    28 条评论

社区洞察

其他会员也浏览了