This content originally appeared on DEV Community and was authored by Peter Harrison
The primary purpose of this article is to describe some of the characteristics worth considering when developing a computing architecture. By architecture we mean the choices about the hardware and software you will using to run and develop your business solutions.
The importance of the below points will depend on the size and type of your business, however, a good appreciation of the considerations when developing a solution is needed to avoid the pitfalls many developers fall into. Developing a good computing architecture is not rocket science, its just good sense.
Flexibility
An architecture should not confine the business into using a specific solution to a problem. It should allow for the widest possible number of solutions.
Portability
An architecture should be portable between different platforms. This aids both the flexibility of the architecture, as you are not tied to a specific type of hardware or operating system, and the Scalability, as systems designed on low performance systems can be ported to systems with high performance.
Scalability
An architecture should be able to scale up to meet the requirements of the business. It is no use developing systems which need to be rewritten when the business grows.
Reliability
An architecture should be reliable. It should be able to cope with increasing demands without becoming less reliable. This means it should have a consistent way of increasing the load without affecting the performance of the system.
Longevity
An architecture should last a long time. It should be built on widely used, and well supported open technologies, rather than closed proprietary technologies which are changed frequently by vendors.
Simplicity
An architecture should make complex systems look simple - in abstract. In other words, while computer systems are complex, there should be a higher level abstract view of the architecture which is simple to understand.
Productivity
An architecture should allow developers to develop applications rapidly to meet the changing needs of the business, and not restrict their ability to deliver new functionality.
Maintainability
An architecture should ensure that systems to not degenerate into 'Big Balls Of Mud', where only a select few engineers understand the complex and intertwined code.
Performance
An architecture should give the developers the ability to develop systems which perform to users expectations.
Compatibility
An architecture should be compatible with a wide variety of common systems and applications. It should be able to utilize existing software and systems.
Note: I wrote this article back in 2001.
This content originally appeared on DEV Community and was authored by Peter Harrison
Peter Harrison | Sciencx (2022-04-15T02:45:06+00:00) What should an Architecture provide?. Retrieved from https://www.scien.cx/2022/04/15/what-should-an-architecture-provide/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.