Vijay Krishna's Notes http://vijaykrishna.posterous.com Most of my notes as a student of computer software and everything around it. posterous.com Mon, 18 Apr 2011 11:04:15 -0700 Makeovers http://vijaykrishna.posterous.com/makeovers http://vijaykrishna.posterous.com/makeovers Roughly a month ago i was hard at work, against time time and energies to integrate a whole new set of changes in the services with the UI. It was crazy to put it mildly and it was one huge chunk and it was evolving everyday. The whole transition to the new changes took a new 5 days to come to stable grounds. After i was done, i left for a week long break. I knew that the changes would continue, even from where i left off. When i came back however, change was made in virtually every way the application was conceived to begin with. The changes resulted in a drastic makeover and i was in no state to even comprehend the new dynamics of the business that were introduced in the software. I was truly lost. Makeovers are a part of any developmental process. But the big question is if they should be. At least by definition, they should not. A makeover is something that has to come after the development phase is over, instead of being a part of it. In the world of software, where the work and the daily text is  adorning the guises of programming languages, understanding the changes becomes even more difficult. One might argue that this is a common feature of any profession and is not specific or more so in the software world. But i tend to disagree here. Not because i am a part of this Industry of Logic, but because as a proponent of logic i can not help but notice that this industry is still young and is driven by a truly illogical set of rules and frameworks. The code that every one seems to write is more art than clerical form filling. Every one has their styles and hands at coding, like i have discussed this in a previous post. And this being a primary occupation of solving problems, and varied paths may be employed at solving the same problem, the diversity of the work in front of you increases, especially in terms of solutions. So, when you sit down to try and understand what has happened to an existing project, especially one which you worked on, you will find it extremely difficult to comprehend or rather accept new ideas and the general change that has come about in the system. In most software development that i have seen taking place around me, the makeovers are in the form of incremental changes taking place over an extended period of time. True makeovers i think should be a total change of any system ground up. This is a true harbinger of complexity in any system. Such makeovers only complicate the whole process of getting acquainted with new systems. i do not claim that what i have seen or heard of is the general nature of makeovers in any field or profession. But makeovers should, in my opinion, be implemented when one attempts to make something simpler, faster and lighter. This implies a rewriting of the script which may result in an initial failure of the system with its new face. Nonetheless, it should not be avoided. The price of getting better at something is imminent failure, but often that is also its reason in the first place.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1369599/pic.jpeg http://posterous.com/users/hcGXxsTkwP6SS Vijay Krishna Palepu vpalepu Vijay Krishna Palepu
Wed, 13 Apr 2011 06:39:49 -0700 True/False http://vijaykrishna.posterous.com/truefalse http://vijaykrishna.posterous.com/truefalse This is about a debate i had with my manager off late. We were discussing about converting the bool values of True/False that we get from the service to appropriate values such as Success/Failure or Yes/No or Active/Inactive, depending upon the context. That is when i commented that True/False are generic (and thus, they should be replaced with more specific values like the ones we were discussing). That was not the debate itself. But he somehow claimed that True/False are the same as Yes/No. I was a little appalled at hearing this. Although i could not pin point it to him then and there, and he won the debate, i knew that there was something wrong about that whole notion. And i could not help but think about it. And the more i thought, the more did it became evident to me, that True/False is associated with Fact, while Yes/No is associated with Agreement. I was still not convinced, and went on to search for the meanings of Yes and True. My ideas were confirmed and this is what thefreedictionary.com had to day about the two words: The meaning of Yes as given at thefreedictionary.com ::
yes  (y
Media_httpimgtfdcomhm_bkgaq
s)
adv.
It is so; as you say or ask. Used to express affirmation, agreement, positive confirmation, or consent.
n.pl.yes·es
1. An affirmative or consenting reply.
2. An affirmative vote or voter.
tr.v.yessedyes·singyes·es
To give an affirmative reply to.
interj.
Used to express great satisfaction, approval, or happiness
  The meaning of True as given at thefreedictionary.com ::
