{ by david linsin }

February 06, 2008

Design Skills vs. Platform Knowledge

InfoQ recently summarized a blog post by Martin Fowler, where he states that he prefers design skills over platform knowledge. Furthermore he notes that
... Given a motivated broad-designer, I can be pretty sure she'll pick up a platform in time.
I somewhat agree that good design skills are more preferable than platform knowledge. Nevertheless, most of the time, you already have a specific target platform in mind, when designing a software solution. Either your clients have existing solutions or there are other constraints that limit your platform choices. Of course your design should be as platform neutral as possible, but if your implementation platform is already known, it's kinda natural for you to start thinking in code, already during design time. I believe that, if your insight of the target platform is above average, your design will be much better as if you only have decent knowledge.

I definitely dissent with the second statement made. I don't think you can pickup a complex platform, e.g. Java or .NET, "in time". It takes a while before you know the quirks and corner cases of a platform and I think that knowledge should influence your design. Why not incorporate important insights into your design, if you know your target platform by heart? It'll lead to a more pragmatic solution and make your life easier when implementing your design.

Having the best of both world - "design skills" and "platform knowledge" - would be the ideal situation. Unfortunately, it's not the real world. As so often in software development making a trade-off is the best solution here. Nevertheless, I think both qualities are equally important.



  • mail(dlinsin@gmail.com)
  • jabber(dlinsin@gmail.com)
  • skype(dlinsin)