Change is Software’s greatest threat, and its defining characteristic. Disagree? How’s that Agile Transformation going for you?
To explore this cognitively-dissonant statement, we’ll chase some waterfalls as we look at what agility might mean to Software Engineering, and the role that “change” plays in it.
In the “old days” Software was built with months of requirements gathering and several revisions of comprehensive specifications across various disciplines.
Back when I worked at a prominent ISP, our Product Management group would spend months drafting comprehensive requirements for a new feature or product, into a glorious Product Requirements Document (PRD).
After 7 years…
Me: How am I going to build this API?
Also Me: Am I sure what the UI needs?
Also Me: I won’t know that until I finish the API.
Software Engineering can be rife with chicken-and-egg problems, depending on how many moving parts one has to contend with. Let’s explore them in the context of Web Services, and see how we might more effectively orchestrate them toward superior execution.
A Web Application, or Service has two main components: