Monday, July 20, 2009

No future for architects?

I am a big fan of Star Trek, especially of The Original Series and The Next Generation. From a technology viewpoint, it is amazing how all of these technologies such as warp drives or beaming have influenced science. Did you know that the inventor of the mobile phone had also Star Trek in mind?

However, there is one sad aspect. What about Software Engineering? Whenever software plays a role in any of the episodes, you’ll recognize Spock or Data just coding. Do they ever design? There is also no software engineering team in the Enterprise although software should be an important asset in the system architecture. I am missing a chief engineer for software engineering aspects!

Does the computer program itself? Will UML disappear in the future? Or is it just software engineering being too boring for SciFi fans? Interestingly, there are also seem to be no restrooms in the spaceships. This is what they have in common with software engineers :-)

Thus, we could ask how software engineering especially the discipline of software architects will evolve in the future? Will we still use a successor of UML in hundred years? How could the role of software architects evolve?

The best approach to predict the future is identifying space of improvement. It is very likely that such areas will be addressed. How should the ideal process of software design look like? What is the software architect supposed to know and to do?

In most SciFi movies automatization/Model-Driven Software Development and AI are often the answer. Architects express their intent, smart systems then try clarify open issues, and eventually the result is generated.

Another approach could be an organization like the Borgs who strongly follow an agile approach with code ownership, collective programming and test-first.

Any opinions?

Keep in mind: Resistance is futile!

4 comments:

Unknown said...

Take the definition of an expert. Intuition and pattern matching replace explicit knowledge. Both cannot by replaced by a program.
At max the second one can be computer-assisted.

Anonymous said...

I think the star trek (and many other sci-fi's) is influenced by the really early stories/movies where high tech is a physical unit doing something cool. Old school hardware. Software was something too abstract and hence could not be made cool. Today, software is abstract, the closest thing one could see in movies is actually people googling och surfing the web. Seeing anyone actually coding in a movie, it probably a geek typing some jibberish. I think software is too abstract to make interesting on movie/TV!?

Software Architect CV said...

No i don't agree, i am an Architect and i have a bright future.

Wanderson Santos said...

Context is the king!

Architecture for "long tail" (medium and small-size systems) will be a commoditity, by the advent of cloud (no worries about scalability) and full-stack frameworks (no worries about layering, modularizing, etc.), like Rails and Grails. In those framework/plataforms you will be using patterns automatically, like you are using Strings or GC today in constrast of "C char[]" and malloc. Architects in these systems will choose what full-stack use, design OO solutions, and do code inspections to assert that internal quality is maintained.

But for bigger systems, with many integrations and modules, architecture practices and principles will always be necessary and present. And please consider frameworks and reusable products as big systems! There is solid architects and designer practices behind great products and frameworks.