Software Engineering Body of Knowledge (SWEBOK) by IEEE Computer Society (2004) Customer Requirements Requirements Specification Functional Specification Design Specification Validation Review Verification Study the requirements Clarify the requirements Write the software Test the software Validate against requirements Review with customer Define new requirements Software Development Life Cycle
Verification Study the requirements Clarify the requirements Write the software Test the software Validate against requirements Review with customer Define new requirements Software Development Life Cycle PLEASURABLE USABLE RELIABLE FUNCTIONAL
during an integration • API usage after an integration • Detect based on IP address, user auth, requests increase • What endpoints are being used? How are they used? • Anti-pattern detection based on request volume or type
With a user you trust in their natural environment • Silently observe as they work: • Interactions with team: how do they talk about you? • How do you fit into their application? • How does the user approach the integration with you? • What problems do they encounter? • How do they test the integration?
New APIs: Throw-away prototypes • Create a mock API: just enough functionality to be used • Document it: reference docs, just enough conceptual info • Create a well defined project ready for an integration • Hire an outsider who doesn’t have insider assumptions • Have user record screen, face, voice with Silverback • Have user commit to Git at regular interval
New APIs: Throw-away prototypes • Analyze the data for moments of emotional response • How long did it take to accomplish tasks? • What worked? What didn’t work? • How can the good things be more aﬀirming? • How can the bad things be prevented? • How can the situation be corrected better?