Saturday, January 7, 2012

Initial Post

This is a blog that our professor has asked that we keep over the course of this semester.  I am terrible at journal keeping, so I'm sure this will be a bit of a struggle for me.  :)

The question has been asked, "What is the best way to think of software development?"  Here are my thoughts on the matter:


Software development, in my opinion, is using software to meet a customer or clients needs.  The development process consists of interviewing the client and using pointed questions to try and determine their needs.  This process takes time, and over a period of time, the requirements will become more clear.  It's important to continue to ask questions and really get down into the minutia of things to really see what the client is needing.  I think of software development as a refinement of a process to make it as streamlined and efficient as possible.  This idea can be carried over to things other than creating software as all.  


Some things I have learned over this last semester are that the only way to really understand what the customer wants is to develop psychic powers, or to do their job until you are an expert at it.  Since neither of these options are very feasible, it's important to make sure that the interviewing process is maximized, and that communication is constant with the client.  The client needs to see what you're doing in order to determine if you're on track or not, and you need the customer to communicate this with you so that your view of the final product becomes more and more clear.  


Bryan has been the primary point of contact in our group, and I imagine that he's got a very good idea of what the client is looking for.  Bryan communicates this information to us very well, never the less, he should intrinsically have a deeper understanding, as he has been speaking with the client the most.


So, can this be taught in the classroom?  I would say that the fundamentals of this can indeed be taught in a class (if not the classroom), utilizing several techniques.  This class and 3750 have been a great way of introducing this idea to students.  Another way would be to have the teacher act as the client, including some specification changes and what not.  


I don't think that communication with clients is a requirement for a Software Engineer to get a job; however, I do think that if you are able to communicate effectively, you will be an infinitely better software engineer, and are much more likely to get and keep a job.  I also think that being able to communicate will greatly increase your marketability as a software engineer.  I have heard of several people in the CS department taking a communications minor, which I think is a good idea.  I would probably do that, but I don't have time.  :)


I hope this is a satisfactory post, and will meet the requirements the professor is looking for.  I guess we'll find out!

No comments:

Post a Comment