A significant difference between us old-line IT coders and the new graduates is the variety of our platforms and tools. I’m not talking about the large number of languages and tools learned over the course of a career – we all have a healthy collection of certifications and acronyms peppering the bottoms of our resumes. I’m talking about the amazing array of stuff required to get development done on a single project, “right now”.
Over the past few weeks, I’ve been doing a little development at work. This is my idea of fun – in between the PowerPoints and project status meetings, I try to sneak in a little hack or two. Actually, I’m not doing the heavy lifting on this one; I’m working with one of the guys on my team, and we’re putting together some ASP code to generate RSS feeds from the SQL database we use to track our projects. He’s done most of the raw research and the base coding, I’m just prettying up the final package.
As a department, we’re moving towards Microsoft as a strategic platform, but we’re certainly not there yet – so this is definitely a skunkworks-type project. For this “fun stuff”, we’re using technologies that will plug nicely into our general strategic direction, but at this point there are no standard tool sets or integrated development environments in broad use.
So, to get the job done this afternoon, I’ve been cycling through the following …
- In window #1, editing the .ASP file with Crimson; source files are sitting on the development server
- In window #2, testing code using IE … no integrated debug environment for my ASP syntax, but I manage (just a little trickery – switches flip between RSS and HTML output)
- This is just debugging the basic code – to validate the RSS XML, I View Source from IE (opening window #3) and cut and paste into the W3C validator (window #4)
- For the SQL queries and database hacking, I’ve got window #5 for Enterprise Manager and #6 for Query Analyzer
- After debugging, I push to the test server manually, using File Explorer in windows #7 and #8
- Everything looks great, so I switch to window #9, which has another chunk of ASP that generates custom URLs for the RSS feed (we’ve added selectivity, aren’t we crafty?)
- For the final test, I have RSS Bandit open in window #10. I create multiple new feed URLs (#9) and add to the Bandit config, to see what I get
- If I made a syntax error in the RSS (missed something between #4 and here), I have to flip back to window #1 to clean it up
- Oops, almost forgot … like any good coder, I’ve got TFMs open, but it’s not just one manual- window #11 is my multi-tabbed Firefox, Googling all sorts of sites to get references for RSS, ASP, and SQL
Sounds crazy, I know. I could/should go out and get Visual Studio or something. But like I said, we’re not fully in production in this Microsoft development environment. We’re innovating, right?
I’ve done open source development on my own in the past, and it’s much the same thing – multiple different platforms, tools, and languages. For example, when working on my own site, I’m fixing configuration files and writing code in HTML, CSS, PHP, and mySQL. To get things working, I’m dealing with the configuration files for Apache, Eclipse, PHP, and mySQL. Edits in Eclipse and Crimson, pushing around source with FTP, fighting firewalls and routers, developing in Windows while production is in Unix.
This madhouse of multiple tools, languages, and platforms probably sounds quite normal – if you’ve been working heavy with open source and/or Web 2.0 for a few years. But imagine presenting this to legacy IT folks, working in their version controlled, standardized environments. The typical “road to the future” brings five new technologies, three new IDEs, and one or two basic system architectures that are all very different from tried and true.
Does this mean you can’t teach an old dog new tricks? Not at all – most are quite anxious to learn, and have done so continuously over the years. However, this is all starting to feel like the first time we switched from procedural languages (COBOL, RPG, Pascal, Fortran) to OO and event-driven stuff (Visual Basic, PowerBuilder, SQLWindows). We went from offense to defense, from being controlling and orchestrating to reacting and trapping. Not that it was bad or wrong – just different.
Does this mean the experienced coder is washed up, and has nothing to contribute? Ask the folks in Big Pharma, having dealt with the FDA and validated systems. Ask the folks working with Finance in public companies, having dealt with SarbOx. Healthcare and HIPAA. Retail and RFID. Not to mention having to debug a lot of other people’s code, and knowing when to step through or just refactor.
Running to the future, juggling multiple multilingual windows, and demonstrated facility with the newest tools is all good, but it’s just one of many attributes that determine who on your team is worth 50 others. Have a little patience …