Are today's developers more creative?
Have your say
Reg Reader Workshop 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?
Got you thinking? Good. Tell us your thoughts by adding a comment below. ®
On the whole - NO !
IMHO the proportion of true currently active creative developers has dropped.
IMHO the number of true currently active creative developers has increased slightly.
In the past 10 years I have seen the proportion of lower level developers increasing rapidly. That is the developers who are not 100% hand coding fluent and must rely on RAD GUI tools (usually Microsoft) to develop with.
If I were starting a project, I'd make sure the following tools were in place:
- Requirements Management
- Testing Plan
- Source Control
- Defect Tracking
- Change Tracking
without these, it's hard to know what you are build, and track how well it is being built. Tools are just a part of the equation, you should also have
- Clear Customer Requirements (not implementation notes, or "just make it like xxxxx")
There are also specific jobs that should be filled at the start
- Configuration Manager
- Build Manager - if you got more than one developer, someone needs to make sure builds are done in an orderly fassion
These aren't glamor jobs, but without them, things get pretty messy pretty quick.
- John (SW Eng at heart, Config Mgr by need)
PS: Creativity is writing code to fit into 64K RAM and 128K of ROM on an embedded processor with a total address space of 64K that allows only 32K of ROM and 16K of RAM available at one time.
The tools of the developer start with some standard knowledge. If I see any of these on a co-worker's bookshelf, I know I am working with a professional. Language, platform, problem domain, and business environments change. Fundamentals do not. And some of these fountains of knowledge have nothing (and everything) to do with applications, development, or computers. They have to do with life, the universe, and everything.
- The Art of Computer Programming, Donald Knuth, Vols I, II, and III, Addison-Wesley Professional
- Numerical Recipes (In C, or 3rd Edition, or whatever) The Art of Scientific Computing, Press, Flannery, Teukolski, Vetterling, Cambridge University Press
- Managerial Accounting, Garrison, Noreen, Brewer, McGraw-Hill
- Statistical Process Control: The Deming Paradigm and Beyond, Second Edition (Kindle Edition), Thompson, Koronacki, Chapman & Hall/CRC
- Autobiography of Thomas Jefferson, Jefferson, Dover Publications
- Walt Disney The American Dreamer, Tumbusch, Tomart Publications
- Elements of Style, Strunk & White, Allyn and Bacon
- Metamagical Themas: Questing For The Essence Of Mind And Pattern, Hofstadter, Basic Books
- Computer Organization and Design: The Hardware/Software Interface, Patterson, Hennessy, Morgan Kaufmann
- The Feynman Lectures on Physics including Feynman's Tips on Physics: The Definitive and Extended Edition, Feynman, Leighton, Addison-Wesley
- The Fuzzy Systems Handbook, Cox, AP Professional