5

Is it perhaps time for enterprise systems to be developed to strict enforced standards? Many books list optional 'standards' and best practices, but these are purely suggested practices. Still, every time I look at the code for an enterprise system I have not been a part of, I spend a lot of time trying to work out the architecture.

Should we not have some form of ISO accreditation for our systems? We could have a selection of standard architectures such as Domain Model, Transaction Script etc, but once we choose one of these, we have to follow a strict architectural template. Systems could be audited to ensure we are working to these standards, and our companies would carry this accreditation.

This would be better for developers because when we take on legacy work that was written by another company, we will not have to spend time deciphering the architecture.

It would benefit clients because they would know that if they used the services of an accredited development company, they could used another company to maintain/amend it, and not be tied to the original developers.

5 Answers5

9

The main issue with Standard Architectural models are they that only work on standard systems. The problem with real world enterprise environments are that they are ALWAYS different.

In turn, the standards would end up being so vague that you might as well be better off without any.

Lionel
  • 309
0

The very short answer is: You have to be very very very smart to define an architecture which works for every case. Barely anybody is so smart.

In my experience software starts in one of two way: Either with the idea "let's be fast to ship a product and refactor it once we have customers" which has less architecture in the beginnig and then no time for doing a big rewrite or "let's create a good architecture" which in the beginning looks nice but over time has more and more places bypassing the architecture either due to performance optimizations or features which don't fit in the architecture. so both times oyu get a mess out of it.

also mind that many "Enterprise" projects are long running and old. Software development is a relatively new thing so it changes fast what is considered good. So as new trends come in there is an interest in using them in the product ...

johannes
  • 3,611
0

Standards sound all fine and dandy, but what happens when a customer has performance needs or a different business model that are impossible to achieve without a unique architecture? Each customer has to make an informed choice about the advantages and disadvantages of different solutions. Developer Lock-In is just one concern.

Are programmers going to have to be certified for specific standards? Are we going to create governing bodies that will send software inspectors to verify compliance? Home electrical wiring specifications in Australia have no need to comply with Asia. Software can span the world. What will be the level of compliance? Absolutely 100%? Seems like the burden of policing this would fall on clients who will have to report violations. Do they have the time, expertise and resources?

Even companies that create their own internal apps have to deal with a new generation of developers that have to get up to speed and they're not always provided the best documentation or supervision.

Situations where a standard is applicable probably doesn't have enough new development in these areas to warrant a standard.

JeffO
  • 36,956
0

We could have a selection of standard architectures such as Domain Model, Transaction Script etc, but once we choose one of these, we have to follow a strict architectural template.

Why stop there? Why not just write a few standard applications and have everyone use them?

Of course, you'd have to compete against companies like SAP, Oracle, IBM, CA Technologies, and Google, so you'd better know what you're doing.

There are a lot of products in the enterprise applications space, so you have to ask yourself:

Why does any enterprise bother to write its own applications?

If you can think of a good answer to that, you can probably start to see why a small number of standard architectures might not work so well. That's not to say that all enterprise applications are designed well, or that there's not commonality between many enterprise applications. However, corporations tend to compete against each other, and I suspect that building their systems the same way that their competitors build systems might not be as appealing to a corporation as you'd think.

Caleb
  • 39,298
0

What would be the point, you aren't going to be able to force companies to use certain standards... the point of software development is making something custom, not boilerplate. There are always trade-offs for various design decisions, one company may have a product where they care primarily about scaling while another has a similar software product where security is their primary focus. How would on standard work for both of these? Naturally they are going to spend more time on differnet areas of the software and making differnet architectural decisions based on their perceived needs.

programmx10
  • 2,087