Skip to content
Product cover

The Trouble With Enterprise Software

Drawing upon a wealth of data, informed experience and expert opinion — from Thomas Friedman to Bjarne Stroustrup, from David Gelernter to Nicholas Carr — the author builds a case that enterprise software in large organizations has not delivered on its promise to fully integrate and intelligently control complex business processes while remaining flexible enough to adapt to changing business needs.

Instead, ERP systems — including both software applications and the data they process — are variegated patchworks, containing 50 or more databases and hundreds of separate software programs installed over decades and interconnected by idiosyncratic, Byzantine and poorly documented customized processes. To manage this growing complexity, IT departments have grown substantially: Today’s IT departments spend 70% to 80% of their budgets just trying to keep existing systems running. The research shows, says the author, that the typical IT structure is so dense and extensive that it’s often a miracle that it works at all.

Enterprise systems that were supposed to streamline and simplify business processes instead have brought high risks, uncertainty and a deeply worrying level of complexity. Rather than agility, they have produced rigidity and unexpected barriers to change, a veritable glut of information containing myriad hidden errors and a cloud of questions regarding their overall benefits.

How did this happen? Rettig points to the inherent limitations in the nature of software, the costs of implementation and the vagaries of data. Indeed, she offers, enterprise software may be just too complex to deliver on its promises. She also suggests that the next new thing — service-oriented architecture (SOA) — is not likely to fare much better, for many of the same reasons. There are no easy fixes, cautions Rettig, save a large dose of sobriety, clear-eyed analysis and emphasis on simplicity and efficiency.

Note that this article was originally published on the MIT Sloan Management Review Web site and stirred
up a good deal of discussion in the blogosphere. A sampling of that wide-ranging discussion is included in the article available here.

Purchase Options

Educator and Student Discounts Available. Learn more »

  BENCHMARKS  
Loading Time: Base Classes  0.0011
My Controller Construct  0.0008
Build Nav  0.0006
Controller Execution Time ( Products / Route )  0.0506
Total Execution Time  0.0518
  GET DATA  
No GET data exists
  MEMORY USAGE  
1.5752 MB
  POST DATA  
No POST data exists
  URI STRING  
store/the-trouble-with-enterprise-software
  CLASS/METHOD  
products/route
  DATABASE:  MITSLOAN_DEV   QUERIES: 68  (Hide)
0.0005  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0016  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0002  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0002  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0001  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0001  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0001  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0003  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0002  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0002  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0001  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0002  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0001  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0003  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0003  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0001  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0002  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0001  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0002  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0001  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0001  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0002  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0001  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0001  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0003  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0001  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  'a6da6881cdd769bb9193e0090febec69'
ORDER BY `created_atDESC 
0.0002  

SELECT SQL_CALC_FOUND_ROWS cat_id
FROM 
(`product_categories`)
WHERE `status_id` =  'A'
AND `url_friendly` =  'the-trouble-with-enterprise-software'
AND `parent_id` =  
0.0056  

SELECT c.parent_idc.format_id
                    FROM products 
AS pproducts AS c
                    WHERE p
.prod_id c.parent_id AND
                        
c.avail_id IN ('A','B','D') AND
                        
c.type_id 'V' AND
                        (
                            
c.sku 'the-trouble-with-enterprise-software' OR
                            if(
c.format_id 'Certificate'''p.url_friendly) = 'the-trouble-with-enterprise-software'
                        
)
                    
LIMIT 1 
0.0002  

SELECT `parent_id`
FROM (`products`)
WHERE `prod_id` =  1137 
0.0002  

SELECT *
FROM (`products`)
WHERE `products`.`prod_id` =  '1137' 
0.0002  

SELECT *
FROM (`authors`)
JOIN `products__authorsON `authors`.`author_id` = `products__authors`.`author_id`
WHERE `products__authors`.`prod_id` =  '1137'
ORDER BY `sortAS
0.0001  

SELECT `cat_id`
FROM (`product_categories__products`)
WHERE `prod_id` =  '1137' 
0.0001  

SELECT *
FROM (`product_flags__products`)
WHERE `prod_id` =  '1137' 
0.0001  

SELECT `sku`
FROM (`products__xsell`)
WHERE `prod_id` =  '1137'
ORDER BY IF(position 010) AS, `position
0.0174  

