Recently I was asked what it is that a software architect does.   This is a difficult question to answer.    We do so much.     For the outsider it can difficult to explain.

I started thinking about it in terms of the balls that we juggle.   Here is my initial list.   I am sure that there are more:

  • Performance
  • Maintainability
  • Security
  • Reliability
  • Scalability
  • Look and Feel
  • Flexibility
  • Best Practices
  • Time lines
  • Politics   (Office and Project)
  • Software Version Upgrades
  • Individual egos
  • Scope Creep
  • System Integrity
  • System Integration
  • Budget
  • Deployment
  • System Conversion
  • Training / Mentoring
  • Hardware / Network Constraints
  • Business Requirements

In future posts,  I will ruminate over my personal experience in some of these areas.   I hope to hear what others are or have experienced.