Apr 17, 2011

Promote Your Code: Software Development in Small Environments

Working with a large team of Professional Software Developers is a bit of a dream come true. We take code seriously and we all love to see beautiful structure and design. Code maintainability is utmost on our list of priorities. Well designed and highly maintainable code is the mark of Professional Software Developers.

I used to work in much smaller enterprises where the need for a real Professional Software Developer wasn't recognized. In those places, code was produced by 'affiliated professionals' as I call them. Engineers, Scientists, even Junior Software Developers. In short, people capable of making code, but not trained how to handle software process.

I remember a manager asking us for a code review once. Code reviews should be de rigeur at any company producing code, although in practice is not widely adopted. Anyway, we had no idea what he was talking about. I suspect the manager didn't either. It was probably a due-diligence thing. Papers that needed signing.

We did the best we could. A bunch of us code guys borrowed code guys from other projects to review our code independently. It was a nightmare to gather materials in time for pre-meeting review, prepare a walk-through for the other team, then try to schedule everyone in the meeting.

When we finally got everyone together and started our walkthrough, it was obvious that the other code guys hadn't even cracked open the material we sent. The whole meeting was a bust. We sat for an hour describing basically what our product was supposed to do. Not good use of review time. Although the managers papers got signed!

If we'd had a Professional Software Developer around, I can imagine that the review process would have been a lot more productive. For example, we would've known that reviews that are more frequent and much smaller are far more effective than one huge review of thousands of lines at the end of a development cycle. Who can understand the mess created when code guys are left to their own architectural devices for 6 months? We also would've known how to handle the ego challenges of critical review of a developers artwork.

Still, the Kings Ransom that true professionals are paid is a little off-putting for businesses that don't specialize in software. Maybe there's not really enough there to employ such a professional full-time. It's too bad that a company struggling with software can't bring in Professional Software Developers part time, just to lend their expertise on process and architecture.

Or can they?

Why not drop me a line at the contact page?

2 comments:

  1. The problem is that a lot of people believe they are (or sell themselves as) Professional Software Developers when they aren't.
    How do you define being a PSD at the first place?

    ReplyDelete
  2. Glad you asked.

    I'd say if you think software is about getting something to work, you're a code-guy. If you understand the long term investment of each line you write, you're a professional. Obviously, there's a lot of space in between.

    Sound good?

    ReplyDelete