true  (tr
Media_httpimgtfdcomhm_ofrij
)
adj.tru·ertru·est
1.
a. Consistent with fact or reality; not false or erroneous. See Synonyms at real1. See Usage Note at fact.
b. Truthful.
2. Real; genuine. See Synonyms at authentic.
3. Reliable; accurate: a true prophecy.
4. Faithful, as to a friend, vow, or cause; loyal. See Synonyms at faithful.
5. Sincerely felt or expressed; unfeigned: true grief.
6. Fundamental; essential: his true motive.
7. Rightful; legitimate: the true heir.
8. Exactly conforming to a rule, standard, or pattern: trying to sing true B.
9. Accurately shaped or fitted: a true wheel.
10. Accurately placed, delivered, or thrown.
11. Quick and exact in sensing and responding.
12. Determined with reference to the earth's axis, not the magnetic poles: true north.
13. Conforming to the definitive criteria of a natural group; typical: The horseshoe crab is not a true crab.
14. Narrowly particularized; highly specific: spoke of probity in the truest sense of the word.
15. Computer Science Indicating one of two possible values taken by a variable in Boolean logic or a binary device.
adv.
1. In accord with reality, fact, or truthfulness.
2. Unswervingly; exactly: The archer aimed true.
3. So as to conform to a type, standard, or pattern.
tr.v.truedtru·ing or true·ingtrues
To position (something) so as to make it balanced, level, or square: trued up the long planks.
n.
1. Truth or reality. Used with the.
2. Proper alignment or adjustment: out of true.
Here is the funny bit: the word "true" could not be found in the meaning of Yes and vice-versa. And this is the investigative nature i guess any engineer must have in order to do well. that is the truth... yes?

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1369599/pic.jpeg http://posterous.com/users/hcGXxsTkwP6SS Vijay Krishna Palepu vpalepu Vijay Krishna Palepu
Sun, 03 Apr 2011 07:53:09 -0700 Higher Education and Development http://vijaykrishna.posterous.com/higher-education-and-development http://vijaykrishna.posterous.com/higher-education-and-development India has a rural economy; thus its rural fixtures are the country’s backbone in every aspect. Hence for sustainable development, the conditions of rural India in terms of the state of law, technology, infrastructure and health have to be improved. This will strengthen the base of the country’s economy, which in turn will further help businesses grow and thrive in urban areas. Hence, development in the villages can have a direct and positive impact on the cities and towns. However, most activities of development start in the urban worlds as compared to the rural regions. Moreover, the effects of such development rarely trickle down to the villages from the cities. This is due to the large disparity between the urban and rural worlds in India. Thus, this gap must be bridged for the development in the cities to have a positive impact on the villages, resulting in a holistic development of the nation. Hence, higher education in India can lead to good sustainable development of the nation if, the aforementioned requirements are met. Research and invention are the fundamental requirements for any act of development. Higher education is one of their greatest proponents. Students pursuing higher education have the chance to explore new domains of study and hence have a greater probability to break into new frontiers, thus solving real world problems that effect real people. This is a rarity in the industrial world, where projects are on a stringent time constraint and are often driven by financial gains. For instance, a college student can work on a non-profit community project which attempts social welfare. However, in his career he is more likely to work on, stereotypical, high earning assignments which will secure his life, financially. Higher education, thus gives us the opportunity to try new things, hence propelling development. Good College education provides good employment opportunities. Beyond inventive thinkers we require skilled professionals who can execute a given task successfully in their respective domains of work. Hence, education is instrumental in creating a skilled work force and reducing the levels of unemployment of the nation. College level education also gives students great exposure in their areas of study and prospective careers. This allows students to start up their own businesses and contribute to the overall economy of the country. Beyond the economic gains, such new businesses also create new jobs and employment opportunities. While the disparity between the urban and rural worlds might be economic in nature, there are various social schisms within our nation as well. However, education in any form is the key to reducing those differences. In the contemporary world, any individual with good education can do well and rise up in the social and economic strata. It brings everyone on a level playing field. Moreover, in order to develop a strong system of education, which can help development as I have just highlighted, well educated and trained individuals are required who, can further assist the process of educating others. Such systems of education have to come up at all levels, i.e. from primary schooling to college studies. Higher education without a strong system of primary schooling, especially in rural India, can have only a limited impact in any area of development. Good inventive thinkers, skilled working professionals, successful entrepreneurs and thorough educators are the results of a strong culture of higher education in a country. And they indicate the development a country has made, primarily in its economy and social structures.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1369599/pic.jpeg http://posterous.com/users/hcGXxsTkwP6SS Vijay Krishna Palepu vpalepu Vijay Krishna Palepu
Sat, 02 Apr 2011 12:44:14 -0700 Musings over originality... http://vijaykrishna.posterous.com/musings-over-originality http://vijaykrishna.posterous.com/musings-over-originality "Originality does not mean thinking something that was never thought before; it means putting old ideas together in new ways." The word Originality has a wealth of meaning behind it. It refers to something which is original i.e. new, different or unusual. Something that has never been seen or heard off before. At the same time it also refers to something that is a result of independent thinking. Thus originality of thought or work is two fold. It can be a completely new idea, theory, machine, system, etc. It can also be a new inference or interpretation of the existing idea or theory. It can be the combination of 2 or more systems/machines to give a new system which helps us solve problems related to the previous systems or those which are completely different. Thus, originality is both: the thinking of new ideas as well as putting together existing ideas to get something different.
At the same time one must note that putting together old ideas may or may not give things that are new. For example there is no point in putting together all the theories in the world in the world in order to prove "two times two gives four" or "the world is round". Originality is when, we get new ideas or inferences from existing ideas and thoughts.

Nearly everything thing in this world is derived from some existing conclusions and facts. Without those facts one cannot come up with something new. At the same time coming up with something new, independent of any previous knowledge or idea is originality as well. Think back for instance the originality of the early man who discovered fire with out the help of any previous knowledge or idea. It might have been a simple accident, but it was original for him, as he had never seen it before. There have have been so many instances when two different scientists came up with the same theories and ideas at the same time but were worlds apart. In such cases both their works have to be considered original as they did it independently.

Nothing in this world is new. Everything is present and waiting to be discovered or invented. It can be done by digging a hole or rearranging a machine. What spells originality though is that which the masses have never seen before. What is original for us Humans may not be so for another species. This is the crux of the matter. Charles Babbage's originality lied in coming up with the difference engine, arguably the world's first computer. Intel's originality lies in coming up with a computer architecture which out performs other architectures. The difference engine was an idea waiting to be thought up by someone. As it was finally a chain of thought which led to the idea of the difference engine. But, at the same time it was something new and original. It was extremely different than any other machine of those times. That is what gives it the tag of originality. Intel however will come up with a new and improved architecture by studying the present architectures and not by coming out with a totally new concept all together. It will still receive a tag of originality as it will come out with the fastest running architecture of its time.

