In early days of software development little thought was presented with to how the application applications and systems we built were architected. There were several reasons with this: firstly, software development being new, the idea hadn’t been looked at, and secondly we didn’t realize how important architecture was to the cost of maintaining our applications and systems. Upon sober reflection, we probably must have foreseen the necessity for planned architecture and architects because building software isn’t radically different from building any structure, for example buildings and bridges. We can’t go back and undo the damage done by the lack of foresight that led to badly architected applications and systems but as project managers we can avoid making this mistake in our next software development project.
Today most organizations whose core competencies include software development recognize the importance of architecture for their business and have satisfied this need by creating the role of architect and making this individual accountable for the architecture of all software applications and systems they develop. Even organizations whose core competencies don’t include software development, but who’ve invested heavily in IT, have created this role. These people may be called the Chief Architect, Head Architect, or Strategic Architect. Wikipedia identifies 3 different kinds of architect with respect to the scope of their responsibilities: the enterprise architect who’s accountable for all an organization’s applications and systems, the solution architect who’s accountable for the architecture of a system made up of a number of applications and hardware platforms, and the application form architect whose responsibility is limited to one application. The category and number of architects will often be constrained by how big the business and the amount of applications and systems it supports. Regardless of what the business you work for calls them, the application architect includes a key role to play on your own software project.
Your job as project manager of a pc software development project, where a pc software architect is in place, is to ensure that their work is properly defined and organized which means that your project receives maximum take advantage of their expertise. If the business does not have an architect in place you will have to identify someone on your own team to fill that role. What is not acceptable is to plan the project without the acknowledgment of the necessity or importance of the architect. This role requires the maximum amount of understanding of the system components as possible, including software and hardware knowledge. Additionally, it requires deep technical understanding of the technology getting used, both hardware and software and strong analytical skills. Anyone (other than a pc software architect) who most likely possesses a skill set similar to this one, is a small business or systems analyst. Dependant on the size and complexity of the prevailing system, and your project, existing skill sets may possibly not be sufficient to generally meet your project’s needs. You can find ample training opportunities available so select one that a lot of closely suits your requirements and have your candidate attend. If your project has adequate budget to pay for the training, fine. If not, bear in mind that the skill set acquired by the trainee will be open to the business after your project is completed and your project should not have to bear the entire cost of the training.
Now that you have a qualified software architect engaged for the project, you will need to plan that person’s tasks to take maximum advantage of their skills. I will suggest engaging the architect as in early stages in the project as possible so that they’ll influence this is of the application form or system being developed. The team that defines the business enterprise requirements to your project will be from the business enterprise side of the business and have deep understanding of how the business enterprise runs but little understanding of the prevailing systems and technical options that come with the hardware and software that will deliver the solution. Having a pc software architect available during requirements gathering exercises can help you define requirements that leverage existing system and solution platform strengths and avoid weaknesses. top Miami architects Leaving their input till a later phase exposes your project to the danger of re-engineering the solution to fit existing architecture or avoid solution weaknesses, following the fact. Involve the application architect in requirements gathering exercises as a consultant or SME (subject matter expert) who can mention risks in defining requirements and offer alternative solutions.
The important thing deliverable your architect is accountable for could be the architectural drawing. This is not actually a drawing but a mix of drawings and text. The drawings will represent the many the different parts of the system and their relationship to 1 another. The text will describe data elements, relations between various architectural elements, and any standards designers must adhere to. The drawing might be a new one to represent a fresh system, or it may be an update of a preexisting drawing to reflect the changes to a preexisting system created by your project. The development of the architectural drawing is the very first design activity in your project schedule. The drawing is used in the exact same fashion that engineering staff and skilled craftsmen use an architectural drawing of a building or bridge.
Analysts and programmers will use the Business Requirements Document (BRD) to inform them what features and functions to style and the architectural drawing to inform them how their software must fit as well as other software in the system, any constraints the system places on the design, standards the new software must meet, and what critical data elements look like. The data in this drawing will depend on the solution chosen, the hardware chosen, the prevailing system and the complexity of the project. For instance, projects having an Object Oriented solution may have 4 layers: a consumer interface layer (the layer the consumer sees), an application layer (where the job is done), a domain layer (where business logic is applied), and an infrastructure layer (for logging messaging, etc.). Other solutions may call for more or fewer layers.
Software development projects which depend on a relational database to store and retrieve large volumes of data may have a database architect who’s accountable for the style of the database. The database architect should be a member of your project team and their design should be coordinated with the system architecture so the data elements in the architectural drawing are defined the exact same way since they are in the database’s data dictionary. Database design is crucial to system performance. Poor database design, or database design which doesn’t support the applications deploying it, will deliver a system with poor performance so database design and architectural design must certanly be inputs to one another to yield a well integrated system with the performance characteristics required.
The architectural drawing must certanly be approved by the project sponsor, project steering committee and the organization’s enterprise architect/chief architect/head architect where that person isn’t the architect on your own team. Oftentimes people other than another architect won’t have the capability to determine perhaps the drawing contains all the data required by the project, or whether the system design is sound. They will have a way to determine that every group of information has been addressed and that the drawing meets any requirements defined because of it in the Project Charter, Statement of Work (SOW), or scope statement. After the drawing has been approved it should be communicated to the analysts that are accountable for producing design specifications.