In the first days of software development little thought was given to how the application applications and systems we built were architected. There have been 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 expense of maintaining our applications and systems. Upon sober reflection, we probably needs to have foreseen the need for planned architecture and architects because building software isn’t radically distinctive from building every other structure, for instance buildings and bridges. We can’t return back and undo the damage done by the possible lack of foresight that generated badly architected applications and systems but as project managers we could avoid making this mistake within our next software development project.
Today most organizations whose core competencies include software development recognize the significance of architecture with 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 people may be called the Chief Architect, Head Architect, or Strategic Architect. Wikipedia identifies 3 Miami architects different types of architect with regards to the scope of their responsibilities: the enterprise architect who’s responsible for all an organization’s applications and systems, the solution architect who’s responsible for the architecture of something made up of a number of applications and hardware platforms, and the applying architect whose responsibility is restricted to one application. The category and number of architects will most likely be constrained by how big the business and the number of applications and systems it supports. Whatever the business you benefit calls them, the application architect has a key role to play in your software project.
Your job as project manager of a software development project, where a software architect is in place, is to ensure that their work is properly defined and organized so that your project receives maximum benefit from their expertise. If the business does not have an architect in place you will have to identify someone in your team to fill that role. What’s not acceptable is to plan the project without any acknowledgment of the need or significance of the architect. This role requires as much knowledge of the device components that you can, including software and hardware knowledge. In addition it requires deep technical knowledge of the technology getting used, both hardware and software and strong analytical skills. The person (other than a software architect) who most likely possesses a expertise similar to this one, is a small 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. You will find ample training opportunities available so choose one that most closely suits your requirements and have your candidate attend. If your project has adequate budget to fund the training, fine. Or even, keep in mind that the expertise acquired by the trainee is going to be open to the business after your project is completed and your project should not have to bear the full cost of the training.
Since you have a qualified software architect engaged for the project, you 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 that you can so that they can influence the meaning of the applying or system being developed. The team that defines the business requirements to your project is going to be from the business side of the business and have deep knowledge of how the business runs but little knowledge of the present systems and technical top features of the hardware and software that will deliver the solution. Having a 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 chance of re-engineering the solution to suit existing architecture or avoid solution weaknesses, after 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 responsible for may be the architectural drawing. This is simply not actually a drawing but a mixture of drawings and text. The drawings will represent the many components 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 can be a new someone to represent a brand new system, or it might be an update of an existing drawing to reflect the changes to an existing system created by your project. The development of the architectural drawing is the very first design activity in your project schedule. The drawing is utilized in the 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 along with other software in the device, any constraints the device 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 present system and the complexity of the project. Like, projects utilizing an Object Oriented solution may have 4 layers: a person interface layer (the layer the user sees), a credit card applicatoin layer (where the task 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 rely on a relational database to store and retrieve large volumes of data may have a database architect who’s responsible for the style of the database. The database architect should be described as a member of one’s project team and their design must certanly be coordinated with the device architecture so that the data elements in the architectural drawing are defined the same way because 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 something with poor performance so database design and architectural design should be inputs to one another to yield a well integrated system with the performance characteristics required.
The architectural drawing should be approved by the project sponsor, project steering committee and the organization’s enterprise architect/chief architect/head architect where see your face is not the architect in your team. Oftentimes people apart from another architect won’t have the capacity to determine whether the drawing contains all the info required by the project, or whether the device design is sound. They will have a way to find out that all sounding information has been addressed and that the drawing meets any requirements defined for it in the Project Charter, Statement of Work (SOW), or scope statement. When the drawing has been approved it must be communicated to the analysts who’re responsible for producing design specifications