In the early days of software development little thought was handed to how the software applications and systems we built were architected. There have been several reasons because of 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 necessity for planned architecture and architects because building software isn’t radically different from building every other structure, for instance buildings and bridges. We can’t go back and undo the damage done by the possible lack of foresight that resulted in badly architected applications and systems but as project managers we are able to 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 individual in charge of the architecture of all of the software applications and systems they develop. Even organizations whose core competencies don’t include software development, but who have invested heavily in IT, have created this role. Miami architects These people may be referred to as the Chief Architect, Head Architect, or Strategic Architect. Wikipedia identifies 3 different types of architect with respect to the scope of the responsibilities: the enterprise architect who’s in charge of all an organization’s applications and systems, the solution architect who’s in charge of the architecture of a system comprised of a number of applications and hardware platforms, and the application form architect whose responsibility is restricted to one application. The category and quantity of architects will often be constrained by how big is the organization and the amount of applications and systems it supports. Regardless of what the organization you benefit calls them, the software 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 set up, is to ensure that their work is properly defined and organized which means your project receives maximum benefit from their expertise. If the organization does not need an architect set up you will need to identify someone in your team to fill that role. What is not acceptable is always to plan the project without any acknowledgment of the necessity or significance of the architect. This role requires the maximum amount of knowledge of the device components as you can, including software and hardware knowledge. Additionally, it requires deep technical knowledge of the technology used, both hardware and software and strong analytical skills. The person (other than a software architect) who most likely possesses a skill set similar to this one, is a small business or systems analyst. Based upon the size and complexity of the existing system, and your project, existing skill sets might not be sufficient to generally meet your project’s needs. You will find ample training opportunities available so select one that most closely suits your needs and have your candidate attend. If your project has adequate budget to fund the training, fine. Or even, bear in mind that the skill set acquired by the trainee will undoubtedly be available to the organization after your project is completed and your project should not need to bear the total cost of the training.
Given that you’ve a qualified software architect engaged for the project, you need to plan that person’s tasks to take maximum advantage of the skills. I suggest engaging the architect as early on in the project as you can so that they can influence this is of the application form or system being developed. The team that defines the company requirements to your project will undoubtedly be from the company side of the organization and have deep knowledge of how the company runs but little knowledge of the existing systems and technical top features of the hardware and software which will deliver the solution. Having a 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 chance of re-engineering the solution to suit 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 are able to point out risks in defining requirements and offer alternative solutions.
The important thing deliverable your architect is in charge of may be the architectural drawing. This isn’t actually a drawing but a variety of drawings and text. The drawings will represent the different aspects of the device and their relationship to one 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 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 first design activity in your project schedule. The drawing is utilized 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 share with them what features and functions to create and the architectural drawing to share with 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 information in this drawing is determined by the solution chosen, the hardware chosen, the existing system and the complexity of the project. For example, projects having an Object Oriented solution will have 4 layers: an individual interface layer (the layer an individual 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 depend on a relational database to store and retrieve large volumes of data will have a database architect who’s in charge of the look of the database. The database architect should be 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 exact same way because they are in the database’s data dictionary. Database design is critical to system performance. Poor database design, or database design which does not support the applications deploying it, will deliver a system with poor performance so database design and architectural design should be inputs together 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 that individual is not the architect in your team. Oftentimes people other than another architect will not have the capacity to determine perhaps the drawing contains all the information required by the project, or whether the device design is sound. They will have the ability to find out that each category 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 ought to be communicated to the analysts that are in charge of producing design specifications.