Skip to content
advanced Phase 112 · Leadership

Technical Communication in Magento 2

Writing RFCs, technical proposals, and decision documents for effective team communication

45m
2 problems
Topic Progress 0%

Writing RFCs

RFC Structure

# RFC: [Title]

**Author:** [Name]
**Status:** Draft | In Review | Accepted | Rejected
**Created:** YYYY-MM-DD
**Updated:** YYYY-MM-DD

## Summary
One paragraph explanation of the proposal.

## Motivation
Why are we doing this? What problem does it solve?
- Problem statement
- Current pain points
- Business impact

## Detailed Design
### Architecture Changes
```php
// Code examples
interface NewServiceInterface
{
    public function process(array $data): Result;
}

Database Changes

-- New tables or schema modifications
CREATE TABLE vendor_feature (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    status ENUM('active', 'inactive') DEFAULT 'active'
);

Configuration Changes

<!-- New XML configuration needed -->
<config>
    <type name="Vendor\Feature\Service">
        <arguments>
            <argument name="config" xsi:type="object">ConfigInterface</argument>
        </arguments>
    </type>
</config>

Alternatives Considered

Option A: [Name]

  • Pros: ...
  • Cons: ...

Option B: [Name]

  • Pros: ...
  • Cons: ...

Migration Strategy

How do we get from current state to new state?

Rollback Plan

What if something goes wrong?

Testing Strategy

How do we verify this works?

Timeline

Phase Duration Owner
Design 1 week Author
Implementation 2 weeks Team
Testing 1 week QA
Deployment 1 day DevOps

Open Questions

  • Question 1
  • Question 2

## RFC Process
  1. Author writes draft RFC
  2. Share with team for feedback
  3. Address comments
  4. Technical review meeting
  5. Decision: Accept/Reject/Revise
  6. Implementation begins
  7. RFC archived as decision record

Technical Proposals

Proposal Template

# Technical Proposal: [Feature Name]

## Executive Summary
2-3 sentences for leadership. What, why, impact.

## Background
Context and history. Why now?

## Problem Statement
Clear problem definition:
- Current situation
- Desired situation
- Gap between them

## Proposed Solution
### High-Level Approach
Architecture diagram or description.

### Implementation Details
#### Phase 1: [Name]
**Goal:** What we achieve
**Effort:** Estimated hours
**Risk:** Low/Medium/High

#### Phase 2: [Name]
...

### Technical Specifications
```php
// API contracts
public interface FeatureInterface
{
    public function execute(Request $request): Response;
}

Cost-Benefit Analysis

Costs:
- Development: 80 hours
- Infrastructure: $500/month
- Maintenance: 10 hours/month

Benefits:
- Reduced checkout time: 40%
- Increased conversion: 2%
- Reduced support tickets: 30%

ROI: 3 months

Risk Assessment

Risk Probability Impact Mitigation
Performance regression Medium High Load testing
Data migration issues Low High Incremental migration

Success Metrics

  • Metric 1: Target value
  • Metric 2: Target value

Dependencies

  • Team training required
  • Vendor coordination needed
  • Infrastructure changes

Recommendation

Clear ask: Approve/Reject/Defer


## Proposal Tips
  1. Lead with business impact
  2. Use data to support claims
  3. Acknowledge trade-offs
  4. Provide clear recommendation
  5. Include rollback plan
  6. Keep executive summary short

Decision Documents

Decision Record Template

# Decision: [Title]

**Date:** YYYY-MM-DD
**Status:** Proposed | Accepted | Deprecated | Superseded by [link]
**Deciders:** [Names]

## Context
What is the situation that requires a decision?

## Decision
What did we decide?

## Rationale
Why did we decide this? What factors influenced us?

## Consequences
### Positive
- Benefit 1
- Benefit 2

### Negative
- Drawback 1
- Drawback 2

### Risks
- Risk 1

## Alternatives Considered
| Alternative | Pros | Cons | Decision |
|-------------|------|------|----------|
| Option A | ... | ... | Rejected: reason |
| Option B | ... | ... | Rejected: reason |
| Option C | ... | ... | Accepted |

## Links
- [Related RFC](link)
- [Implementation PR](link)

## Notes
Additional context or follow-up items.

ADR (Architecture Decision Record)

# ADR-001: Use Repository Pattern for Data Access

## Status
Accepted

