Back last year, I stumbled into a conversation at a conference just as a twenty-something programmer was uttering the words “Of course, developers nowadays are a lot more creative than they were 20 years ago”.
As someone who was a programmer in the mid-to late 80s, I felt like saying “You cheeky little sod. I’d like to see how you would get on if we took you away from your graphical modelling tools, syntax checking editors and class libraries full of stuff it used to take us weeks to design and build from first principles back in my day.” Indeed, I was tempted to make the case that it was the guys who cut code on block mode terminals that were the real creative dudes. Back then they had to submit their edits to compile and link in batch to build applications that were usable by people who had never seen a computer before…
But then I got thinking. Perhaps the guy had a point in a way, depending on how you define creativity. Yes, 20-25 years ago we often had to get very creative at a technical level to simply make things work in a way that modern programmers don’t have to worry about. Things like software configuration management, simulation and testing tools etc. to help manage the development process were also not widely in use, which placed quite a lot of manual overhead on development teams. The upshot was that we probably didn’t have the same luxury of time modern programmers enjoy to experiment with user interfaces and different ways of solving problems from a business or user perspective, and certainly didn’t have the same richness of tools and technology to work with.
If we look at it in that way, then an argument could be made that today’s dynamic scripting jockeys, for example, can produce more creative-looking results than we could back then.
Against this background, we’d like to kick off of a new Reg reader workshop looking at various aspects of the way in which software is developed today. Over the next few weeks, will be exploring everything from application lifecycle management to some of the specifics of trends and techniques that have emerged onto the development scene and impacted the way in which software is designed, built and maintained.
To get things going we would be really interested in your views on what’s most important to have in place to facilitate that creativity we were talking about earlier, and to ensure the right levels of productivity and quality of output. So, what are the tools in the development life cycle you can’t live without, and what gaps exist in the stuff you are using to design, build, test and for configuration management? If you were given the job of establishing a new development team from scratch tomorrow, and the buck was going to stop with you for it to deliver results, what would you be asking for in terms of tools and facilities?