"Enterprise" development means development for mission-critical IT support processes for large companies. Basically if you are developing software supports a mission-critical process for a large business, then you are doing enterprise development.
IT managers and enterprise architects are under pressure to provide IT solutions with a low total cost of ownership that allow for maximum business flexibility with high quality; in other words, solutions have to be cheap, fast, and good.
In these kinds of situations, the stakes are high, and decision makers are allergic to risk. This is where the old saying, “Nobody ever got fired for buying IBM” comes from – the idea being that it’s acceptable to spend more money in the name of reducing risk.
In mission-critical developments for large companies, the timing of the delivery and the functionality take the front seat, and the development is anything but cheap. Basically, if you are Developing Software Supports a mission-critical process for a large business, then you are doing enterprise development.
The main question I would like to explore is:
How can enterprise development be affordable, fast, and good?
I believe that the only way to do this is to reduce the complexity of the implementation of the solution. Complex solutions are inherently expensive, either in development, in operations, or most commonly both.
This is the crux of the Less is More argument for enterprise development: less complexity = more chance for success!
I would like to propose several ways to reduce the complexity of enterprise solutions:
- Use proven off the shelf applications
- Establish and enforce process and technical integration standards
- Favor solutions based on configurability over coding
- Favor solutions that focus on operations rather than development
The first two points are hopefully self-explanatory, so I’ll focus on the last two.