The development process standardizes how your projects work to make changes to your enterprise architecture.
An efficient and lean development process focuses on the creation of specific work products that serve as input for the development of other necessary work products, ultimately leading to the implementation of new and improved processes supported by new and improved IT systems. A development process also defines and provides guidance on the disciplines involved in creating the necessary work products.
Disciplines
I recommend that your process defines disciplines rather than roles – or even worse, job titles. Job titles seldom reflect the person’s expertise – it’s more an indicator of position or status. Focusing on roles like business analyst or architect tends to box people in. Many people have expertise in several disciplines, and some are capable in them all.
Project management
The project management discipline organizes the project team and manages the project’s stakeholders. It plans all activities, ideally focusing on the development of the required work products. It manages risks and solves problems to keep the project on track, on time, and on budget. At the end of the project, a project report is written to capture key learning points.
Business analysis
The business analysis discipline develops new and improved processes and specifies the requirements for the IT systems needed to support them.
Architecture
The architecture discipline designs the IT systems and documents the architecture.
Development
The development discipline builds and deploys the developed IT systems.
Technical writing
The technical writing discipline writes localized on-screen text, online help, and user manuals.
Test
The test discipline writes test cases, performs testing, and writes test reports after each test cycle.
Work products
Only spend time on developing and writing work products that are defined by your development process. Everything else is a waste of time and risks muddying the waters.
Project plan
The project plan is developed in the project management discipline and covers the following topics:
- The project’s mandate, mission statement, or charter.
- The business case that predicts how worthwhile the investment is.
- The project team and how they cover the necessary disciplines.
- The stakeholders.
- Monitoring and control.
- Oversight, reporting, etc.
- Project work environment.
- Tooling.
- Timeline with dependencies to adjacent activities.
- Development plan.
- Test plan.
- Deployment plan.
- Implementation plan.
- Risks and problems.
In small projects, this can often be covered in a single document, but most projects will greatly benefit from using task management tools for planning development and test activities.
Solution architecture document
The solution architecture document is developed in the architecture discipline and captures and explains all key design decisions through the following perspectives:
- Solution overview
- Processes
- Information
- Design constraints
- Design principles
- Design aspects
- High-level design
- Development
- Environments
- Testing
- Operations
The solution architecture document provides guidance for developers and keeps stakeholders informed of the forthcoming changes to the enterprise architecture.
Process specification
Process specifications are developed in the business analysis discipline, and describe the response to an event as a series of tasks that result in a desired outcome. Use of an IT system in a task can be described in a use case.
Use case specification
Use case specifications are developed in the business analysis discipline and describe the interaction between an actor and the IT system. The actor can be a human user or another IT system.
Test case specification
Test case specifications are developed in the test discipline, and describe the steps of testing a specific scenario, and verify that it leads to the expected outcome.
Test report
Test case reports are written in the test discipline and summarize the outcome of a test cycle that involved executing multiple test cases.
Manual
Manuals are written in the technical writing discipline and offers users guidance in using IT systems when performing their process tasks.
Build
Builds are developed in the development discipline, and often consist of deployable executable files that are installed on a server for testing or in a production capacity.
Release notes
Release notes are written in the development discipline, and summarize which functionality is included in the release, list bug fixes, known (yet unsolved) bugs, and any breaking changes.
Project report
A project report is written in the project management discipline and summarized key learning points from the project.
This is all you need to develop solutions efficiently and thoroughly.
And don’t mistake Scrum, SAFe and TOGAF for development processes. Scrum and SAFe are two task management processes, both lacking any software engineering guidance. And TOGAF, while theoretically correct and very comprehensive, is so bloated and generic that it serves no practical purpose in an actual development project.