Thursday, December 28, 2006 2:57 PM
by
dodyg
Architecture Astronaut Redux
"
The Corporate Framework Guru:
Keep Your Filthy Problem Domains Away From Me"We
have a well-established seniority structure here. The new programmers
work on customer-facing code: printed output, reports, user-interfaces.
The intermediate programmers work on the business logic that the
customers care about - they build classes and business rules that make
the system work. The senior programmers work on the fun things that the
customer doesn't care about - presentation layers, message processing,
persistence engines, process orchestration rules engines. The smarter
you are, the better you insulate yourself from boring customer
problems. I don't want a fancy framework coming in here and messing up
this my nice ivory tower..."" (Ruby This)
"When great thinkers think about problems, they start to see
patterns. They look at the problem of people sending each other
word-processor files, and then they look at the problem of people
sending each other spreadsheets, and they realize that there's a
general pattern: sending files. That's one level of abstraction
already. Then they go up one more level: people send files, but web browsers also "send"
requests for web pages. And when you think about it, calling a method
on an object is like sending a message to an object! It's the same
thing again! Those are all sending operations, so our clever thinker invents a new, higher, broader abstraction called messaging, but now it's getting really vague and nobody really knows what they're talking about any more. Blah.
When
you go too far up, abstraction-wise, you run out of oxygen. Sometimes
smart thinkers just don't know when to stop, and they create these
absurd, all-encompassing, high-level pictures of the universe that are
all good and fine, but don't actually mean anything at all. " (Joel on Software)
These articles remind me of some people that come to SilverKey office for Senior Developer positions and how they reacted when they found out they have to write some code by hand.
"Sorry, I don't write code by hand".
If you don't write code, you will lose the sight and the scope of your software development work. A software is a bunch of ideas, sometimes opposing ideas, realized in form of code.
The code is the truth, nothing else. And that makes software development a unique industry - both a product of art and science.
If you don't write code, you will end up as an "author" that doesn't write books, a "singer" that doesn't sing, a "football player" that no longer plays.