Paying it Forward

My company has recently put forth an effort to hire fresh college graduates and interns. I think this is a great thing. A long time ago, in a galaxy far far away, I was a fresh graduate, with no real world experience and my first employer took a big chance in hiring me. I was really lucky with my first employer, I had a couple of fabulous mentors that taught me not just technical skills, but life skills, that I still use today. Employers are getting in on the ground floor and it’s in their best interest to invest resources in what will hopefully be a long, successful and rewarding career. “Paying it forward”, as it were.

As a data professional, there are some essentials will make your life so much easier down the road. The first one is Standards and Best Practices. Establish these early and they will become habit. Now I could drone on forever about particular Standards and Best Practices, but that’s not my point. My point is that if you start off your career by adhering to standards and best practices, it won’t come as a shock to you later when they are forced upon you. You may not like the particulars of them, but it won’t feel so icky the first time you have to use them if you are used to following something. In working with our new employees, I always take the time to point them to our standards and explain why we have them. They are always appreciative of this, especially the explanation.

Another essential is code review. This is a big bang for your buck. It’s a learning experience for everyone involved. We use an Agile Methodology in our development life cycle. So our teams are fairly small, they usually consist of two to three general developers a technical architect and a data architect or DBA type person. Following the Agile Methodology, anybody should be able to work on anything in the product/iteration back log. For the general developer, they can usually write T-SQL, but most times it won’t be nearly as efficient (or dare I say pretty) as if the data architect/DBA type person wrote it. Code review allows for the team to become familiar with a task they are not directly involved with and provides valuable feedback to the person who wrote it. They may not be as familiar with the subtleties of the business rules or have no idea that when you use three nested select statements in the predicate you will most likely end up doing a table scan on that table with 30 million records, three times! All they know is that their query returns and it returns the correct answer.

Take the time to “pay it forward”, it can only benefit you in the long run and the person you “paid” will be that much better for it.

Responses

I can’t argue with best practices, since I use them all the time. Standards are fine as well as long as people don’t get carried away but they often times do (just ask me about the ternary operator some time or where to put braces in languages that use them). Standards must be under regular scrutiny since they have a tendency to become obsolete, depending on the technology that gave rise to them. Flexibility and adaptive capability are the keys here.

For example, one of our major standards is that we practice TDD. We’ll know that you haven’t done it right because you’ll have too few unit tests and they will be weak in their overall coverage. When something better than TDD comes along, we either have to amend or discard the TDD standard.

As for the fresh engineering talent, it only makes sense to get them up to speed right away. They are already conditioned to assimilate information readily so why not take advantage of that and make them more productive? This benefits everyone, not just the newly minted engineer.

I am glad to see others of the same opinion as I. As with any profession, those disciplines developed in the early years differentiate between mediocrity and world class talent. A recent intern with whom I worked quickly saw the value of documentation and standards as he struggled to understand current processes and document them in an environment with little documentation for legacy applications. My advice for him was to develop good habits early. Since technology is changing at an unprecedented rate and placing us in a state of continual learning, I advised him to focus now on the disciplines of structure and process relating to documentation and coding practices and the technical skills will come. Thanks for your comments.