Hands-On Software Engineering with Python
上QQ阅读APP看书,第一时间看更新

Goals for the system

Hand Made Stuff (HMS) is now looking for a way to streamline the business process that they use to allow artisans to make their wares available through the main website. At present, when an Artisan has created something that they're willing to sell, they send an email to someone at the HMS central office, with one or more attached photos if it's something new, sometimes with new photos if it's a new version or set of a previously-offered products. Someone in the HMS central office copies the relevant information into their web system and does a bit of basic setup to make the items available. From there, once a consumer decides that they want to order something an Artisan has made, the order goes through another manual process that involves the HMS central office emailing the Artisan with the order information.

All of these manual processes are time-consuming, and sometimes error-prone. On occasion, they have taken so long that more than one customer has tried to purchase the same item because the information was still being processed to get the first order in motion:

Hand Made Stuff's website runs on an off-the-shelf system that is not easily modifiable. It does have an API, but that API was designed to be used for internal access processes, so there are security concerns about opening access to it up enough to allow artisans to connect to it through new web-application development.

The business that this imaginary company does is, perhaps, not terribly realistic. It certainly doesn't feel like it'd actually be able to compete with existing businesses such as Etsy or (maybe) craigslist or eBay. Even so, the implementation concepts for the system are reasonably realistic, in that they are variations of tasks that need to be implemented across several real-world problem domains. They're just combined in an  unusual fashion.

Since the following chapters are intended to represent individual development iterations, in a process that's at least somewhat along the lines of a Kanban methodology, there are some artifacts from the pre-development processes that are worth noting before getting into what those iterations/chapters will look like.