Our field is a young one. Young in terms of the average age of engineers in the field doing work. This has the unfortunate side effect of the same failures to repeat with each generation of developers. I've been in the field to see a few generations go by and the same mistakes re-appear.
Every few years there is talk (hype really) of how a new language or tool is going to revolutionize software development. The IDE's Languages, development methodologies, etc. are the "hot new thing" in the field.
But I've never found that true. I can still code and produce the same code with the same quality as I did 20 years ago. The basics are the same, edit, build, run, test. Yup the tools and computers are much faster today so the cycle time is quicker but it's not 10-100x faster. More like 2-3 times faster than decades ago. So what makes one type of development or a project much better than another?
From my perspective it's the design. Design trumps language, tools, dev-process every time. It's not just a big factor, it's THE factor in development. Without a good design any project is at risk. Either in primary development or in support / maintaince mode.
When ROR (Ruby on Rails) was released it was herald as a great leap forward in productivity. My thought's on ROR was that it's was just a solid Web MVC design that developers could use. Any good Web MVC design would make developers vastly more productive, regardless of language. hype aside, it's the design. People jumped on the language as the saving grace. It's not, it was the MVC web design that just happened to use Ruby.
The problem with young (< 40 years old) developers is that they all want to create their own designs and they think they are good at design. They are not. Not all of them anyway. They would rather use a new shinny object to base their project on than to use a proven design as a foundation. Very few succeed in the creation of new designs, but the hype never ends.
In the end, only the best designs survive, along with wiser engineers. When things fail, it's the wise ones that help put things back together again.
Every few years there is talk (hype really) of how a new language or tool is going to revolutionize software development. The IDE's Languages, development methodologies, etc. are the "hot new thing" in the field.
But I've never found that true. I can still code and produce the same code with the same quality as I did 20 years ago. The basics are the same, edit, build, run, test. Yup the tools and computers are much faster today so the cycle time is quicker but it's not 10-100x faster. More like 2-3 times faster than decades ago. So what makes one type of development or a project much better than another?
From my perspective it's the design. Design trumps language, tools, dev-process every time. It's not just a big factor, it's THE factor in development. Without a good design any project is at risk. Either in primary development or in support / maintaince mode.
When ROR (Ruby on Rails) was released it was herald as a great leap forward in productivity. My thought's on ROR was that it's was just a solid Web MVC design that developers could use. Any good Web MVC design would make developers vastly more productive, regardless of language. hype aside, it's the design. People jumped on the language as the saving grace. It's not, it was the MVC web design that just happened to use Ruby.
The problem with young (< 40 years old) developers is that they all want to create their own designs and they think they are good at design. They are not. Not all of them anyway. They would rather use a new shinny object to base their project on than to use a proven design as a foundation. Very few succeed in the creation of new designs, but the hype never ends.
In the end, only the best designs survive, along with wiser engineers. When things fail, it's the wise ones that help put things back together again.
Comments
Post a Comment