J.D. Meier's Blog

Software Engineering, Project Management, and Effectiveness

Application Types (App Types) – The Early Years

Application Types (App Types) – The Early Years

  • Comments 1

Several years back, I did an exercise in mapping out families of application architectures and application types.  It was an extensive archeological expedition.

Key Goals / Outcomes
There were several goals of the exercise:

  • Identify canonical application architectures and app types
  • Figure out a useful way of sharing architectures
  • Figure out whether it's better to focus on the business architectures or the technical architectures
  • Find a simple way to overlay patterns work on top of technical architectures
  • Find a simple way to share architectural styles
  • Find a way to simplify and share visuals of end-to-end architectures

The exercise fed into a number of later works years later, including:

Key Activities
Some of the key activities of this early exercise included:

  • Creating an exhaustive catalog of application types grouped and sliced in various ways
  • Interviewing many of our best application architects in the trenches
  • Sanity checking with many of our top architects at head quarters, including Rico Mariani, Pat Helland, and Jim Gray
  • Reverse engineering many available sample applications inside and outside of Microsoft
  • Checking with industry experts on their lessons learned about the types and the shapes of all the applications they've seen and built over the years
  • Creating an extensive inventory of application patterns from various sets of our  key customers that had a wide range of applications and platforms
  • Evaluating competitive efforts to index and catalog application shapes and types, and making sense of various patterns efforts

Keep in mind, that going into this, I already had the benefit of doing more than 650 customer architecture and design reviews -- yet still, this was an overwhelming exercise.  It forced me to find new ways to deal with large bodies of data and information, and somehow turn them into  shared maps, browsable, reusable knowledge nuggets, and backdrops for deeper conversations and elaboration.

