So my new friend, Sanjay, liked by response (found in my earlier post) and ask me so more specific questions...I hope I gave him some specific answers...
Sanjay wrote:
Thanks Kenny for detailed response.
Would you also like to reflect upon if your background in literature plays any role in requirement definition phase? Would you like to recall some specific incidences where the literature training gave an additional edge in any phase of Software Engg?
For quite some time, I have been thinking to propose educational programs mixing Humanities and Software Engg. Real experiences like yours will help in building the case.
regards,
-Sanjay
My response:
Let's see, literature and requirements gathering....
Well, with literature, we'd often come to class having read a story/poem/novel and be met with some questions from our prof like "what was the author trying to say?", "what in the author's background might have lead him/her to write this way?", "why does the character behave this way?" What we couldn't figure out on our own, the prof would help fill in. In this way we became more adept at asking questions of the text and drawing out the answers.
Often when we meet with our clients during the requirement definition phase, they like are like a poem, explicit in some of their details, yet hiding many others. Of course, it's not their fault, they just how to explain everything they need from the system. As programmers in an analyst role, we need to be able to anticipate what other requirements might be hiding beneath surface. We need to have the ability to ask them more questions and draw out the answers. Perhaps the training that literature provides in having us constantly asking questions of the text to draw out meaning also helps us in these endeavors.
A quick anecdote on drawing out meaning from a poem, or in this case a poet. One of my favorite classes was taught by the Chilean Poet, Gonzalo Rojas (http://www.amazon.com/Lightning-Selected-Poems-Green-Integer/dp/1933382643/ref=sr_1_3?ie=UTF8&s=books&qid=1216105264&sr=1-3). For years the University had asked him to teach a class on his own poetry, but he always declined. Finally, he agreed and I was one of the lucky ten grad students that was allowed to take the class (though, usually about 10 to 20 other students stood in the conference room just to hear him speak). Anyway, I recall one time we were discussing one of his poems and one of the students said "Profesor Rojas, when you wrote this line, did you mean to say..." and he went on with his explanation, the details of which I cannot recall anymore. When the student was finished, the poet sat back in his chair and thought about it for a moment, then he responded "yes, you are right. That is probably what I was trying to say. I never realized that before". I learned a lesson that day, that even great artists don't always know the whole meaning of what they produce. Likewise, I have found that clients don't always know the whole list of requirements for the system the are asking us to build.
Another practical application of literature classes to requirements definition is the idea of "brain storming" that is common to both literature and software development. Before we ever start writing a paper for a literature class, we are asked to jot down ideas, any ideas that come to us. Even if these ideas seem stupid. At the brainstorm phase, there are no stupid ideas. I do this all the time for software development too. After all ideas have been exhausted, we then start sorting them out into related ideas. The ideas often form our paragraphs in writing and our subsystems or classes or data tables in software dev. We then look for the details that become the sentences of our paragraphs for literature or the functions/methods/fields/procedures in our computer system.
Anyway, I hope that helps...
Kenny
No comments:
Post a Comment