Ir al contenido

Un producto de software

El ejemplo desarrollado que distribuye Eidos: un subconjunto de YouTube: ver un vídeo, reanudarlo, subir a un canal, suscribirse a uno. Producto suficiente para ser real, lo bastante pequeño para leerlo de una sentada.

  • DirectorioBlueprints/
    • README.md
    • Directorio_eidos/
      • Directorioshapes/
        • frame.architecture.md
        • frame.audience.md
        • frame.criteria.md
        • frame.market.md
        • spec.full.md
        • spec.micro.md
      • Directorioroles/ framework-owner, developer, designer, project-manager, stakeholder
      • Framework.md
      • me.md personal, en gitignore
    • Directorioframes/
      • index.md
      • architecture.md
      • audience.md
      • criteria.md
      • market.md
    • Directoriospecs/
      • index.md
      • Directorioplayback/
        • watch-a-video.md
        • resume-playback.md
      • Directoriochannels/
        • upload-a-video.md
        • subscribe-to-a-channel.md
    • roadmap.md un documento de nivel superior
    • blueprint-map.canvas generado
_eidos/Framework.md
### specs
The product's units, one per blueprint, grouped by domain.
- **Leaf:** [specs/index.md](../specs/index.md)
- **Flavors:**
- [full](shapes/spec.full.md) — the complete spec shape (default).
- [micro](shapes/spec.micro.md) — Intent, Open Questions, ACs, Out of Scope.
- **Canvas:** card from `## Intent`
- **Domains:**
- **playback** — watching a video, and picking up where you left off.
- **channels** — publishing to a channel, and following one.

Dos dominios, así que specs/ tiene dos subcarpetas y cada spec lleva domain: playback o domain: channels coincidiendo exactamente con su carpeta.

spec.micro spec.full
## Intent ## Intent
### Assumptions ### Assumptions
### Implementation Notes
## Open Questions ## Open Questions
## Behaviors & Acceptance Criteria ## Behaviors & Acceptance Criteria
### Functional · ### Performance · ### Design · ### External interface · ### Quality attributes
## Out of Scope ## Out of Scope
## Dependencies · ## Testing · ## Constraints & Decisions
Nombre Tipo Applies To Significado
status Text all Draft / Intake / In Progress / Done / Archived / Deprecated
date_created · date_modified Date all YYYY-MM-DD
tags List all Etiquetas libres
domain Text specs La agrupación, coincidiendo con la subcarpeta
depends_on List specs Blueprints que este necesita, cada uno un enlace
type Text specs Etiqueta blanda: feature, capability, integration
specs/playback/watch-a-video.md
---
id: watch-a-video
title: Watch a Video
summary: play a video reliably, signed in or not, adapting to the connection.
type: feature
domain: playback
status: Intake
depends_on: [video-catalog, cdn-delivery]
tags: [playback]
---
# Watch a Video
## Intent
A view is the core action of the whole product. If a video is slow to start
or stalls, the viewer leaves — so what "playing a video" means, and what a
viewer can count on, is the first thing to pin down. It must hold whether the
viewer is signed in or arrived from a shared link.
### Assumptions
Assuming adaptive-bitrate delivery over the CDN is available and affordable
at launch scale — if it isn't, the whole playback approach changes.
## Open Questions
- How long should a signed playback URL stay valid before it has to refresh?
- Does a view count on play start, or only after a watch-time threshold?
## Behaviors & Acceptance Criteria
### Functional
- **AC1:** A viewer opens a video and the player loads with its title,
channel, and controls.
- **AC3:** A signed-out viewer who opens a shared link can still watch.
### Quality attributes
- **AC7:** A stalled segment recovers by dropping quality rather than
stopping playback.
- **AC8:** A view is counted at most once per viewer per video within a
window — replays and seeks don't inflate it.
## Out of Scope
- No comments, ratings, or next-up recommendations on the watch page.

La spec hermana, resume-playback.md, lleva una línea:

## Out of Scope
- Cross-account resume. A shared TV is one device, not one person.

Doce palabras que evitan que una petición de funcionalidad plausible se registre como error, registran el razonamiento para que un lector futuro pueda ver si sigue valiendo, y terminan una discusión antes de que ocurra. Por qué los no-objetivos son los que más pesan →

La raíz completa está en el repositorio: examples/Blueprint/.