Determining Scope (And The Functionality Of Sentences)
Posted by: Steve Weiss
Determining scope is one of the eternal challenges. It may come in the form of a question such as "Why can't that be done?" or "Why is that taking so long?". Explaining the complexity of tasks is a task in itself.
Recently, I've been trying to think of every request as if I've never heard any technical terms before. How complicated would they seem? Consciously not getting overly complicated and sounding condescending, while also avoiding being too simplistic (and also sounding condescending) is a tricky middle ground to occupy.
A request is easy enough to make, a sentence only takes a few seconds to say...which can easily lead to a disconnect between words and functionality. But coming from the perspective of someone who hasn't dealt with building an application before, it's completely understandable. Why is it simple to create a user login system, yet more complicated to make a graph correspond to data from an API?
A group of new DevShop fellows are working on an internal project sending out a daily poll question via text message. An admin creates the questions to be sent out, and users respond with yes or no. Those results are added up and displayed as a bar graph. Now, this sounds like it would take a bit of time to create. But what about if the admin wants to have a cue of questions to be sent out? OK, there's a list of questions, that's a bit more functionality. But how does that order get decided? What if the list of questions could be sorted, so the question at the top is the first to be sent out? Great! Let's do that.
That was one sentence. But that proves to be one of the more difficult tasks. My fellow developer fellows had text messages being sent out and responded to right away...but a lot more functionality is required to make a sortable list schedule text messages. Making a list sortable by dragging is one thing, but now the order of items must update an attribute of that item's position in a database. Simply put, a lot more things need to do a lot more things to make it work.
This goes back to the idea of asking as many direct questions as possible...with the possible consequence of asking things a few times. But with every question asked, we get deeper into the functionality behind a particular user story. Following that path until everything is clear seems beneficial both for the client and for the people building the application.