Skip to main content

Passionate vs. Professional Programmer : Part 2 - Ideas

[ Read about the first part of this Passionate vs. Professional Programmer here.]
Again only few came up with ideas while the rest are busy in discussing them.

It would be better to know a thing about the software product in question to understand these suggestions and how they can impact the product. The product is a set of around 20 very complex soft real time applications that integrate with another 5 third party products. Out of them 4 applications are key applications that can greatly impact the overall performance. Applications are written in C/C++ and run on unix platforms.

Here is the list of suggestions(not in any particular order).
1. Do line by line code review to identify bottle necks.
2. Initialize uninitialized variables to prevent faults.
3. Remove unused local variables to improve performance.
4. Use of profilers to profile the code under run time with near-real time load and identify the 20% of the code that is executed 80% of the time. This 20% code will be reviewed line by line and optimized.
5. Recommeded use of static and dynamic code analyzers to spot obvious issues and memory leaks. Again use of tools that can predict and report real time issues.
6. Pointed out fundamental issues with the current architecture and IPC(inter process communication) mechanisms. Two new architectures that will not impact any applications but require changes only in basic platform support functions have been proposed. These architectures not only improve the capacity theoretically by around 60% but also improve the reliability and fault tolerance of the system to a greater extent.
7. Remove Goto statements to improve performance.
8. Remove tracing functionality in the build versions.
9. Totally unrelated but possibly give more time to the development team to do more unit testing: using effective load build mechanisms to save time during development phase.
10. create and initialize objects just before use.
11. Redesign key classes to minimize data duplication across them.
12. Use of tools to measure code/scenario coverage to reveal untested parts of the product.

Ideas come from passionate people definitely fit to the problem and will have a considerable impact on the overall solution. Unless we look what impact these suggestions can make, and which suggestions took into consideration the current performance and architecture of the product, it is highly impossible to make any comment on any of them. Remember, in an organization a suggestion has to prove not only on technical merit but also on the cost of execution. On the face, all looks good and each may make sense. They are purely professional at this point. But some of them are totally ineffective and useless for the product. In the next part, I will explain which one of them makes an impact for the current product. Then anybody can figure out which are passionate and which are mere professional.

Popular posts from this blog

You Are What You Think People Think About You

There are about 6.7 Billion people in this world that we know of.  Whether you believe in ‘Creation’ or ‘Evolution’, this human race started with a tiny number. It is quite amazing to see how fast it multiplies. What is more amazing is that every single individual in that 6 billion crowd is born ‘unique’.  Quite literally, you are born to be one in a billion, whether you believe it or not. “ This was the Introduction to my latest and last speech in Toast Masters club, ‘One in a Billion’ as part of International Speech contest. 
As much as I believe that each one of us can be that 'one in a billion' personality, I admit the reality as I perceive it and some times feel alone in that belief.
A famous quote says 'You are what you think'. It is also true that 'you are what you think people think about you'. If you think people think you are smart, then you act smart and become smart. If you think people think you are dumb, you will become dumb even if you are not, a…

Cooking looks like an unforgiving art

When you are writing software, you always get a second chance. In fact, lots of chances to get it correct. You have compiler warnings, failed test cases and some times crashes alert you that something is not right and will give you a chance to correct. And you get literally unlimited chances to apply those corrections. 
Well, cooking looks to be totally unforgiving in this respect and on any given day, you may get just one chance to get it right. If you fail, you fail. Try again right away if you have patience of starting it all over. Or start over some time later or next day. But not much of a second chance to correct a mistake. 
More ruthless, when it comes to salt. If you put just a little more, even a tiny little more, it never hesitate to show what it got. Totally ruthless. End result will be a failed dish that no one will be able (and/or happy) to eat. And most dishes, you may not be able to add something little more to offset it.

Little trick I learned the hard way, start on …

Did NDTV Just Twisted Words?

I have recently spotted quite a few places where NDTV title doesn’t exactly say the same as the details in the article says. Lost in translation? or just plain twisting for journalistic sensationalism?Title says “'AAP doesn't treat women as humans,' says founder member Madhu Bhaduri as she quits”, but the quote in details says, slightly differently: “In this party, women are not considered humans” (see the text highlighted).Source : NDTV.comYou may say, they effectually mean the same thing. Is it? Even if they mean the same,  Why not use the same exact phrase in both places?