Thursday, 9 August 2007
Software Professionalism and Writing
A couple of years ago I decided I wanted to get deeper into what makes one a professional software engineer, specifically so I could get better at my job/further my career/etc.
A fine place to jump in was Steve McConnell's Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers.
Some of the things I took away from it were:
There are a large number of good software development practices that are already known but are not widely used. (Corollary: If you read a lot & learn from the people who have already traveled these paths, you will save yourself & everyone else a lot of time.)
(This goes against what I perceive [in the wild] as a general pride in being a self-taught-amateur-turned-guru.)
This point was being made as far back as Fred Brooks' No Silver Bullet paper, but it was good to get it emphasized in a new way.
One should join the professional organizations in the space, ACM and the IEEE Computer Society. I did, and the attendant publications I've subscribed to --ACM Queue, IEEE Computer, IEEE Software, and Communications of the ACM -- have all been good reads. I especially like the letter columns in the last couple; lots of valuable and entertaining back-&-forths between smart people.
In order to improve sharing of knowledge about good practices, practitioners need to write about software themselves. McConnell:
I am convinced the best software handbooks will be based on the work of software developers who have recently lived through production software projects ... who occasionally take time to reflect on their work and write about it.
If you are actively developing software, I urge you to write about your insights. If you have worked on a project that taught you valuable lessons, share them -- whether they are coding details, more effective project management, or even a software development topic that doesn't have a name yet.
(He then recommends submitting this writing to a magazine or getting a book published .. hey, I've got my own 10-year-old blog, it'll do for now.)
I've been working through many books and best-practices recommendations for quite some time now, and I've finally reached the point where I think I have something to add to the conversation, backed up with some years of my own experience.
So, this is a heads-up: I'm going to be trying rather more technical writing here. Blame/thank Steve McConnell. (Other blogging will of course continue, if not improve.)
P.S. By the way, McConnell has a (fairly new) blog - 10x Software Development, named for the phenomenon (found in multiple studies) of "10:1 differences in productivity and quality among individuals and even among teams". Recommended reading.
Add a comment...