Tools of the Enterprise Architect

The following ad-hoc lists are technologies and techniques that any Chief Architect or CTO will come equipped with in order to design (or redesign) systems.

When I am faced with the challenge of developing a new system or refactoring a legacy system, these are the item that I consider as I go through my design process.

  • Message Buses
  • Async Processing
  • Async Communication
  • Refactoring into a different language (managed language, scripting language, DSL)
  • Moving to a different Operating System
  • Migratio to the Cloud
  • Specialized infrastructure (SSDs, GIGE, FPGA/GPU)
  • Canonical Object Model
  • Common Data Format (FIX, XML, FAST, SWIFT, FpML)
  • Metadata and Code Generation (including the ability to define new products quickly)
  • Complex Event Processing
  • SOA/Breaking embedded processes into exposed services
  • Rules Engines
  • Big Data/Hadoop
  • Specialized Databases (Object databases, tick databases, KDB)
  • BPM
  • Monitoring and Alerting and Visualization
  • UI Refactor (thick->thin)
  • Mobile
  • Providing KPIs where no existed before
  • Distributed Caching
  • Grid Computing
  • Replacing custom processes with a vendor/open-source product
  • Replacing a vendor product with custom processes
  • Replacing end-of-life software
  • Combining multiple products from the same companies to reduce license fees
  • Change of development methodology