Friday, March 2, 2007

Process Orientation in Software Development by Jayram Tallamraju

Service orientation is the current buzzword and is part of mainstream development these days. So why am I going back to process orientation and the old school approach? If you are involved in software development life cycle, you may already understand why! If you don't understand the importance of process orientation, then this article might just offer you a few tips to help keep your development process running smoothly.
Developing software is not a difficult task. It doesn't matter what a developer's educational background is; writing a piece of code is so easy that if one understands the simple concepts and syntax, they can start writing software code. Unlike other engineering fields, with some basic training it is easy to get a software job and make good money.
While I believe that the above is basically true, that does not mean that a novice will produce good code. There is a lot of difference between good code and bad code. It's like building a house using a good design with a good foundation vs. just piling up some bricks until it looks like a house. Unfortunately not many people care or put as much focus into writing software as they would into building a house.A few reasons for this may be:
No matter how bad the code someone writes is, it is not going to harm anyone (at least for the vast majority of software projects).
There are no rules/regulations/standards that are enforced by a central standards committee or company.
I, for one, am certainly glad that same lack of standards/ethics is not commonplace in other fields. There are volumes of books on good RDMBS design, good coding standards, object-oriented design and design patterns, but they're just books and they cannot take action to prevent bad code (or the people who are responsible). I have yet to see a foolproof system in place to protect against bad code or practices to get the optimal level of productivity from developers.
Let's step back a little from coding and look at the real world outside software. I expect the best from the world that I live in. When I drive on the highway, I expect a smooth and clean road. When I buy a big screen TV, it shouldn't have scratches on screen or be missing buttons. When I spend my money, I want the best product or service.
But now looking back at the software industry, I don't come forward to fix bugs in my code for free! The company pays me, and I am expected to produce quality code in reasonable timeframe. Well, there is a lot going in my life and developing software is a low priority task that I only do so that I continue to get a regular paycheck. I get upset when my code is submitted to review or when people find bugs in my code. I've read few management books and most of them suggest that it is good to forgive others mistakes and not criticize others. I often think that the people who review or find bugs in my code, could do with an improvement in their people skills and learn how not to stress-out developers. I like my double standard approach: to demand best from others but give what ever I can, if and when I feel like. There are even times that I feel that working 30 hours a week for my current employer is too much. I know C++/HTML/Java and it's always easy to find another job thanks to the current economy and Monster.com.
I used to think that all developers thought like me. But then I met a different kind of developer - those who are so dedicated to what they do that they always give more then they expect to receive. These guys are givers and make a difference in the world. I think they do what they do simply because they love to do it - the money just happens to be a nice perk. That made me realize that I should do what I love and give the same service I expect from others. This caused me to seriously reflect on my approach and attitude towards software development. I asked these dedicated developers to help me provide some tips for developers like me. I would like to share those views with you all and I hope it helps to, in some small way, make the software development world a better place. Process Orientation in Practice
There are many things in life that we do in a certain way. When you drive a car, you stop at red lights and stop signs. If you're courteous, you may even give way for the pedestrians or yield to other traffic. Much of what we do in life is based on what we see others do and we tend to follow it. In some cases where rules are not followed, authorities are there to enforce them. In a way, this process is created for all of us to work and live together without chaos.

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home