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 concept 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 needs to have foreseen the necessity for planned architecture and architects because building software isn’t radically different from building every other structure, like buildings and bridges. We can’t return and undo the damage done by having less foresight that generated badly architected applications and systems but as project managers we could avoid making this mistake in 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 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 might be called the Chief Architect, Head Architect, or Strategic Architect. Wikipedia identifies 3 different types of architect with regards to the scope of their responsibilities: the enterprise architect who is accountable for all an organization’s applications and systems, the perfect solution is architect who is accountable for the architecture of something made up of one or more applications and hardware platforms, and the application form architect whose responsibility is limited by one application. The category and amount of architects will most likely be constrained by the size of the business and the number of applications and systems it supports. Whatever the business you benefit calls them, the software architect features 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 place, is to ensure 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 need to identify someone in your team to fill that role. What is not acceptable is always to plan the project without the acknowledgment of the necessity or significance of the architect. This role requires just as much understanding of the device components as you possibly can, 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 probably possesses a skill set such as this one, is a business or systems analyst. Dependant on the size and complexity of the existing system, and your project, existing skill sets may possibly not be sufficient to generally meet your project’s needs. There are ample training opportunities available so select one that most closely suits your preferences and have your candidate attend. If your project has adequate budget to cover working out, fine. Or even, keep in mind that the skill set acquired by the trainee will be available to the business after your project is completed and your project should not have to bear the full cost of the training.
Given that you have a qualified software architect engaged for your project, you’ll need to plan that person’s tasks to take maximum advantage of their skills. I suggest engaging the architect as early on in the project as you possibly can so they can 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 existing 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 will allow you to 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 danger of re-engineering the perfect solution is to fit existing architecture or avoid solution weaknesses, after the fact. Involve the software architect in requirements gathering exercises as a consultant or SME (subject matter expert) who can explain 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 variety of drawings and text. The drawings will represent the different components of the device and their relationship to at least one 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 anyone 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 initial design activity in your project schedule. The drawing is utilized in exactly 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 Miami architects 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 device, any constraints the device places on the design, standards the new software must meet, and what critical data elements look like. The info in this drawing will depend on the perfect solution is chosen, the hardware chosen, the existing system and the complexity of the project. Like, projects having an Object Oriented solution may have 4 layers: an individual interface layer (the layer the consumer sees), an application 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 may have a database architect who is accountable for the design of the database. The database architect should be a member of one’s project team and their design should really be coordinated with the device architecture so the data elements in the architectural drawing are defined exactly the same way as 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 using it, will deliver something with poor performance so database design and architectural design must be inputs to one another to yield a well integrated system with the performance characteristics required.
The architectural drawing must 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 besides another architect won’t have the capacity to determine if the drawing contains all the data required by the project, or whether the device design is sound. They will have the ability to ascertain that every 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. Once the drawing has been approved it must be communicated to the analysts that are accountable for producing design specifications.