Description

Application development defines and describes the varying approaches to building applications and includes COTS package selection and implementation and infrastructure upgrades. The functions of opportunity definition, preliminary analysis, software development, testing, deployment, and overall managing of the development environment and process will be covered.

Architects are expected to be familiar or experienced with different ways to approach managing and structuring projects including waterfall, iterative and incremental, different levels of formality (from methods with a high degree of ceremony to agile approaches), i.e. the Software Development Life Cycle (SDLC). They must also think about how this fits in the management of the application as part of Application Life Cycle Management (ALM).

Overview

The ability to understand how applications are developed is a key skill for architects, they play a pivotal role working with the project manager to define the approach for a project. This involves identifying what needs to be produced, in addition to tested code, to successfully develop the application, understanding the technical and architectural risks and proposing the appropriate mitigations, such as including a proof of concept. The architect will often lead the development of estimates using the appropriate techniques.

In large organizations there will usually be a development manager who takes ultimate ownership for Application Development, here the architect will provide an expert view in defining the approach and how it works on a project. In smaller organizations the architect may take more responsibility for application development.

The architect will be called on to provide input at project planning and shaping meetings and review plans produced by project managers. Architects will document the development environment as a view in the project architect document and coach and mentor the development team.

Proven Practices

Architects provide a unique cross discipline view of the activities involved in projects, across the business and the technical areas. The key challenge here is identifying the appropriate approach to application development required for each project and selling to the stakeholders, even when they hold a different view. The architect should have an understanding of Waterfall, Iterative and Agile methodologies.

The application development process should be able to change and improve, it is important that the architect can lead and drive these improvements, having and understanding of frameworks like Plan Do Check Act and more formal maturity approaches like CMMI.

As part of the early requirements identification of quality attributes any which affect the application development method to be used any will be captured and analyzed, for example compliance to Sarbanes Oxley Act (SOX) for some systems in some geographies.

Sub-Capabilities

Software Development Life Cycle

Understand the various activities which are undertaken as part of software development project. Namely: understanding the business need within the domain, the domain, understand the different types of SDLC commonly used in software development projects and where each are most appropriate. The basic principles of SDLC have been defined in the SPEM (Software Process Engineering Model) 2.0 framework.

Iasa Certification Level Learning Objective
CITA- Foundation
  • Learner will be able to name the various types of SDLC and understand what they are
  • Learner will be able to name the elements that are involved in SDLC, namely Roles, Artifacts and Activities
CITA – Associate
  • Learner will be able to describe the differences between various SDLC
  • Learner will be able to describe the key elements of each of the SDLCs and the dependencies
CITA – Specialist
  • Learner will be able to describe when it is most appropriate to use which SDLC, and highlight the advantages and disadvantages of each
  • Learner will be able to describe how use at least one of the SDLCs in detail for a project and be able to set up the functions
CITA – Professional
  • Learner will be able to use parts of different SDLCs together in a project when this is the most effective thing to do
  • Learner will know the risk of missing out activities defined in the SDLC and be able to justify this where appropriate

Application Life Cycle Management

Understand the full life span of an application, including governance, development, and maintenance. It encompasses the SDLC used whilst developing an application and in addition covers software maintenance, change management, operational management, and release management. The architect should also understand the integration with Enterprise Architecture.

Iasa Certification Level Learning Objective
CITA- Foundation
  • Learner will be able to name the various activities which are covered by the ALM
CITA – Associate
  • Learner will be able to describe the activities and how they relate to each other
  • Learner will be able to describe the requirements of the ALM activities on the development of simple/small to medium projects
  • Learner will be able to define in detail two of the activities
  • Learner will be able to understand if a solution is aligned with the existing Enterprise Architecture
CITA – Specialist
  • Learner will be able to describe the requirements of the ALM activities on the development of large and complex project environments
  • Learner will be able to define in detail all of the activities
  • Learner will be describe the impact of the project on the existing Enterprise Architecture