Thus originality of an idea can be decided only if it is different or unheard of before. It does not matter if the idea was independent of any previous knowledge or if it was derived from old ideas or thoughts.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1369599/pic.jpeg http://posterous.com/users/hcGXxsTkwP6SS Vijay Krishna Palepu vpalepu Vijay Krishna Palepu
Fri, 25 Mar 2011 05:54:36 -0700 Startup http://vijaykrishna.posterous.com/startup http://vijaykrishna.posterous.com/startup There is this whole new revolution taking place with a sudden escalation in the use and making of software tools and products and the internet. There is so much one can seem to do and achieve nowadays. Almost every other person seems to be getting the next big idea and launching it to make decent wads of green. Well, many, like i did in the first statement of this post, are claiming this to be a direct effect of the explosion internet and software. But then again, there are other factors. For starters, the lack of good jobs. Let us face it. The IT Boom may have gotten in a lot of jobs around the world, but the fact remains that these are nothing jobs. They do not have nay perks, no security, zero retirement plans, and the ability to support only a single person. And let us face another fact. The number of intelligent people in this world are increasing, else this wave of entrepreneurship would not have been this sustainable. The number of smart people in this planet have outweighed the number of good and well paying jobs. Look at it this way, before Google and Facebook came to the big stage, all an IT professional could talk about was working for MS, IBM or Yahoo one day. And then came along Google, followed by FB, and they became the next big firms to work for. Every time there is a new firm which comes on to the big stage, the aspirations of the job seeking crowd becomes more and more tangible. And this is possible only if regular graduates and engineers look at starting something new of their own. Why i spoke of Google is because it is the 2nd reason for this startup craze. You see, before Google, all the other firms were formed ( i.e. were startups) back in the 80's. It was almost like  everyone forgot the meaning of the word entrepreneur. They could not look beyond working for existing establishment. The Google and Facebook stories have changed exactly that. They are the modern day startups, who have gone on to challenge and dominate global competition in their areas of expertise. Funny story is that before they came into being, they already had people working on similar products and software, which was being commercially used. Be it search or social networking. Yahoo search and Orkut came before Google search and Facebook. Yet, they triumphed over them. And mind you, both Yahoo Search and Orkut were good and popular products in their time. This very fact, that the new kids on the block could show the way out to the old ones, and that too so quickly has showed people that if your idea is worth it, then there is really very little stopping you. Self employment is a concept that is gaining popularity as days pass by. Now people have gone beyond the idea of making it to the big screen. They are contended with being simple one to two man teams making some kind of profit from some kind of business. The idea of being a independent consultant or a free lancer is also setting well with the new young guns today. The whole scenario looks so promising that even kids, from both schools and colleges are doing well with the whole process of making money. What ever be your qualification, if you have an idea you can sell, then this is a fantastic time to invest some time and startup. Its time to make hay while the sun shines folks, and this hay sells!

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1369599/pic.jpeg http://posterous.com/users/hcGXxsTkwP6SS Vijay Krishna Palepu vpalepu Vijay Krishna Palepu
Mon, 21 Mar 2011 04:25:15 -0700 Results: their means and value http://vijaykrishna.posterous.com/results-their-means-and-value http://vijaykrishna.posterous.com/results-their-means-and-value Well, i know that this is an age old topic to write on and definitely not something i should be writing about now, especially after passing out of college with every thing intact. But, why i still write on this has two simple reasons, a) the bigger exams of life (and not the metaphorical ones) will begin after college gets over and b) age old results have a habit of coming back into our lives time and again and biting us in the ass. The university results of my junior batch came out today. And to say the least it was carnage. Failure has a bad of showing us things, true things nonetheless and today was no different. The tension before the results, the shock while reviewing it and the dismay after the story sinks in. Most people deal with it when they think of the ways to fix it. But keep this in mind, once its broken you cannot fix it. All you can do is to get another chance at it, but the failure will last.  It never goes. While this might seem like a pessimists account of things, but trust me this is more of a compendium of real situations and troubles. I have seen the sorry state with which people are rejected in job interviews, just because they had one failed paper in this academic records, even though he cleared it. I have then seen those people covering up such unfavorings, which work against them, even in places where such things do not matter. I have seen people passing out of college only to come back  and clear a few papers which could not be cleared with the stipulated time. I have seen people shattered because their graduation marks came back to haunt them when it came to getting an interview call from the best management institutes of the country. And all of this i have seen happening again and again and again, for nearly five years now. All this has led to a very incorrect conception amongst most people. The misconception is that, marks are more important than anything else. How wrong could the world be! Sorry folks. Marks or results are only a barometer by which you estimates as to how good you are or can be when it comes to on ground work. The real deal that most employees or schools are looking for is that substance. Just because you do not have the results to show it, does not mean that you do not have it at all. It gets a little tougher for you to prove your abilities and substance. In fact a lot tougher, and maybe that is why marks and results at school and college become so very important.  Now because of this exact factor, people will do anything to meet the end of good marks at any cost and in any manner. They, then do not take more the difficult and rewarding path of reforming their substance and hence getting the right marks. But rather look at getting the results with or without the substance. The whole process of so called all-round development comes from that path. When you go through difficult situations and surpass them, you undergo major changes at a very basic level. You start seeing things clearly. You are likely to understand situations better. And you will surely start appreciating the other side of story. All this goes amiss, when you start looking at short cuts to getting results. Maybe that is why people now need separate courses in personality development and the likes. It is not magic you know. It is diligence, faith and pure persistence. And yes, it is tough. So for those who brag about graduation, specifically engineering,  being so very simple and breeze-like, know this: you have either not done your graduation properly or, you are the next genius.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1369599/pic.jpeg http://posterous.com/users/hcGXxsTkwP6SS Vijay Krishna Palepu vpalepu Vijay Krishna Palepu
Sun, 20 Mar 2011 04:53:38 -0700 Ready Made v Ground Up http://vijaykrishna.posterous.com/ready-made-v-ground-up http://vijaykrishna.posterous.com/ready-made-v-ground-up Now this is a debate ragging in my head for quite some time now. I just completed a project for my college's website. The website was built using Drupal. We are now looking for a fully functional website for the college alumni. And there again, we are looking at Ning as a platform. Drupal wass used by a group of students to build a website. They did not have the time to build the whole thing from scratch. Why? Because they were busy with their projects and assignments. When it came to working professionals building a similar website, time became even more of a luxury than before and we moved towards a more ready made platform. And in all this i am not even talking about the time spent in developing the product. But like all software pros, i am talking about the time spent in testing it, making it bullet proof and then maintaining it. Now, this entails a lot of time. When you come to think of it, if and when someone starts paying you for something like this, it becomes a full time job. But then again, that is a big "if". At the same time, while working as a software pro, i realise the power that custom built software has. The flexibility that it has to offer is too much. You can change anything to anything. It gives you the power to do what ever it is that you want to with a website. Having said that, it requires time. Time which we do not have. So, have we finally come to a point where we are ready to be dependent on someone else all-together for our software solutions? I doubt it. We are still pretty much the same when it comes to wanting something: when and if we want it, we get it. So this is the real challenge in front of us today. We are at a point where we do not have the time to achieve the world, and we are also not ready to settle for anything less than that. And this is the most fundamental challenge we will face in the coming years and this issue or problem or what ever it maybe, will only compound and we have the information growth rate to thank for that. Software solutions from now on can not be addressing specific problems anymore. What does that mean? It means that we cannot restrict ourselves to a set of demands or requirements. While the work domain by itself may hardly change, the dynamics and needs will, and beyond changing, they will grow! This is where i have to divert a little and point out that the very purpose of requirement analysis from now on is not understand the requirements of the business that we are going to serve as software engineers, rather it is to preempt for ourselves, so that we can avoid changing the systems and code (which we provide as products), as far as possible. This brings me to another point about custom made software. You do not want to change it too much. It is true. When you write a piece of code, you do not want to keep modifying it too much. You would rather get it right the first time and be done with it. So in a very basic sense, the very purpose of the custom code is defeated. After all, what is the whole point of have custom software when you cannot, or would not like to bring in any change in it? So i guess all you need is to tweak existing systems. That suffices it seems. So there in lies the trick and the solution. I think there is not point writing software anymore. It is time to start writing meta software. Makes sense?

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1369599/pic.jpeg http://posterous.com/users/hcGXxsTkwP6SS Vijay Krishna Palepu vpalepu Vijay Krishna Palepu
Mon, 14 Mar 2011 17:35:55 -0700 Simplicity http://vijaykrishna.posterous.com/simplicity http://vijaykrishna.posterous.com/simplicity Off i have been reading this book called "Simplicity" by Edward De Bono. Its a fascinating book and is lives true to its title. It is simple to read it. You can start from anywhere. You do not have to go into fine print, as the whole book is printed only on the right hand side pages. The left hand side contains excerpts from the right hand side, in big bold letters. So in reality to get the essence of the book, you really have read up the short excerpts on the left hand side pages of the book and be done with it. Most of the themes have been explained using examples and not complex theory. And the examples are from various professions and walks of life: Teaching, Computers, Machines, Systems, etc. Making it easy for people to relate to the core themes. And to top it all, the whole book is hardly 176 pages long, i.e. only 88 pages to read. :)  But this post is not about a book review. Although the preceding paragraph did just that (it was so simple :) ). No this post relates to a common conclusion that author keeps coming to time and again through out the book. The conclusion he arrives at is that, Simplicity can never be achieved in an absolute sense. In order to make something simple, something else has to be complex and a lot more sophisticated. You can either use 100 simple machines to do a complex thing, in which case simplicity will be involved in the machine's design, but synchronization between the machines will be the complexity bit. Or, you can have one complex machine doing the task, where in, the synchronization will be next to nothing, but the machine itself will be complicated. Thus, simplicity can only be transfered from one frame to the other. To achieve absolute simplicity is a very difficult task, something which might require a lot of time, effort and creativity. Moving on, i thought about this theme and conclusion for a good while and i realised why it is so. The reason why we find simplicity so very difficult to manifest is because of our needs as humans. Now, do not get me wrong. An average human, is simple with simple demands and requirements. That is not the issue. The problem comes when a set of humans come together seeking for a service in a custom made manner which suit their individual requirements and demands. These demands are by themselves are simple, but to provide a single solution which satisfies all such needs is a complex task. It is this diversity in the human race, that impels complex systems and thinking in the 1st place.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1369599/pic.jpeg http://posterous.com/users/hcGXxsTkwP6SS Vijay Krishna Palepu vpalepu Vijay Krishna Palepu
Tue, 08 Mar 2011 22:16:45 -0800 Character in Technology http://vijaykrishna.posterous.com/character-in-technology http://vijaykrishna.posterous.com/character-in-technology No sorry, this is not the Data Type "char" that i am going to talk about. Rather, this is related to the ethical and moral strength we must hold out in the world of technology. Talking about something like this can take a lot of time, due to the sheer range of contexts it touches. However, I am going to talk about one particular context that i came across time and again in this technological industry. I found, that for all the professionalism and maturity that people talk about, or rather boast about, there is no sense of responsibility or accountability for the work done and product delivered. And then i wonder, as to what has changed since the good old days of learning and ideating  in school. And that precise fact, is a bit of a let down after all the talk of being professionals. Like every other walk of life character is something that should be upheld no matter what. However, what i found in the industry was something different. A lot of work is decided as per the client's wishes and whims (to say the least). There is no real brain storming taking place at building genuinely better products which change lives. It is all about getting done with the deliverables and ensuring that the check enters the correct account. Post delivery services are next to nil, let me not even go to standards. And the immediate concern is to get the next guy in the loop, to whom we can sell our so-called earth shattering plan. I do not care how evolved or sophisticated the technology has become. The the sad fact of the matter is that the way in which technology is being built does not exactly  inspire you. And if this were true for a very long time now, then it is definitely disappointing. I wrote once before that technology and business are too intertwined with each other. To speak of one, you have to touch upon the other, and in some cases dwell deep into it. I guess, due to this dependency, we have lost track of the true purpose of technology. Most of the industry has become more of a money making machine rather than a powerhouse of innovation and advancements. I, at times wonder if we have become too myopic. But then my mind supports such a tact. Simply because when it comes to making a living, it is important to be myopic to start with. I only hope that this is more of a transit, where we are learning and are prepared to move forward and be more mature. For the contemporary has ensured a stagnation in the era of invention. How big a price are we about to pay in this loss of the most fundamental ethic in the world of technology, the ethic of new thinking? As a coder and developer, i sometimes believe in letting out my work, making the source truly open. For then there is no fear of profit or loss. But there is a constant attempt at possessing the best idea for the day, which leads to assured growth and assured profits. That is the absolute. For, i am an individual, and take from me what you can, but i daresay, you cannot take away my thought process. And that is the one true source of my sustenance and ethics.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1369599/pic.jpeg http://posterous.com/users/hcGXxsTkwP6SS Vijay Krishna Palepu vpalepu Vijay Krishna Palepu
Mon, 07 Mar 2011 18:24:48 -0800 You cannot please everyone http://vijaykrishna.posterous.com/you-cannot-please-everyone http://vijaykrishna.posterous.com/you-cannot-please-everyone I was taught this lesson in my 1st year of engineering when i was working on my college magazine, Srijna. It was a simple idea and thought. Beyond anything else, it was a warning. The fact that you cannot please everyone is well ingrained in my head. I understand it better than most people. "Why?", you ask. Simply because, i fail at it over and over and over again. I find the whole notion challenging. Over the years i have witnessed it in many projects and activities in which i have been involved in. The world of professional software development is no different. I am not talking about my work at office. I am talking about Project Doughnut, the founding website team of my undergrad college. Today, after its soft launch nearly 2 and half weeks ago, the website was thrown into the deep waters of an online public forum. This was the kind of publicity we (the team and i) were and were not looking for. But then again, there was the feedback, which we took with intent ears and minds. Paid good attention to most of what people had to say. And that is where i realised that i had yet again set out on a road to keep every one happy, this is otherwise called User Acceptance Testing in the world of software development. The biggest issue with UAT, i personally think, is the U. Sorry to be so candid, but the User does not really understand what exactly he wants. It would be so much better if the Users could really bend their back, focus a little and think a little about what they really want, and compare it with what is already there. But if that were really possible, then requirement analysis would not really be a matter of concern now would it. I find that users have a lot of objective opinions, such as, "You know, this is not right." or, "There is something missing." and, "This should could have been better.", and so on. But very few really dwell into the details and explain why a certain thing could have been better in a given manner or what and why something is missing. All of this calls for some thorough analysis on the background of the user. Why? Simply because you have to enter the users brain and figure out what he thinks is wrong with something but does not want to say it aloud or is simply oblivious to the true reason. A good understanding of the user is recommended while carrying out any kind of UAT and/or requirement analysis. This not only explains the reasons behind the user reported feedback, but also enables you to asist the user better in understanding his own demands and requirements. Try asking the right kind of questions as a part of such an exercise. There is a good chance that the user might come out with a few extra details about the features he would like if you probed him a little about it. This forces the user to think, thus reducing some of your own mental burden. Help him, help you. But then again, you should know how to ask the right questions. Remember, its like working with a computer. If you do not ask the right questions or give the right commands, you will never get the desired results. Never be impatient about the responses people come out with. No matter how shallow they (the responses) are. And never miss out on a single word. Try and imbibe all of what the user has to say. Remember it might not make complete sense to him, but you can churn out a few meaningful ideas which not only apply to that one particular user, but a a more general and larger set. You make a good product not for your own satisfaction, but for the users. And you can never make a good product, if you are not a good user.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1369599/pic.jpeg http://posterous.com/users/hcGXxsTkwP6SS Vijay Krishna Palepu vpalepu Vijay Krishna Palepu
Fri, 04 Mar 2011 18:25:54 -0800 Featured People - Facebook http://vijaykrishna.posterous.com/featured-people-facebook http://vijaykrishna.posterous.com/featured-people-facebook In the current UI of Facebook if you want to add a relationship you really have to do a little bit of a treasure hunt. That is unless you know exactly where it is. You have to go to Profile>Edit Profile (a grey colored button right below the Home-Profile-Account tab strip)>Featured People. There are issues with this whole mechanism. And this is just one of those things that does not make Facebook's UI "idiot proof". For starters let me point out that the section Featured People does not strike, to most people, as the place where you would manage relationships. Then the whole ordeal of getting there in the first place is difficult. Now for an important feature, such as relationships, this should have been given top access. Now i understand what Facebook has done. It has tried to give the best access and usability to its most used features such as the wall and the News Feeds. It is brilliantly done. And for most people, setting relationships is not on a high priority in their TODO list when they are on Facebook. While all this is done and done well, the team at FB seems to have lost the bigger picture. It has never been able to make the UI very idiot proof. A new user will be lost and the Featured People example was one of the more basic ones. Taking a more sensitive approach, the designers at FB should have come up with a different name rather than, Featured People. Most of my friends on FB, like to keep such information, namely their relationships and family members, away from the public eye, while wanting to establish it in a private manner. Which i think is fair. So, in a very basic sense of the word, "Feature" is not the right way to put it. You never want to feature your lovers or family members. Would you? Today a colleague literally yelled at me for the same thing, while we were debating about it. I could not get his point at first. But the more i thought about it, the more i realized that all my family was under this section called Featured People. I did not particularly enjoy the feeling  i got after that realization. Apart from the name, why is all this in a different tab/section all together, at least the relationship and family bit? Should it not be a part of your basic information? Even if you think that it should not be so (and i will agree with you there), can it not be under a different tab called Family? Why can it not be that simple? As a defense FB will say that you can not only add your Relationship status and Family Members under the tab of Featured People, but you can also add a custom list of friends or groups. This i found after a thorough combing of the whole UI. So when you look at it like that, "YES", it makes sense. But then again, why can't there be a different section for such lists and groups. At a very fundamental level, i would not like to put such groups and my family together, period. Now all that was the sentimental part of the debate. Let me get down to the usability of something as important as relationships. If you go along the same bandwagon as FB has today with featured people, you realize that your friend's list should have the family list as well. Whats more, it should also have a separate link which shows your relationship, in case you have filled it up. While it does not do the relationship bit (thats the first deficiency), it does give you a list of your family. But to get to the whole list of your friends you need at the least two clicks, the first one is required to take you to your profile page. That is very strange. It is a social networking site. To not give a single click access to your entire friend's list is gross foolishness. FB is a fantastic networking tool with its feeds, updates and likes. But it can never be a true social networking site until it gives people and relationships a higher priority. Right now, it is just giving their latest doings that extra importance.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1369599/pic.jpeg http://posterous.com/users/hcGXxsTkwP6SS Vijay Krishna Palepu vpalepu Vijay Krishna Palepu
Thu, 03 Mar 2011 18:19:42 -0800 What has to go wrong, will go wrong http://vijaykrishna.posterous.com/what-has-to-go-wrong-will-go-wrong http://vijaykrishna.posterous.com/what-has-to-go-wrong-will-go-wrong In a software development process, there are always roadblocks, detours, U-Turns, poor pathways and long hopeless drives which seemingly lead no where. It happens in all kind of firms, big and small. It happens in the development in all kinds of systems, simple and complex. What has to wrong, will go wrong, and there is very little you can do to avoid it. But you can manage it well, if you are prepared. But here is the funny bit, most of your preparatory skills come with experience. So do not get upset if you do not find the IT industry the way you thought it would be. Its not a perfect world, and this walk of life is no exception. While coders in larger and more well established institutions do not realise this, simply because they are shrouded by the proceedings of the requirement analysis and design phases too well. There needs to be a major upset in the project for the coder to actually feel it. Its only the managers who realise it first and always, as and when the shit hits the fan. I guess that is why they are managers. And that is where they are important. While coding is fundamentally about good logic building abilities, software development is about good logical foresight. You really need to see what will go wrong even before it does. The idea is never to think of the known possibilities. It is to figure out the less obvious and make good preparations for the unexpected. Mind you i am not talking about major or minor bug fixes. I am talking about founding in the architectures and the fundamental designs of the system. I am talking about not getting the requirements correctly, or not converting them to the correct data and logic flows. There is always an element of error, which cannot be avoided, but it has to be minimized. Some of the best ways to do them is maintain modularity and flexibility in everything, right from the design to the code that you develop. Working in a startup has helped me realize this very early in my career. People do not badger about those two things with no rhyme or reason. There is good reason to it. And better you are at doing something like that, better you will do in this business of software. Having blabbed about the IT industry and its flaws so much, let me let you in on another piece of information. The client is a greedy lazy pig! I cannot put in simpler terms. He wants more, always, than what he already has. And, he will never work hard at understanding his own demands and requirements, leave alone telling them to the person in front of him. He will sit there like the Google search engine, waiting for you to ask the right questions for him to come out with the right answers, if he is willing. Google, an artificially intelligent piece of code, is kinder in that respect. Let me let you on the last secret of this trade. Even if you were to get a fantastic client who were to understand and convey his demands well, and you were able to get the right architectures and designs in place, and all this was followed by some fantastic coding which rarely ever produced any minor bugs (if at all), you are still liable for changes, due to the changing dynamics of the businesses for which most softwares are being developed these days, at least the money minting ones. AT first I would curse these hurdles and crib about the imperfections with which we go about engineering software solutions. Then, right when i got stuck in my most horrible pot hole along the road to a good development process, i realized that this is where the real fun is. Its is never about how hard you hit, its about how hard you can get hit, and keep moving forward. How much you can take and keep moving forward. So take my advice, if you are stuck in one such pothole, and get up, because that is how some of the best software is written. This is the element of adventure in this career, enjoy it.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1369599/pic.jpeg http://posterous.com/users/hcGXxsTkwP6SS Vijay Krishna Palepu vpalepu Vijay Krishna Palepu
Sat, 26 Feb 2011 18:28:59 -0800 Knowledge vs Experience http://vijaykrishna.posterous.com/knowledge-vs-experience http://vijaykrishna.posterous.com/knowledge-vs-experience I was asking this question the other day to myself as to why knowing a technology well, before using it is very important. Now, let me state for the record that i am an all out proponent of "learning on the fly". I think that there are too many things out there to learn, and life is just too short to learn most of those things and then to do something with that knowledge. But then again there have been situations in the past where i saw some dramatic changes happening in the whole code base in major software products. All those changes were because of an error which was occurring due to some constraint of the underlying technology/platform, which the coder did not account for while coding, simply because he was not aware of it. And the funny bit is that days were spent in trying to figure out what the issue was in the first place. So much of time and effort wasted, simply because one did not study, or shall i say did not have the time to study, the whole technology base in good detail. All that time spent in diagnosing the issue could have been spent in studying more about the technology before the coding even began. In most situations a coder will always be Googling for a piece of information which is pertaining only to his code and its context. Never, will he go out of his way to actually study more about a particular programming concept or technology. Have we gotten so busy with our work that we no longer have time to learn? If so then it is alarming! Many feel that this is what experience is all about. It experience that gives everyone the knowledge required to tackle all sorts of situations, foreseeable and otherwise. But then again i have seen experience failing as well. There is that much of knowledge involved, generated and required every day of our professional lives. I personally think that growth should be slow and steady. More knowledge about a particular area will only lead to better decision making abilities in that area. Each time i ask a question, people have a very cool and standard reply to it: "just Google it...". Ironically, i find most of my answers in discussion forums where people were asking the same or similar questions. Look, Google is not God. It does not know everything. It just takes everyone's knowledge and shows it to everyone. Now, why can we not do the same in smaller units, instead of on the world wide web. While i am seemingly digressing here, understand this, a major reason why our learning processes have reduced is simply due to the fact that we have shut down a lot of learning avenues. To start with we are not inclined to ask or answer questions anymore to each others faces. We have a aversion towards books. We want everything at or from one place alone. And currently as far as knowledge is concerned that place is Google. I have no issues with that, its an amazing resource pool to say the least. But why in the world should we be shutting down other resources at the same time. A good colleague of mine once told me this:
Good coders do not rely on Google.
It was a simple truth. Fight it, and life will make you pay heavily just like in examples of the 1st para of this post. I am still a proponent of "on the fly learning", but i am also an advocate of learning before a test, not after.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1369599/pic.jpeg http://posterous.com/users/hcGXxsTkwP6SS Vijay Krishna Palepu vpalepu Vijay Krishna Palepu
Fri, 25 Feb 2011 18:28:59 -0800 Content Management http://vijaykrishna.posterous.com/content-management http://vijaykrishna.posterous.com/content-management This is probably the most difficult thing to do in a typical website. No wonder there are so many successful Content Management Systems in place. No wonder Narayanan Murthy stressed on data, as a very important part of any system. It is no wonder, that when it comes to developing world class websites most of us fail. It is not due to a lack of quality software or poor aesthetics. The underlying reason why any website fails in today's world of information is simply due to poor or no content management, or a lack of high quality content all together. I have been heavily involved in the development of a new website for my college. Right from the very beginning it was the content of this site that took top priority. We wanted to focus on getting quality content in place for an undergraduate institute. It was with this reason that we chose to work with content management systems, chose to integrate databases with a predefined schema while not involving ourselves in those details right from the word go. All we wanted to achieve was to get a proper structure in place for the content and then to get the appropriate content for that structure from the correct resources. That itself took us nearly an year, given that we had exams and coursework to deal with, and after some time i had to go pick up a job. There are a lot of details that go into an activity of such magnitude, ie coming out with good quality content in good volumes for an institute which has been there for about 17 years now. Right from its historical inception to its recent achievements, its a tough ask. And that is just the easy bit. Once you have acquired that you really need to keep updating that information quite regularly. These are some of the issues we faced in figuring out the content: 1. We could never quite come to a common ground on the tab order until 3 days ago. Same goes with the case of the side links. There was a lot of debate on which links should go in the side bar and main menu tab as well. Careful planning and a lot of debate is required. 2. A thorough research is required for history. There is no way around it. 3. The usual typos and grammaticals will always haunt you no matter what. But becasue the content changes with great frequency, you really do not have the time to correct it all that much. So what ever goes up has to be as error free as possible. 4. Choosing the right kind fo pictures is the most difficult thing to do. Most websites have images that they pick up from the Google Image search. It is important to have custom images just like custom text and data. It indicates authenticity. 5. Prioritizing of content which largely is related to the tab ordering in point one. But the problem goes a little but deeper than that. A lot of content within a single page requires to be gone about with some priority. This will take you back to the essay writing classes you probably struggled with during school. But trust me, if you set out to make a world class website, it will come back to that exact struggle. These were just a few basic issues anyone would face while developing content for such a project. Hope this helps. I feel that the content is more important than the feature set of the site itself. "Why?" you ask. Simply because, the presenting the content well is the very purpose of existence for the feature set, and not the other way round.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1369599/pic.jpeg http://posterous.com/users/hcGXxsTkwP6SS Vijay Krishna Palepu vpalepu Vijay Krishna Palepu
Mon, 21 Feb 2011 18:06:31 -0800 Spam 2.0 | Men at Work http://vijaykrishna.posterous.com/spam-20-men-at-work http://vijaykrishna.posterous.com/spam-20-men-at-work [caption id="attachment_295" align="aligncenter" width="254" caption="men at work"]
Media_httpvpalepufile_aejtd
[/caption] So the sign says it all really, a lot of work going on with the 24th Feb approaching (that is the launch date of the college website that i am working on.) So for today here is a post that i posted a long time back on my blog on blogger: SMS 2.0 Cheers!  

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1369599/pic.jpeg http://posterous.com/users/hcGXxsTkwP6SS Vijay Krishna Palepu vpalepu Vijay Krishna Palepu
Sat, 12 Feb 2011 16:43:54 -0800 User Interfaces: The Next Hub of Innovation & Saturation http://vijaykrishna.posterous.com/user-interfaces-the-next-hub-of-innovation-sa http://vijaykrishna.posterous.com/user-interfaces-the-next-hub-of-innovation-sa I was discussing with my father today about why the next big growth in the world of computers is going to be in (or atleast revolve around) User Interfaces and User Experience. But before i begin to layout the arguments for the same as i did with my father, let me put a few things in perspective. All the advances in computers has happened over a short span of 4 decades simply because great advances were made in the field of mathematics, for nearly 400 known and documented years before that. We have used it all up. In order to come out with the next best hardware or algorithm we need the next big break through in pure sciences. There is a certain level of saturation with the innovation in hardware these days. This is simply because, we have done what we could have done with the 0 and the 1. The binary has been stretched to all kinds of forms and applications possible. The so-called and seemingly new ones are nothing but new manifestations of its older forms. Hence, there is an urgent requirement to look at something new. Something earth shattering. There is a need for a break-through. (And i am not talking about original ideas.) This limitations in hardware has led us to develop better software. And we have achieved a great level of saturation in that as well. While innovations in any field are a never ending process, but it will be slow from now on in both these fields. When a single processor could not handle the processing requirements, they brought in multiple processors. Before that, they wrote the best possible code for a single processor. After the advent of multi core processors and unavoidable use of distributed systems, there was a great demand in writing good parallel algorithms. This perhaps is a fresh area for innovation, but not the one to last long. In stark reality it is based on pre-existing fundamentals of algorithmic designs and programming paradigms. In my opinion it is an area with a short lived demand for aggressive innovation, at least compared to the amounts of time that have been required in other areas of computational research, software engineering and the likes. So the big and small of all this is thus, we have hit a level of saturation when it comes to innovation in hardware. We have almost made it as fast and power efficient as we could. The same goes with Software which is run on that hardware. The advances in parallel or cloud computing that are required will be met shortly with ever evolving business needs. WE have done what we could with the existing norms of science (i am primarily talking about the binary) as far as hardware and the logic running on that it is concerned. So where does that leave us, as the computer fraternity? In this entire race of innovation, we ignored User Interfaces for a very long time. The command prompt in my opinion took too long a time to move out and many of us are still influenced by its hangover. The time has really come to involve rich user interfaces for all users. This is the next big hub of innovation. The idea is to use every grain of logic and hardware capability that we have developed so far, and use it in the development of new and improved UIs, which start moving towards Natural Interfaces via which human beings can access a world of information and the power to process it. The revolution for great UIs has always been there, with Microsoft and Apple as our guides. Its time to get out of this rut of developing great logic and not interfacing it properly with the world. Its time to introduce innovation to presentation.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1369599/pic.jpeg http://posterous.com/users/hcGXxsTkwP6SS Vijay Krishna Palepu vpalepu Vijay Krishna Palepu
Mon, 07 Feb 2011 18:23:41 -0800 Science, Technology and Business http://vijaykrishna.posterous.com/science-technology-and-business http://vijaykrishna.posterous.com/science-technology-and-business We have been witnessing the emergence of a new technology in the mobile and smart phone industry. Its called Android. There are new reviews, comparisons, sales figures, statistics about the new age mobile OS. Its brilliant really. The manifestation of some of the smartest work on the planet, everyday in a new form. What makes it more interesting is the competition between Android, iOS and Win7. Its amazing! It is actually more interesting than the technology itself. (Or should i say science?) The business being affected, the transition in the way people work. It drives your interests to some crazy levels. In a simple word, its awesome \m/ !! However, amidst this whole race of being the best, i am reminded of the differences between a science and a technology. You wonder why? Simply because half the people on whom this technology has an impact are more concerned with its business aspect. Neither do they understand the technology behind it, nor do they  understand the science behind the technology. Everything is business oriented. The technology we know is because of the businesses we do. The science we know is because of the technology we need, for those businesses. And there in lies the difference. Many think that science is more theoretical, while technology is its practical version. But, let me ask such people this: are you implying, that the process of evaporation, not a practical phenomena? Or for that matter, a nuclear reaction in Uranium? Do you consider the planetary motions just textbook gibberish and not actual happenings? Let us look at it the other way. Is the technology behind Space Trips for Tourists a practical venture. We do have the means to do it. But, is it practical at this stage? Is is not wise to look at other places for tourism? This fundamental difference in Science and Technology is the same as that between, Existence and Purpose/Need. While science exists, it is the technology that gives it a purpose.  A purpose that is drawn from a need of surviving, which has taken nothing but the shape of business in the most of todays world. Look at it this way. Information Technology was not even a branch of engineering 30 years back. Why was that? Because 30 years back computers were not used in businesses. Makes sense? No? Then you are not a businessman.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1369599/pic.jpeg http://posterous.com/users/hcGXxsTkwP6SS Vijay Krishna Palepu vpalepu Vijay Krishna Palepu
Sat, 05 Feb 2011 16:15:19 -0800 God & E=mc2 http://vijaykrishna.posterous.com/god-emc2 http://vijaykrishna.posterous.com/god-emc2 We has a pooja (prayer ceremony) at my house today. May be that is why I could not help but wonder about this article i wrote long back in college. It is a different read than most of my blog posts so far. Hope you enjoy it. The most interesting and fascinating question that has always intrigued us: What is GOD? Is he a supernatural force? Where is he? What does he look like? Does he have super powers? These are some of the questions that we have always asked ourselves. We have satisfied ourselves with answers like: Yes, he is a Supernatural force who resides above the skies in the Heavens and he is always looking after us from there with his super natural powers. God is omnipresent. He is everywhere. This is another popular notion that many believe in. Man has established so many forms of GOD with multiple hands and faces. He has let his imagination go wild in this department. From the Hindu Goddess Durga to Christ, from Buddha to Allaha, man has artistically molded God’s forms with his imagination. Well, even I am a firm believer of most of these things. Yes, I actually think that GOD is a supernatural force who is omni present and has super natural powers. How and can I explain myself? Yes, I think I can. The stress of my explanation will be the fact that he is omnipresent. Let us see what God is again: A supernatural power or a force of nature, so basically a FORCE or ENERGY. Because, according to the simple laws of physics, power is dependent on energy, which is further dependent on force. Now, let us take a look at Einstein’s popular Mass-Energy Equivalence. He drew a brilliant linear relation between MASS and ENERGY. He said that: Energy=Mass x (Speed of Light) 2. Simply speaking, he said that Mass is Energy. Now answer this question: What is the one thing you will always notice or see around you? The answer is MASS. Now what is Mass? Energy. What we agree Energy was? GOD. Thus any body of mass is nothing but GOD. This supports the popular notion that God resides in all of us. This also supports the notion that God is omni present. Now let me explain how he is looking after us. Every body of mass exerts some force, namely Gravitational Force, upon its surroundings. Now, you are in a vast endless universe with limitless Mass and energy. Now all this Mass will exert its energy or force on you. Thus, most of the actions that we end up doing are due to force exerted by this energy or what we call GOD. Let me elucidate. Why is the earth in the green zone of the solar system, where life is possible? It is because of the force exerted on it by sun and the 8 other planets present in the solar system, right? Now imagine yourself to be earth and the vast universe and anything beyond it to be the solar system. Thus what we do, our position is all an equilibrium created upon us by all these forces being exerted up on us by the entire universe. Then comes the big question of God’s form. Well the answer to that is pretty simple, don’t you think? Like I said before, any body of mass is God. Now a body of mass can have different shapes and sizes. Thus, it doesn’t really matter what God looks like. We can give him any shape and size as we wish. Thing is that they will all be correct. This is what I think God is. You might disagree. But you can not ignore that most of what I just said makes some amount of sense. And in the end what does it matter what God is or what does he look like? As far as we believe that there is some power beyond our understanding and it is that power that is running the vast universe, I think each of us have the right to mold God in our own way.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1369599/pic.jpeg http://posterous.com/users/hcGXxsTkwP6SS Vijay Krishna Palepu vpalepu Vijay Krishna Palepu
Thu, 03 Feb 2011 18:16:07 -0800 A Coder's Handwriting http://vijaykrishna.posterous.com/a-coders-handwriting http://vijaykrishna.posterous.com/a-coders-handwriting This is a phrase coined by i-don't-know-who. But this is a phrase used my a colleague of mine at office. When ever there is any issue in the code on the TFS, instead of doing a history check and the past check-ins, this guys identifies the author of that code based on its "handwriting". Interestingly enough more often than not, he is correct. And surprisingly enough, when you think about it for a minute, there seems to be some sense in his method. Any coder, no mater how much he has coded, or whom he codes with, has a basic style of coding. It may change over time. That is because a lot of factors effect how one writes code. The kind of software one uses to write code. The sort of framework/technology/language someone is working with or how much they know about it, the kind of practices one uses while coding, which involve, comments, regions, proper grouping of a particular kind of data variables and methods and the names used for those. Its a sum total of everything. And that is what i think my colleague means. Now every one has their own hand in coding and it keeps changing from time to time, more in the early days of work. But, as you go on, it stabilizes. Or so i guess. You can teach a coder how to use comments, and how to put everything in regions and how to make sure that he uses the same naming conventions everywhere. But there are so many things out there, (hell...even the kinds and number of commenting styles can overwhelm you at times) that it is only human for a coder to pick up a subset of all those standards and notations. Mind you, not all those standards are the best for any and every kind of scenario. But, those such as using comments to write the steps in your code, or place the methods in the probable sequence in which they will be called, or using access modifiers whether required or not, really help in the process of coding well. Many will beg to differ with me at this point, and i do not blame them. For i, myself believe that logic is the most important thing for a coder and everything else comes later. But, having such habits is not a bad thing really. Having comments is good for your own logic building. You really do not have to keep looking at the code and deciphering it, in order to understand what you have done. If you were to write the steps of your logic in comments, then the next time you open your code, you can just pick up from where you left, without dwelling into the code too much. This way you are not wasting time in revising on old stuff but actually moving on to new logic or logic enhancements. And it also makes it easier for someone who has to give you ideas/suggestions/reviews for your code. He can then actually understand what you have written. What is the point of writing good logic with poorly understandable code? Its like writing a new idea on paper with a doctor's handwriting. No one will understand your idea. Not because it was a complex idea, but because your handwriting sucked and your words were difficult to read. Writing neat code also conveys a clarity of thought. I think the reverse psychology also works here. What i mean is that a good coder with a clear mind will in all probability write clean code with proper naming conventions. Similarly, if you were to force yourself to use clear naming conventions you actually begin to have a clear understanding your own code. And that is the first step to good coding with sound logic development. Still not convinced? Look at it this way: You write code for your understanding, not the computer's. The computer will always convert your code to its own language which happens to be the binary, something you cannot not understand anyway. So whom are you writing that code for in a high level language, if not for yourself and your understanding?

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1369599/pic.jpeg http://posterous.com/users/hcGXxsTkwP6SS Vijay Krishna Palepu vpalepu Vijay Krishna Palepu
Sun, 30 Jan 2011 16:59:35 -0800 Requirements http://vijaykrishna.posterous.com/requirements http://vijaykrishna.posterous.com/requirements Every project is a result of a set of requirements. The success and the failure that project depends upon the extent to which those requirements are satisfied with the project. This is not another piece of literature that will tell you the importance of understanding a client's or consumer's requirements because it is important for the consumer. I am a coder, and i will like to, for a change, try and point out the issues a coder has if the requirements are not clearly defined. To be more explicit, i really do not care about how poor requirement analysis usually effects the consumer, i am more concerned about how it effects the coder, who is expected to transform those requirements to a finished product and machine. My point being, if the coder himself is unclear about the specs., then we have bigger concerns, bigger than the client. Live the consumer's World. - When a requirement analysis is being carried out, there should always be a certain degree of clarity between the one who is conveying the requirements, and the one trying to understand them. In an ideal world, the one who is trying to the understanding should also be able to convey those in their precise element, and also be a part of the coding fraternity. Also, there can never be a situation, when you are apprehensive about asking questions about a particular aspect about the requirements. It is always good to try and understand the purpose of what the client is trying to achieve with the final product. There is no point making assumptions based on what the client has told you. Remember, the client lives in that world, where the requirements exist, you do not. Live that world. Only then will you be able to truly see the intricacies of the problems you will face while actually developing the product, even before you get into the whole whirlpool of development. Avoid the Negative Trickle. - Information, like rations in India, suffers from the trickle down effect. When it starts from the source, it is rich and abundant. But, by the time it comes down to the individual who has to make sense out of it, and use it, there is hardly any left. The reason this is normal  is due to one simple thing: a lack of form in the information that is being generated at the source. Because, it is very abstract, and largely based on the consumer's experiences and not on a well thought off scheme of things, the information needs to be organized. And there is the loss of information begins. In the process of organization, we loose of several key elements, which might not seem important at the inception, but becomes important, as the project grows. We negate those elements, in the early phase of our project and thus, loose them for ever. Many come back to haunt us, many revive quietly. The idea should be to preserve everything. Do not loose any thing, even if it may seem to mean nothing to the project. See reason, not instructions. - In any team, there will always be someone telling someone else what to do. And since not everyone in a development team can meet the client, the "telling" will be more while trying to convey the requirements and hence the goals. In this whole process, one tends to take everything as an order or a blatant instruction, to be performed blindly. This is specifically true to coders. Don't do that. Listen to what your mentor has to say. Try and see the reason in the goals and requirements. What might seem right to you may not be so for the consumer. Adjust your thought accordingly. And until you are clear and confident of the fact that your understanding of the requirements are same as that of the client, don't stop asking questions. But the bigger thing is to always find the right reason behind your goals. Don't develop something blindly. Try looking at the Big Picture. The moment you start taking a holistic view to things, you understand the context of your work, which allows natural synchronization with the team that you are working with. When these things are not followed things get tough for a coder. He has no context for his work. His code is a result of an instruction from his superiors. And more often than not, he has little or no understanding of the requirements and ends up coming out with good code for the wrong place.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1369599/pic.jpeg http://posterous.com/users/hcGXxsTkwP6SS Vijay Krishna Palepu vpalepu Vijay Krishna Palepu