The following is a list (which is not intended to be comprehensive, by any means) of the roles and responsibilities of a Software Architect.
- Roles of a Software Architect
- Customer Facing - Evangelist, Negotiator
- Team Facing - [Designer, Programmer], Process Guide
- Management Facing - Evangelist, Negotiator
- Responsibilities of a Software Architect
- Estimation
- Analyze skill requirements
- Ensure requirements make sense (esp. NFRs)
- Prepare domain model
- Design solution architecture (candidate + selected)
- Balance trade offs
- Capture rationale
- Select technology
- Provide technical guidance (research, samples, references, training to team)
- Define development environment
- Automated Builds
- Continuous Integration
- Unit Testing
- Software Configuration Management (SCM)
- Metrics
- Pioneer new technologies; training team where gaps exist
- Troubleshooting/Performance optimization (especially in maintenance)
- Maintain engineering discipline/rigor
- Monitor and control via reviews
- Risk/Issue assessment
- Input to defect triage process
- Assess team member performance, provide feedback
- Recruitment (conducting interviews, identifying organizational skill gaps)
- Pre-sales (especially in a consultancy environment)
If this describes what you do, you just might be a Software Architect...
No comments:
Post a Comment