CITA – Professional
  • Learner will be able to suggest significant improvements in the activities
  • Learner will be recommend solutions which will move the organization towards the target Enterprise Architecture

Development Technique and Tools

Architects will need to advise on the appropriate tools for each of the activities involved development and management of applications, for the areas which are the responsibility of the architect they are expected to be involved in their selection and usage. The architect will guide the project on issues such as adoption of modeling techniques, for example the use of UML. The architect will assist and mentor the development team with coding activities and will provide governance over the code review processes.

Iasa Certification Level Learning Objective
CITA- Foundation
  • Learner will be able to name the various types of tools and techniques used by the current organization and understand what they are used for
  • Learner will be involved in code reviews
CITA – Associate
  • Learner will be able to use a number of the tools and techniques
  • Learner will be able to carry out code reviews
  • Learner will be to identify the set of types of tools to be used
CITA – Specialist
  • Learner will be an expert in some of the tools and techniques and be able to highlight the advantages and disadvantages of each
  • Learner will be able to carry out code reviews on complex areas
CITA – Professional
  • Learner will be able to drive the introduction of new tools and technique into the organization
  • Learner will be able to act as a mentor for the tools and techniques
  • Learner will be involved in defining the code review process and the checklists to be used

Product Selection

Understand when it is appropriate use a COTS product to meet the business need, work with the project manager to define the process required for selection. Understand what changes are needed to the SDLC and ALM when the majority of the solution is provided by an external product.

Iasa Certification Level Learning Objective
CITA- Foundation
  • Learner will be able to name the activities involved in selecting a COTS product
  • Learner will be described the obvious cases where a COTS product should be selected and why
CITA – Associate
  • Learner will be describe how to carry out a COTS selection process using a weighted scoring process
  • Learner will be able to define the appropriate areas for COTS product consideration
CITA – Specialist
  • Learner will be able to define a weighted scoring process for a project including aspects of ALM
  • Learner will be able to be involved in negotiations with suppliers on the solution and how it will integrate with other systems
CITA – Professional
  • Learner will be able to define the changes to the existing SDLC and ALM when a COTS product is being used
  • Learner will be able to understand the sophisticated factors which influences product selection in an organization, including politics, alignment with strategy and risk profile

Measuring Application Development

The architect will facilitate improvements by changing approaches and working practices, this can be by identifying the key metrics on a project and ensuring they are correctly capture, this may involve issue tools such a JIRA and code analysis tools such as Sonar. In some organizations recognized models such as the Capability Maturity Model Integration (CMMI), the Software Process Improvement and Capability dEtermination model (SPICE), or COBIT may be used.

Iasa Certification Level Learning Objective
CITA- Foundation
  • Learner will be able to name the various types of measures and metric used in their organization
  • Learner will be able to name the commonly used models
CITA – Associate
  • Learner will be able identify some metrics to use on projects and how to measure them
  • Learner will be to define some problems with metrics
CITA – Specialist
  • Learner will be able to identify a coherent set of metrics to use in projects
  • Learners will be able to predict negative effects of measurement and devised ways to apply these which result in desired outcome
  • Learner will be able to define the models and describe how they are used
CITA – Professional
  • Learner will be able to define new metrics and improve the process as a consequence of measurement
  • Learner will be able to work with the stakeholders to understand how to define apply SLAs

Related Capabilities

Technical Project Management (especially Estimating)

Resources

Blogs/Webcasts/News/Reference Sources

Background and description of Waterfall – http://www.dcs.bbk.ac.uk/~sven/cdm06/cdm3.pdf

Agile approach – http://www.agilemodeling.com/

All things CMMI – https://www.sei.cmu.edu/cmmi/

Articles

Software Engineering a Practitioner’s Approach by Roger S Pressman, Darrel Ince. This provides an excellent background, does not cover agile methods.

Certifications 

For the agile approach using Scrum – http://www.scrumalliance.org/

Author

Chris Cooper-Bland
Group Head of Architecture – Endava