In the first days of software development little thought was given to how the software applications and systems we built were architected. There were several reasons because of this: firstly, software development being new, the idea hadn’t been thought of, and secondly we didn’t realize how important architecture was to the expense of maintaining our applications and systems. Upon sober reflection, we probably should have foreseen the requirement for planned architecture and architects because building software isn’t radically distinctive from building every other structure, as an example buildings and bridges. We can’t return and undo the damage done by the possible lack of foresight that resulted in badly architected applications and systems but as project managers we could avoid causeing the mistake within our next software development project.
Today most organizations whose core competencies include software development recognize the significance of architecture to their business and have satisfied this need by creating the role of architect and making this person responsible 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 folks might be called the Chief Architect, Head Architect, or Strategic Architect. Wikipedia identifies 3 different kinds of architect with respect to the scope of these responsibilities: the enterprise architect who is responsible for all an organization’s applications and systems, the solution architect who is responsible for the architecture of a system composed of one or more applications and hardware platforms, and the application form architect whose responsibility is limited by one application. The category and quantity of architects will usually be constrained by the size of the business and how many applications and systems it supports. Regardless of what the business you benefit calls them, the software architect has a key role to play in your software project.
Your job as project manager of a pc software development project, where a pc software architect is in position, is to make sure that their work is properly defined and organized which means your project receives maximum take advantage of their expertise. If the business does not have an architect in position you will have to identify someone in your team to fill that role. What’s not acceptable is always to plan the project without the acknowledgment of the requirement or significance of the architect. This role requires just as much understanding of the device components as you are able to, including software and hardware knowledge. In addition, it requires deep technical understanding of the technology used, both hardware and software and strong analytical skills. Anyone (other than a pc software architect) who most probably possesses a skill set similar to this one, is a business or systems analyst. Based upon the size and complexity of the present system, and your project, existing skill sets might not be sufficient to meet up your project’s needs. There are ample training opportunities available so choose one that a lot of closely suits your needs and have your candidate attend. If your project has adequate budget to cover working out, fine. If not, keep in mind that the skill set acquired by the trainee will soon be offered to the business after your project is completed and your project should not have to bear the total cost of the training.
Since you have a qualified software architect engaged for your project, you will need to plan that person’s tasks to take maximum advantage of these skills. I would suggest engaging the architect as in early stages in the project as you are able to so that they can influence the meaning of the application form or system being developed. The team that defines the business requirements to your project will soon be from the business side of the business and have deep understanding of how the business runs but little understanding of the present systems and technical top features of the hardware and software that may 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. Leaving their input till a later phase exposes your project to the risk of re-engineering the solution to fit existing architecture or avoid solution weaknesses, following the fact. Involve the software architect in requirements gathering exercises as a consultant or SME (subject matter expert) who will explain risks in defining requirements and offer alternative solutions.
The main element deliverable your architect is responsible for is the architectural drawing. This is simply not actually a drawing but a mixture of drawings and text. The drawings will represent the different the different parts of the device and their relationship to 1 another. The writing 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 new 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 initial design activity in your project schedule. The drawing is found in the same fashion that engineering staff and skilled craftsmen use an architectural drawing of a building or bridge.
Analysts and programmers will utilize the Business Requirements Document (BRD) to inform them what features and functions to design and the architectural drawing to inform them how their software must fit along with other software in the device, any constraints the device places on the design, standards the brand new software must meet, and what critical data elements look like. The info in this drawing depends on the solution chosen, the hardware chosen, the present system and the complexity of the project. As an example, projects having an Object Oriented solution will have 4 layers: a consumer interface layer (the layer the user sees), a software layer (where the work is done), a domain layer (where business logic is applied), and an infrastructure layer (for logging messaging, etc.). Other solutions may demand more or fewer layers.
Software development projects which rely on a relational database to store and retrieve large volumes of data will have a database architect who is responsible for the style of the database. The database architect should be described as a member of your project team and their design must be coordinated with the device architecture so your data elements in the architectural drawing are defined the same way as they are in the database’s data dictionary. Database design is critical to system performance. Poor database design, or database design which doesn’t support the applications utilizing 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 is not the architect in your team. Oftentimes people other than another architect will not have the ability to determine perhaps the drawing contains all the information required by the project, or whether the device design is sound. They will have a way to ascertain that every sounding information has been addressed and that the drawing meets any requirements defined for this in the Project Charter, Statement of Work (SOW), or scope statement. When the drawing has been approved it should be communicated to the analysts who are responsible for producing design specifications.
The software architects role doesn’t end with the production of the architectural drawing, indeed in some software development lifecycle (SDLC) methodologies this drawing will soon be produced iteratively. It may be stated in stages including the infrastructure layer first, the domain layer next, etc. or it may be produced iteratively, one new version for every single iteration. Even projects using Waterfall SDLC methodology won’t necessarily produce a final drawing throughout the project planning phase since they don’t need to. The designers have to have a drawing that gives them with the information they need once they need it and you may need to begin design work with the drawing you have to be able to keep to schedule.
The architect must also make sure that the style captured in Functional specifications and detail design documents conforms to the constraints placed upon top Milan architects it by the architectural drawing. To do this they must review the designs to ascertain compliance. The architect should be described as a member of any peer review teams reviewing design. This might not be possible, especially if you have to share an architect with another project or operations so at minimum the architect should review each design and ensure compliance with their architectural design, or identify gaps where it will not.
The hardware and os’s which are the different parts of the device architecture are regions of oversight for the architect. Projects which demand procurement of these things, or outsourcing of the development of any applications, should engage the architect to donate to product and vendor selection criteria. Some architectural drawings may specify hardware and software with respect to the solution being implemented, where case the information must be contained in the architectural drawing. Where requirements for these things are less well defined, the architect should make sure that selection criteria properly reflect their architectural requirements and that the statement of benefit any outsourced software is correctly written. In projects where software development work is outsourced, the architect’s role would be the same like the work were being done in-house. Large projects which require owner to staff their team with a pc software architect should have their architectural design overseen by the architect for your project.
Finally, the architect must also be called upon to analyze any changes to software design or functionality that may result in a change in the architecture. Your architect would be the right person to analyze any request to ascertain in which a change in the style of 1 system component would effect on other the different parts of the architecture. When the architect has determined if your change in other components would be required, and what the nature of that change would be, it’s around your design and build gurus to assess the expense of that change.