Methods to shift your enterprise.TM  

Chapter 3

Business-to-Enterprise Pattern Analysis

While the Business-to-Consumer pattern is well understood by architects and developers, the Business-to-Enterprise pattern is most widely used among business organizations. Business are run using the Enterprise Business Patterns analyzed in this chapter.

B2E: The Business-to-Enterprise Pattern

Most business personnel function in our day-to-day activities within the Business-to-Enterprise pattern. It’s the pattern that defines how organizations operate their business relative to Information Technologies they have invested in and depend on.

This XBP is both broad and deep. From the viewpoint of software, it includes such applications as email and instant messaging, project management, inventory and supply chain management, customer relationship management, accounting and financials packages, business intelligence, reporting, and analysis tools, and human resources management. From a technical angle it includes networking and administrative software, Web development and content management tools, software development tools, helpdesk administration, and the list goes on. What particularly complicates this space is the fact that no two businesses are exactly alike. The automation software around even the various segments business is vast and competitive.

Talk about inventory! If we were to attempt to address every nook and cranny of this space it would be far too extensive to handle. This is particularly the case, again, because of the custom applications that have been written by the individual companies who know their business best. Therefore, we will not attempt to dive too deep into this pattern. We do believe, however, that there are plenty of common patterns useful to the majority of businesses, which we will dredge up and capture.

Web and Software Development Business Patterns

One good place to start in our analysis of the B2E space is with the area that most all of us specialize in. Since we know the Web and software development space so well we probably feel rather comfortable discussing patterns here first.

Suffice it to say, there are patterns around the creation of Web content and software artifacts. Some of the proven patterns used time and time again are as follows:

 

Commodity Pattern

Implementation Examples

Application Programming Interface (API)

J2EE and EJB interface packages, .NET Framework

Application Server

BEA WebLogic, IBM WebSphere, JBoss

Aspect-Oriented Software Development

Realized by ApsectJ, AspectWerks, JBoss

Build and Configuration Management

Ant, Make, Rational ClearCase, StarTeam

Image Editor

Adobe Photoshop, Macromedia Fireworks

Integrated Development Environment (IDE)

Eclipse, JBuilder, Visual Studio .NET

Object-Oriented Software Development

C++, C#, Java, Smalltalk

Project Management

??? (not really Microsoft Project)

Relational Database Management System

Microsoft SQL Server, MySQL, Oracle Database

Software Development Kit (SDK)

.NET Framework, Java Development Kit

Software Development Process

Rational Unified Process, Extreme Programming

Software Modeling Tool

Rational Rose, Rational XDE, Together Control Center

Software Revision Control

CVS, Rational ClearCase, StarTeam

Structured Content Editor

An XML editor such as XML Spy

Web Page Editor

Macromedia Dreamweaver or Microsoft Front Page

Web Server

Apache HTTP Server, Microsoft Internet Information Server (IIS)

Word Processor

Typical document editor such as Microsoft Word

These may seem like strange patterns, but they are definitely patterns. While given software development processes specify a definite set of steps, the software development process as a pattern captures techniques and strategies in more general terms. For example, waterfall-, iterative-, and agile-process are kinds of processes. But within a Software Development Process pattern definition, these process types might be found under the pattern’s strategies. Of course you may also consider Agile Process to be its own pattern, and you’d be correct if you desired to capture its structure and behavior that way. In fact, if Software Development Process were an EBP in our catalog, then Agile Process and Iterative Process would certainly be solution patterns within it.

Because these patterns and others related to them are so thoroughly documented elsewhere, we will not attempt to address them in this work. Rather, we will focus on useful patterns that are less well understood.

Let’s analyze the Web and software development space to see what essential patterns there are to help us work more efficiently and accurately. First let’s look at the activities that a Web production team commonly engage in:

Work in progress...