Lessons Learned from Architectural Exploration
Some of the surprises for me or things that I learned that I didn't expect include:

  • Focusing on business architectures and verticals was less effective and less reusable than focusing on technical architectures as a baseline (from there, we could overlay business architectures)
  • Knowing the deployment patterns was the fastest way to get a good sense of the application patterns (it's where the logical met the physical against the infrastructure)
  • Looking through quality attributes as a lens made it easy to find and explore patterns for security, performance, reliability, manageability, etc.
  • So many applications boiled down to simple CRUD (Create Read Update and Delete)
  • The biggest variation among applications was the business logic and workflow
  • IBMs simple model of user, process, and data was useful as one lens
  • Views and viewpoints were a powerful way to change perspective and drill into another aspect of applications
  • At a high-level, you could capture a customer's core system by capturing the data, workflows, and workloads (the workloads significantly shaped the design of the app)

In retrospect, the simplicity and common denominators of CRUD make a lot of sense.  It's all about interacting with information at a fundamental level.  People are just trying to get things done and there's only so many things you can do with information -- find it, browse, save it, share it, transform it, etc. as part of your workflow.

Early Map of App Types
I included one of the many early maps of the application types that helped us figure out what to throw out and what to keep as we moved forward.   One of the key distinctions that Ward Cunningham helped me figure out was to distinguish between the shape of the application architecture and design, and the actual “purpose” of the application.  Some purposes were more business-oriented, while some were more technically oriented, and this helped me find and distinguish different families of apps.

It's circa 2004, but the irony is how timeless the backdrop really has been.  It’s rough and raw, but like I said, it’s just one sampling of the many braindumps behind the scenes of mapping out app types.

 

Category Items
Base Archetypes
  • Rich Client
  • Web Client
  • Web Service
  • Mobile / Phone
  • Video Game
  • Framework
  • Component/Library
  • Subsystem
  • Service
Pool of Stuff
  • OLAP
  • Data Mining
  • Data Warehouses
  • Data Management
  • Business Process Integration
  • Business Intelligence
  • BAM
  • Server-side
  • Desktop
  • Peer-to-peer
  • Mobile
  • Web-centric
  • Data-centric
  • Middle-tier
  • Transactions
  • Read-Only data
  • Workflow
  • Batch
  • Portal
  • Community
  • Commerce
  • Task-Tracking
Business Applications
  • Accounting and Finance
  • Customer Service
  • Distribution and Warehousing
  • Education and Training
  • Engineering, Design and Drafting
  • Facilities Management
  • General Office Automation
  • Groupware and Collaboration
  • Human Resources
  • Knowledge Management
  • Legacy Systems Analysis and Upgrade
  • Logistics and Procurement
  • Manufacturing and Process Management
  • Other Business Application Tools
  • Project Management
  • Reporting, Analysis and Decision Support
  • Sales and Marketing
Accounting and Finance
  • Account Activity Analysis
  • Accounts Payable
  • Accounts Receivable
  • Billing and Invoicing
  • Budgeting, Financial Planning and Analysis
  • Consolidation Statements and Performance Reporting (CS-PR, Aggregation)
  • Currency and Foreign Exchange Management
  • Electronic Funds Transfer (EFT)
  • Fixed Asset Management
  • General Ledger
  • Integrated Accounting Solutions
  • Integrated Financial Management Solutions
  • Inventory Accounting
  • Investment and Portfolio Management
  • Job Costing
  • Payment, Clearing and Settlement Systems
  • Payroll and Personnel Accounting
  • Purchasing
  • Quotation, Order Entry and Order Processing
  • Risk Management
  • Small Business Accounting
  • Tax Preparation and Reporting
  • Time and Billing
Customer Service
  • Automatic Page-Voice Notification
  • Call Center Management
  • Customer Service
  • Help Desk and Call Management
  • Interactive Voice Response Systems
  • On-line Customer Support
  • Scheduling
Distribution and Warehousing
  • Distribution and Warehousing (Integrated)
  • Freight Dispatch
  • Freight Handling
  • Other Distribution and Warehousing Industry Sectors
  • Route Scheduling
  • Truck-Fleet Management
  • Wholesale Distribution and Warehousing
Education and Training
  • Computer-Based Training
  • Courseware Development
  • Web-Based Training
Engineering Design and Drafting
  • Cartography-Mapping-Geographic Information Systems (GIS)
  • Computer-Aided Design (CAD)
  • Computer-Aided Manufacturing (CAM)
  • Electronics Design Automation (EDA)
  • Materials Analysis
  • Mechanical Computer-Aided Design (MCAD)
  • Mechanical Computer-Aided Engineering (MCAE)
  • Mechanical Computer-Aided Manufacturing (MCAM)
  • Modeling
  • Sampling and Testing
  • Structural Analysis
Facilities and Management
  • Building Security
  • Communications Management
  • Computer Maintenance Management (CMMS)
  • Energy Analysis and Management
  • Enterprise Asset Management (EAM)
  • Equipment Maintenance and Field Service
  • Facilities Maintenance
  • Facilities Management (Integrated)
  • Heating, Ventilation and Air Conditioning (HVAC)
  • Lighting Analysis and Control
  • Other Facilities Management Industry Sectors
General Office Automation
  • Appointment Management
  • Calculators
  • Calendaring & Scheduling
  • Data Entry
  • Desktop Management
  • Desktop Publishing
  • Electronic Mail
  • Fax Management
  • Flowcharting
  • Graphics (Raster)
  • Graphics (Vector)
  • Mailing List Management
  • Multimedia and Animation
  • Office Suites (Integrated)
  • Presentation Applications
  • Spreadsheets
  • Time Management
  • Time and Expense Reporting
  • Voice Recognition Software
  • Web Browsers
  • Word Processors
Groupware and Collaboration
  • Chat and Discussion Systems
  • Collaborative Writing Systems
  • E-mail Clients
  • Group Calendars
  • Integrated Groupware Solutions
  • Newsgroup Management
  • Resource Scheduling
  • Video Conferencing and IP-TV
  • Workflow Automation
Human Resources
  • Benefits Administration
  • Employee Self-Service Software
  • Human Resource Management
  • Integrated Human Resources Utilities
  • Personnel Administration
  • Professional Services Administration
  • Recruiting
  • Resume Tracking
  • Time & Attendance
  • Travel Management
Knowledge Management
  • Computer Output to Laser Disc (COLD)
  • Document Imaging Systems
  • Document Management Systems
  • Idea Management
  • Knowledge Base Management
  • Workflow
Legacy Systems Analysis and Upgrade -
Logistics and Procurement
  • Import and Export Management
  • Partnership Relationship Management
  • Requisitioning and Procurement
  • Supply Chain Management
  • Transportation Management
  • Warehouse Management Systems
Manufacturing and Process Management -
Capacity Requirements Planning (CRP)
  • Data Reduction
  • Distribution Management
  • Enterprise Resource Planning (ERP)
  • Equipment Maintenance and Management
  • Factory Automation and CIM
  • Factory Data Collection
  • Inventory Management
  • Machine Tools
  • Machine Vision
  • Maintenance, Repair and Operating Supplies (MRO)
  • Manufacturing Automation Protocol
  • Manufacturing Execution Systems (MES)
  • Manufacturing Simulation
  • Manufacturing Solutions (Integrated)
  • Material Requirements Planning (MRP)
  • Materials Manufacturing
  • Metrology
  • Numerical Control (NC)
  • Operations Planning
  • Plant Maintenance and Service
  • Process Control (HMI-SCADA)
  • Product Information Management (PIM)
  • Product Service
  • Production Planning
  • Production Scheduling
  • Quality Control
  • Reliability Modeling and Analysis
  • Robotics
  • Shop Floor Control
  • Test Development
  • Test Information Integration
  • Test Simulation
  • Work Load Control
Project Management
  • Project Accounting
  • Project Estimating
  • Project Management (General)
  • Project Scheduling
  • Purchasing
  • Resource Planning
Reporting, Analysis, and Decision Support
  • Business Planning
  • Business Process Reengineering
  • Competitive Analysis
  • Data Mining and OLAP
  • Decision Support Systems
  • End-User Query and Reporting
  • Executive Information Systems
  • Expert Systems
  • Mapping and Visualization
  • Multi-Dimensional Analysis
  • Needs Analysis Systems
  • Neural Networks
  • Statistics and Technical Data Analysis
  • Trend Analysis
Sales and Marketing
  • Contact Management
  • Customer Relationship Management
  • Demographics
  • Enterprise Marketing Automation
  • Lead Distribution Management
  • Market Research
  • Marketing Management
  • Media Planning and Buying
  • Mobile Field Sales
  • Partnership Management
  • Product Configurators
  • Sales Analysis & Reporting
  • Sales Force Automation (SFA)
  • Sales Management
  • Telemarketing
Industries
  • Aerospace & Defense
  • Automotive
  • Chemicals
  • Communications
  • Consumer Products
  • Education & Research
  • Energy
  • Engineering & Construction
  • Financial Services
  • Healthcare
  • High Technology
  • Industrial Manufacturing
  • Life Sciences
  • Professional Services
  • Public Sector
  • Retail
  • Travel & Transportation
  • Utilities
Business
  • Contact Management
  • Customer Management
  • Accounting
Data
  • Datawarehouse
  • Data mining
  • OLAP
Desktop
  • Photo Editing
  • Graphic Design
  • Web Publishing
Desktop Business Software
  • Email Client
  • Spreadsheet
  • Presentations
  • Word Processing
Home and Hobbies
  • Cooking and Health
  • Fashion
  • Gardening and Landscape
  • Genealogy
  • Hobbies
  • Home Design
  • Home Publishing
  • Instrument Instruction
  • Legal
  • Mapping
  • Movies and Television
  • Music Appreciation
  • Personal Improvement
  • Script and Screenwriting
Personal Finance
  • Investment Tools
  • Money Management
  • Tax Preparation
Utilities
  • Virus Protection
  • PC Maintenance
A
  • Batch
  • BPM (business process management)
  • BIM (business intelligence management)
  • EAI (enterprise architecture integration)
  • Document Management
B
  • Operating System
  • Framework
  • Component/Library
  • Service
  • Subsystem
C
  • Portal
  • Community
  • Commerce
  • Task-Tracking
D
  • Transactions
  • Read-Only data
  • Workflow
  • Batch
E
  • Server-side
  • Desktop
  • Peer-to-peer
  • Mobile
  • Web-centric
  • Data-centric
  • Middle-tier
F
  • Content Management
G
  • Web Server
  • Application Server
  • Database Server
H
  • Collaboration Suite
I
  • OLAP
  • Data Mining
  • Data Warehouses
  • Data Management
  • Business Process Integration
  • Business Intelligence
  • BAM
  • Nice blast from the past. I love reflecting on past endeavors such as this and seeing what parts of the work are still stable and what parts aren't.

Page 1 of 1 (1 items)