SELECT `products`.`parent_id`
FROM (`transaction_lines`)
JOIN `productsON `products`.`sku` = `transaction_lines`.`sku`
JOIN `product_categories__productsON `products`.`parent_id` = `product_categories__products`.`prod_id`
WHERE `products`.`avail_id` =  'A'
AND TO_DAYS(transaction_lines.updated_at) < (TO_DAYS(NOW()) - 90)
AND `
product_categories__products`.`cat_idIN ('243') 
GROUP BY `products`.`parent_id`
ORDER BY COUNT(*) DESC
LIMIT 6 
0.0003  

SELECT `parent_id`
FROM (`products`)
WHERE `prod_id` =  '3379' 
0.0003  

SELECT *
FROM (`products`)
WHERE `products`.`prod_id` =  '3379' 
0.0002  

SELECT *
FROM (`authors`)
JOIN `products__authorsON `authors`.`author_id` = `products__authors`.`author_id`
WHERE `products__authors`.`prod_id` =  '3379'
ORDER BY `sortAS
0.0001  

SELECT `parent_id`
FROM (`products`)
WHERE `prod_id` =  '3385' 
0.0002  

SELECT *
FROM (`products`)
WHERE `products`.`prod_id` =  '3385' 
0.0002  

SELECT *
FROM (`authors`)
JOIN `products__authorsON `authors`.`author_id` = `products__authors`.`author_id`
WHERE `products__authors`.`prod_id` =  '3385'
ORDER BY `sortAS
0.0001  

SELECT `parent_id`
FROM (`products`)
WHERE `prod_id` =  '3991' 
0.0002  

SELECT *
FROM (`products`)
WHERE `products`.`prod_id` =  '3991' 
0.0002  

SELECT *
FROM (`authors`)
JOIN `products__authorsON `authors`.`author_id` = `products__authors`.`author_id`
WHERE `products__authors`.`prod_id` =  '3991'
ORDER BY `sortAS
0.0001  

SELECT `parent_id`
FROM (`products`)
WHERE `prod_id` =  '4261' 
0.0002  

SELECT *
FROM (`products`)
WHERE `products`.`prod_id` =  '4261' 
0.0002  

SELECT *
FROM (`authors`)
JOIN `products__authorsON `authors`.`author_id` = `products__authors`.`author_id`
WHERE `products__authors`.`prod_id` =  '4261'
ORDER BY `sortAS
0.0001  

SELECT `parent_id`
FROM (`products`)
WHERE `prod_id` =  '1505' 
0.0002  

SELECT *
FROM (`products`)
WHERE `products`.`prod_id` =  '1505' 
0.0002  

SELECT *
FROM (`authors`)
JOIN `products__authorsON `authors`.`author_id` = `products__authors`.`author_id`
WHERE `products__authors`.`prod_id` =  '1505'
ORDER BY `sortAS
0.0003  

SELECT `parent_id`
FROM (`products`)
WHERE `prod_id` =  '33' 
0.0002  

SELECT *
FROM (`products`)
WHERE `products`.`prod_id` =  '33' 
0.0002  

SELECT *
FROM (`authors`)
JOIN `products__authorsON `authors`.`author_id` = `products__authors`.`author_id`
WHERE `products__authors`.`prod_id` =  '33'
ORDER BY `sortAS
0.0004  

SELECT SQL_CALC_FOUND_ROWS media_idposition
FROM 
(`media`)
WHERE `foreign_key_table` =  'products'
AND `foreign_key_column` =  'prod_id'
AND `foreign_key_value` =  '1137'
AND `kind` =  'image_600x600'
ORDER BY IF(position 010) AS, `position
0.0001  

SELECT *
FROM (`media`)
WHERE `media`.`media_id` =  '554' 
0.0004  

SELECT *
FROM (`mime_types`)
WHERE `mime_types`.`extension` =  'jpg' 
0.0001  

SELECT *
FROM (`media_metadata`)
WHERE `media_id` =  '554' 
0.0003  

SELECT SQL_CALC_FOUND_ROWS media_idposition
FROM 
(`media`)
WHERE `foreign_key_table` =  'products'
AND `foreign_key_column` =  'prod_id'
AND `foreign_key_value` =  '1137'
AND `kind` =  'gallery_image'
ORDER BY IF(position 010) AS, `position
0.0003  

SELECT *
FROM (`products`)
WHERE `avail_idIN ('A''B''C''H') 
AND `
parent_id` =  '1137'
AND `type_id` =  'V'
ORDER BY IF(position 010) AS, `position`, `title
0.0002  

SELECT `c`.`format_id`, `c`.`price`, `c`.`sale_price`
FROM (`productsAS c)
WHERE `c`.`prod_id` =  '1138'
LIMIT 1 
0.0004  

SELECT SQL_CALC_FOUND_ROWS media_idposition
FROM 
(`media`)
WHERE `foreign_key_table` =  'products'
AND `foreign_key_column` =  'prod_id'
AND `foreign_key_value` =  '1138'
AND `kind` =  'thumbnail'
ORDER BY IF(position 010) AS, `position
0.0002  

SELECT `product_categories__products`.`cat_id`
FROM (`product_categories__products`)
JOIN `product_categoriesON `product_categories__products`.`cat_id` = `product_categories`.`cat_id`
WHERE `product_categories__products`.`prod_id` =  '1137'
AND `product_categories`.`parent_id` =  1
AND `product_categories__products`.`cat_idNOT IN (1261)  
0.0004  

SELECT `cat_idAS id, `parent_idAS parent, `status_id`, `name`, `description`, `url_friendly`, `page_title`, `meta_keywords`, `meta_description`, `position`, `updated_at`
FROM (`product_categories`)
WHERE `cat_id` != 1
ORDER BY 
`parent_id`, IF(position 010) AS, `position`, `name
0.0003  

SELECT *
FROM (`product_categories`)
WHERE `status_id` =  'A'
AND `parent_id` =  1
AND `cat_idNOT IN (1261) 
ORDER BY `name
0.0002  

SELECT *
FROM (`site_settings`)
WHERE `option_key` =  'announcement' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)