A One Trick Pony, Or Domain Domain Developer

A recent discussion about backgrounds, a person asked me when I received my computer science degree.   I said I never got one, that my college (which is very prestigious) did not have a CSci program back then, and we taught ourselves to code to carry out experiments and projects.    And back then, just 20+ years ago, the CSci majors mostly did their work in a business context and that being almost exclusively Cobol.    Not that I hadn’t taken Fortran, Pascal, C++, Data Structures, Graphics, or AI classes here and there — I did.  It was just that most places looked at CSci as an adjunct to a math department, or as a hammer in a carpenter’s toolbox.  I remember even as recently as around 2000 or 2002, the big state university here did not have Oracle or any databases for that matter; in class any undergraduate wouldn’t get that hands on, not until they got a job.

Things have changed.  The biggest change is tha availablity of tools over the web for little or no cost; for instance Eclipse.  You can download all the Oracle tools as long as you don’t use them commercially.  Most tools have some version or likeness for free, making it easier to learn on one’s own time or for an educational place to capitalize and offer degrees and certifications based on these tools.  The commercial providers are competing for users, which will help them sell their product.

Now funny enough, I’ve seen the rise of free tools tie in with the rise of certifications.  If you’ve coded then you know that 90% of the time a listed certification on someone’s resume screams “no experience.”

One area of making software where this becomes apparent is Agile Scrum Master certifications.   I agree that a certification helps get a foot in the door or a sales rep drooling over your resume, but it is in absolutely no way an indication of competency in the world of development.  Also, I love more and more education; again, is no indication of a quality developer.

Something I love about this profession is that most of the successful people are evenly split between formal training and none at all.

An example I can think of was a PM who had not yet received his SCM (scrum master certification) but told me he had in order to gain credibility.   But he had never done scrum before.  The effects were that very, very little software got written under his tutelage.  Also, he believed it gave him credence to diddle with engineering design, coding, and execution having absolutely no technical experience ever before or any experience in the application’s domain (even the dreaded PM statement “I supported perl for six months TOTALLY get you developers!!!”).  🙂  sigh

Contemplating this, I re-read the Agile manifesto and was reminded that one of the ideas behind Agile was to get the developers and the business closer together.  So, although the trend has been to make the Six Sigma assembly line of tech people it hasn’t worked because of a nasty little word: requirements.   Developers have to get well communicated requirements from the business and translate them into the technology of the day to make a successful application.  Many times, formally trained coders aren’t quite as good at this because their time was spent in the technology, but not in other educational areas such as writing, comprehension, observation or even creative arts that contribute to problem solving.  I’m not generalizing though — but it raises questions about how the industry DOES generalize when it tries to measure a developer on paper.

For years I remember the CSci trained people working on the real engineering aspects of computers:  disk space calculation, operating system fixes, calculating switch loads or packet sizes etc.  A lot of time those types of people weren’t very good at making user applications.  In fact, when I talk with other developers, its a fact that we rarely ever, ever talk about the actual “business” of the site.  For instance, I almosts a year and a half at a health care place and never once, not once, discussed health care or our product in health terms, just as a technical work.

So is this new assembly-line, domain blind world adequate to produce real quality software?  Personally, I don’t think so.  I think at some point a person will have to really learn the business to really be effective at making the application successful.  Agile has lent itself to become a report-up tool so it’s kind of missed it, but the intentions were there.  I think we’ll just have to try again in the next generation of software building techniques.

Comments are closed.