Agile - Define Your Technical Architecture
(Please note that this article is a little Information Technology-centric.)
"Technical Architecture" refers to hardware, software, databases, connectivity, etc. Project-level architecture consists of the technology required for the project solution to run as intended. It is a key component of an IT project lifecycle. It is important that the team figure out as soon as possible the overall architecture model. For example, the team should know if the solution is a web application, a data warehouse, a mobile app, a high-transaction back-end system, etc.
The project technical architecture is developed very early - for instance in the setup sprint. On an Agile project, the architecture could be defined on a whiteboard or flipchart. It is important that the information be shared with the team for additional ideas and concerns. For example, you would need to define the following areas:
-
Hardware. Identify the hardware your solution will run on and any other hardware that will be needed. You will also note if your solution will interact with cell phones, personal digital assistants (PDAs), fax machines, scanners, bar code readers, etc.
-
Software. Identify any software and tool requirements. This would include things like the client and server operating systems, browser type, third party software packages, etc.
-
Interfaces. The major interfaces should be noted. Interfaces include other applications, vendors, clients, etc. where data is being passed to and from your solution.
-
Network. The network that is needed to support the solution should be diagrammed. This includes modems, lines, routers, hubs, etc.
-
Firewall/security. If your solution needs to run outside of your internal network, you will probably need to design with a firewall. In fact, you may need two firewalls (or more) to protect company data from unauthorized outside access.
-
Datastores. Identify the major datastores and the specific package/vendor involved. For instance, if you utilize a database, identify the specific software (Oracle, SQL Server, etc.). Do the same for data marts, data warehouses, major files, etc.
-
Tiers. Many solutions are created using a two tier (client-server) or three tier approach. Web solutions, for instance, are typically designed in three tiers.
In general, the more complex your project architecture is, the more potential problems you will encounter over time. Every piece of hardware and software, and every programming connection between, is subject to failure and bugs. The best solutions for long-term stability are the simple designs that gain as much functionality using as few "moving parts" as possible.
It is important that the project technical architecture be created by experienced staff because the architecture sets far-reaching structure based on a limited amount of information. The architecture does not have to be perfect the first time. However, it is important that the architecture be close. It is also important that it be flexible. The architecture is subject to change throughout the project. However, the later in the project that architecture changes, the more costly and time consuming it will be to the project.
................................ |