Thursday, May 17, 2007

Systems Analysis and Design

Most people who are following my blog know that I have an affinity for economics and am finishing up a masters degree in Economics as we speak. One common question I receive is "how does economics related to software engineering?" Well, that's a pretty easy for me. Let me explain.

Our entire capatalist system is built on economics; the buying and selling of good, creating efficient markets and mediums of exchanges. Software is very similar. The goal is to create an efficient program that uses hardware to accomplish a stated goal. Economics comes to play in software: I get to use economics on a daily basis to prioritize my workload. If it's more efficient to use my time tracking down a bug that is causing an overstatement of sales, that is how I will use my time (providing immediate payoff) instead of working on a development project with a 6-month payoff. Another example is using rules to cleanse data. In our data warehouse, we often get dirty data in and checking every column of every row is a hugely intensive process, adding cumulatively hours to our daily run times. Using economics, I've identified some rows that have marginal value to our processing on which we should not run the cleaning, shaving some time off (in the aggregate).

Now that I have went completely off target, my elective class this summer is "Systems Analysis and Design". This class looks at building processes, data models, use cases, normalizing data, etc. All the good stuff that I do professionally today. That's the good news - I can test my brain, add something to the class discussion, and hopefully learn a lot new in the process. Intrestingly enough, I took a similar undergraduate class about 10 years ago, and we used version 3 of the same book that the class is using now. Good thing I kept the old one; I have found it to be quite useful in the past couple years.

I'm going to post regular updates on my class on here and share some knowledge in the process.

No comments: