Skip to main content

Starting a software project

Updated 4 min readMarkdown

So, you have been tasked with coming up with software. Where do you begin?

We will follow these general steps across the development of the project:

  1. Requirements gathering
  2. Design
  3. Development
  4. Testing/QA
  5. Monitoring

1. Requirements gathering

Identify all users of the proposed solutions and speak with them to understand their painpoints/needs. Gather all resources available and document your meetings. Once done, use the prompts below to come up with an SRS. An SRS ensures all stakeholders are onboard and in agreement with what is being built.

2. Design

2.1 System Design

System Design tells us how the application will be structured. We will use the ECC claude skill for our design. We will structure our documentation as follows:

project/
├── docs/
│   ├── requirements/
│   │   └── SRS.md
│   │
│   ├── architecture/
│   │   ├── DATABASE_DESIGN.md
│   │   ├── INFRASTRUCTURE_DESIGN.md
│   │
│   ├── operations/
│   │   ├── DEPLOYMENT.md
│   │   ├── DISASTER_RECOVERY.md
│   │   ├── MONITORING.md
│   │
│   └── diagrams/
│       ├── system-architecture.mmd
│       ├── infrastructure.mmd
│       └── deployment.mmd
│
├── docker-compose.yml
├── Dockerfile
└── ...
Design Area Context Prompt Issues addressed
Database - SRS database design prompt Database arcitecture
Migration and seed files
Infrastructure - SRS
- DB design
- Constrainst eg hosting budget, existing infra, expected users
Infratsructure design prompt Hosting strategy, server sizing, app atchitecture and services, containerisation and orchestartion, network architetcure, reverse proxy, DNS, CDN, DB and object storage, environment separation, security and access control, cost estimation
Deployment - SRS
- DB design
- Infra design
- Constrainst such as languages and frameworks, app structure, git workflows, automations, CI/CD workflows
Deployment architecture prompt git strategy, build processes, CI/CD pipeline architecture, automated testing, docker image creation and publishing, container registry, env specific configurations, db migration execution, deployment strategies, versioning and release management, rollbacks, access control for deployment operations
Monitoring - SRS
- Infra design
- Deployment architecture
- Existing services
- Critical operations
- Backrgound jobs
- External dependencies
Monitoring and Observability architecture prompt app running? resource limits? storage usage? failing jobs? memory usage? database usage?
Disaster Recovery - SRS
- DB design
- Infra design
- Deployment design
- Monitoring plan
- Business importance of items eg uploads
Disaster Recovery and Business Continuity prompt risk and failure analysis, backuo architecture, database backups, object storage backups, backup retention, backup encryption, RPO, RTO, restoration procedures, Infra rebuild procedures, failover options, recovery testing, business continuity procedures

Read the prompts and edit to suit your needs

2.2 UI/UX design

Gather design inspirations from design sites such as dribble. Use the Figma connector with Claude to fine tune UX screens. The SRS prompt gives screens suggestions and forms a good starting point.

These claude skills will help with UI/UX design and development:

  1. Impeccable
  2. Taste skill

3. Development

Come up with coding standards, git workflows (Coding standards and Git workflow) and stack definition (Tech stack definition example).

I would encourage having these as skills in the .claude folder of your project. This is a zip folder containing sample standards folder to include in the skills folder of the .claude folder.

Helpful resources:

Performance Optimisation for the backend

Backend scafold for Express projects. This scaffold covers:

> REST API design

> API security

> Rate limiting

> Setting up a new VPS

4. Testing

Testing happens continuously throughout the project. The how and environment separation is covered in system design

5. Monitoring

Refer to section in Design chapter

No comments yet. Be the first to comment.