I enjoyed Ted's thoughts on techies and modelers.
I tend to sit on both sides of the fence depending on the part of a system I'm working on at the time. Without being a techie its hard to be a good modeler otherwise you end up creating leaky abstractions. Wearing both hats can help round your viewpoint & skills.
Focussing too closely on being a techie sometimes (i.e. caring too much about the low level details, bits & bytes) can sometimes make you loose sight of what you're actually trying to do and force you to optimise the wrong thing. Being a modeler helps you to focus on the end user of your code, what the public API looks like rather than overly worrying about how you happened to have implemented it today.
The Java language and runtime provides a nice elegant model (abstraction) under which JVM techies can do all kinds of wierd and wonderful things (HotSpot, JRockit, IBM's JVMs etc) for garbage collection, JIT, synchronization, RTTI etc yet it provides a solid, stable, abstract foundation for us all to build.
The same modeling abstractions are vital at points in our infrastructure too to allow techies to optmise implementations. e.g. APIs like JDBC, JNDI, JMS, JTS are all vital to raising the abstraction level and providing competition. I won't try to defend EJBs though :)
Like most things in IT (and life I suppose), the trick is in getting the right balance.