## Context
Our application needs consistent data access patterns.
Current code mixes direct SQL with ORM.

## Decision
We will use the Repository Pattern for all data access.

## Consequences
+ Consistent data access
+ Easy to test
+ Can swap implementations
- More classes to maintain
- Learning curve for team

Decision Log Structure

docs/
  decisions/
    001-use-repository-pattern.md
    002-choose-caching-strategy.md
    003-migration-approach.md

When to Write Decisions

Write decision records when:
- Choosing between technologies
- Establishing architectural patterns
- Making design trade-offs
- Documenting why NOT to do something
- Recording lessons learned

Stakeholder Communication

Audience Adaptation

For Technical Audience

Focus on:
- Architecture and design
- Code examples
- Technical trade-offs
- Implementation details

Format:
- Detailed specifications
- Code snippets
- Diagrams
- Technical metrics

For Business Audience

Focus on:
- Business impact
- Cost-benefit
- Timeline
- Risk mitigation

Format:
- Executive summary
- Charts and graphs
- Simple language
- Clear recommendations

Status Report Template

# Weekly Status Report

## Executive Summary
[1-2 sentences: on track/at risk/blocker]

## Accomplishments
- [x] Completed item 1
- [x] Completed item 2

## In Progress
- [ ] Item 1 (70% complete)
- [ ] Item 2 (30% complete)

## Blockers
- None or description and mitigation

## Metrics
| Metric | Target | Actual | Status |
|--------|--------|--------|--------|
| Code coverage | 70% | 72% | Green |
| Test pass rate | 98% | 97% | Yellow |

## Next Week
- Planned items

Communication Cadence

Daily:
- Stand-up updates
- Slack status

Weekly:
- Status report
- Team sync

Bi-weekly:
- Sprint review
- Stakeholder demo

Monthly:
- Metrics review
- Technical deep-dive

Handling Difficult Conversations

When delivering bad news:
1. State the facts clearly
2. Explain impact
3. Present mitigation plan
4. Ask for input/support

Example:
"We discovered that the migration will take 2 weeks longer than planned. 
 This delays launch by 2 weeks. We can mitigate by parallelizing testing. 
 I need approval for additional QA resources."

Practice Problems

0 / 2 solved
Write an RFC

Write an RFC for implementing a new caching strategy in a Magento application.

Status Report

Write a weekly status report for a Magento upgrade project that is 3 days behind schedule.

Quiz

1. What should an RFC include?

Question 1 options

2. When should you write a decision record?

Question 2 options

3. How should you adapt communication for business stakeholders?

Question 3 options

4. What is the purpose of the executive summary?

Question 4 options

Flashcards

Question

What is an RFC?

Answer

Request for Comments - formal proposal for technical changes with alternatives and decision

Question

What is an ADR?

Answer

Architecture Decision Record - documents architectural decisions and rationale

Question

What to include in executive summary?

Answer

2-3 sentences: what, why, business impact, and recommendation

Question

How to adapt for business audience?

Answer

Focus on impact, cost, timeline - avoid technical jargon

Question

When to write decision records?

Answer

For any significant architectural choice or design trade-off

Revision Notes

Key Takeaways

  • 1. RFCs provide structured proposals: problem, solution, alternatives, decision
  • 2. Decision records capture context, rationale, and consequences
  • 3. Adapt communication to audience: technical vs business focus
  • 4. Executive summary: 2-3 sentences for quick understanding
  • 5. Status reports: be honest, explain impact, present mitigation
  • 6. Write decisions when choosing technologies or establishing patterns

Interview Tips

  • How do you write an effective RFC?
  • Describe your approach to technical documentation
  • How do you communicate technical decisions to non-technical stakeholders?
  • Give an example of a difficult technical decision you documented
  • How do you keep documentation up to date?

Cheat Sheet

Technical Communication Cheat Sheet

RFC Structure:

  1. Summary (1 paragraph)
  2. Motivation (why)
  3. Detailed Design (how)
  4. Alternatives
  5. Migration/Rollback
  6. Timeline
  7. Open Questions

Decision Record:

  • Context (situation)
  • Decision (what)
  • Rationale (why)
  • Consequences (impact)

Adaptation:

  • Technical: code, architecture, details
  • Business: impact, cost, timeline

Cadence:

  • Daily: standup
  • Weekly: status report
  • Bi-weekly: sprint review