Archive for the ‘Software’ Category
And why exactly do we have such meaningless analysis of developer satisfaction ?
I remember my Market Research classes, where we were made to work extremely hard to come up with the right questions (could take weeks) before administering a questionnaire. Thats because if the questions do not have a clear traceback from the objectives of the exercise, they can give totally irrelevant and useless result at the end. If a research or a survey had to be useful, an enormous effort was required to upfront address what answers would be useful, and work back into the questions from there. Here’s a good reason (as a counterexample) why we were taught that rigour. A report titled “Users’ Choice: Scripting Language Ratings – A comprehensive user satisfaction survey of over 500 Software developers and IT Pros” from Evans Data Corporation measures “User Satisfaction” with scripting languages”. (Registration / Personal data sharing required) which got covered by the register in Developers more ’satisfied’ with PHP than other codes.
Without spending too much time I will just point out one example : Turn to Page 23 – Performance. So PHP programmers are more satisfied with its performance than Python and Ruby developers are with theirs ? I suspect if they had Java ratings in, its satisfaction perhaps could’ve been even worse. Yet the actual runtime performance of these languages is exactly the reverse. So what exactly does “user satisfaction of PHP developers with its performance is higher than that of Python and Ruby programmers with the respective performance” tell me and how is it useful even in the remotest possible way ? Beats me – but the most sensible explanation I could think of is that satisfaction is a function of the challenges and the context – and these are not equal. So any such comparison is pretty meaningless. Even more damning is the fact that there is an abundance of evidence indicating actual language runtime performance being completely inconsistent with the suggested user satisfaction levels which questions the relevance of the comparison of user satisfaction levels.
I wouldn’t have felt so strongly about if only the first 14 pages of the report had been published. That would simply reflect user satisfaction – end of story. But the remaining 12 pages which present the data in a comparative manner make it an exceptionally meaningless exercise best ignored (or blogged about and then ignored
).
Tips for Software / Programming blogging
This post appeared on on July 23, 2008 on my software development blog : /var/log/mind. It is one of two posts I decided to cross post into this blog as well.
Just realised, have been blogging for more than 6 months now (actually I had started another blog ages ago .. but that tapered off soon then). Over this period, I believe I learnt or adopted a few practices. Just sharing them here. Feel free to comment. YMMV.
- Treat your readers like a jury not as customers :By jury, I mean a jury as in a academic thesis not as in a court. Whats the difference ?
- With customers you sell, with a jury you defend your perspective. You may think you are selling your views, but a jury doesn’t shell out any money to buy them. This makes a typical sales process a much more harder and onerous task than just defending. Most readers aren’t out to buy, they are out to learn more and interact more.
- With customers you assume they may not know all about your product, so you focus on educating them in general towards making a pitch. With a jury you assume they already know far more than you do in general, but you attempt to educate them and draw them into a discussion into something specific that you have spent your time on, on something specific that you are presenting.
- In a defense, the onus is on you to provide credible backing evidence. In a sales pitch the onus is on the customer to verify your pitch. Most readers would prefer to not carry the additional overhead of having to verify your statements. If you have provided the rationale for your statements clearly and supported it with available evidence if relevant, you have made the readers job much easier. You have increased the chances of the reader wanting to come back to your blog.
- Make a strong statement. Avoid taking strong positions : Allow me to define this. By position I mean making absolutist statements without providing a sufficient context or a frame of reference or assuming ones own frame of reference as the only valid one. There is a wide diversity of readers out there. Some are into client side, some into server side. Some are into high usability, some into high speed processing. Some are doing graphics algorithms, some others are into CRUD and business validations. A large majority of your readers are likely to have a different frame of reference than yours. If they can’t understand where you are coming from, they will assume you are coming from the same context that they do. And they are likely to feel confused when what you say doesn’t end up matching their world view. A statement like “I found X more suitable than Y under a context Z” rather than a position like “X is better than Y” is more helpful since :
- You get to describe your context. Your statement is a statement within a context. It is not treated as a blanket position. Readers with different contexts and divergent views can sometimes trace the differences to the context. Such readers can still suggest alternative views within other contexts easily without appearing to contradict you. Readers with similar contexts and divergent views can still choose to take you on.
- You have lesser chances of being misinterpreted. You don’t want to get caught in an interview a year down the road when you are changing your job from writing a forms based application to one where you might be required to build say a graphics processing engine, where your interviewer might have just read your blog, and your posts actually do not make sense in the newer context.
- When you make a strong statement without taking a strong position, readers record their agreement / disagreement with the post rather than you or your blog in general. I personally find that a much more comforting thought than readers choosing to agree / disagree with the blog in general.
- Be prepared to update your blog soon :There is a large number of smart people out there, often a lot smarter than us, or having a difference experience set than us. As the comments start coming in, you start learning things you wish you knew before you wrote the post. If the comments indicate something useful and relevant to the post that you would’ve wanted to include in the post had you known about it earlier – go ahead, add it into the post. A convention I have seen is that all non trivial changes after the initial posting should be prefixed with the word “Update:” or “Updates:” so that readers can make out you’ve changed something after your initial post. A comment or two may be especially relevant. It helps to be able to review the comments regularly and update the post if relevant soon. If you are going to be traveling soon, either submit your post a little earlier or post it a little later – but post it when you know you will be able to review the comments and will have the flexibility to take 5 to 10 minutes off your regular work to update the blog if necessary.
- Be prepared for surprises : Even if you write carefully you will end up making a small set of readers either happy or disappointed with you in a manner that will leave you puzzled. However hard you try there is a good likelihood someone is going to misquote you or take you on strongly in an unanticipated way. Some of this may be unavoidable and needs to be factored into your assumptions. However some of it will be avoidable, and do follow up such incidents to figure out if there are any learnings that you can apply the next time. A great way to do so is to write a mail back to the commenter or to the blogger who may have linked to your post and get a better understanding of his/her viewpoint.
- Don’t title spam your readers : Every so often I come across a post with a provocative title, but which does not live up to the title at all. I prefer call this title spamming, since lot of the spam I receive has a provocative title, but often irrelevant content. Title is important. It influences readership strongly. But if you title spam regularly, it might help you get 2-3 posts higher readership, but its going to hurt in the longer run.
- Understand how blog aggregators and networks work :It is important to understand the demographics of different blog aggregators. If you would like your blog to be read by larger number of people, be clear in your mind which demographics you are targeting when writing your post. Some aggregators like javablogs.com and artima.com will target specific programming languages and work off an RSS feed. Explore your blogging software and see if it offers category / tag based feeds. If it does use the categories / tags to ensure your rss feed registered with these aggregators sends only relevant posts to them. I use wordpress and it supports tag / category based RSS feeds. Networks like dzone.com, news.ycombinator.com, reddit.com, slashdot.org, digg.com have very different demographics. Don’t blanket post to all networks. Register your post with those networks where the readers are likely to find your post helpful. I have occasionally come across people wondering whether one should register one’s own posts to a network. My opinion is that it is an acceptable activity.
- Ensure you have blog analytics enabled : Over a longer period of time you will start gleaning useful information about your readers. eg. what part of the world do they come from, which links do they come from (eg. you can get statistical information about the referrers such as google reader (RSS), blog aggregators, blog networks etc.). You can also get information about what searches led the search engines to your blog. I prefer wordpress.com stats plugin for wordpress and google analytics. The former is better at providing more immediate feedback, whereas the latter is more comprehensive.
- Pay attention to search engines as well :Most blog aggregators and networks will drive substantial traffic to your blog for the first 24-48 hours. Search engines will send a small trickle initially. However there is a big difference. Traffic from aggregators and networks will dry up after a few days for any post. But traffic from search engines will keep on coming. Over a sustained period of time, search engines can start driving a substantial traffic to your blog. Read up about Search Engine Optimisation and see if you can help your blog. I would recommend however that you use such optimisation fairly and only to the extent that it is not misleading.
A perspective on The Indian Information Technology (Amendment) Bill, 2006
Disclaimer :I am not a lawyer, neither do I claim to understand law well. The perspective below is based on my reading of the two bills which was not conducted in complete rigour and detail. The following is my understanding it. For a legally valid opinion kindly consult a lawyer.
Just last month, the Indian Parliament passed the Information Technology (Amendment) Bill, 2006. The bill is currently pending Presidential assent (to the best of my knowledge) and is expected to become a law soon. Unfortunately this document is a little hard to follow since it refers to changes made to the earlier applicable version of the law as defined by The Information Technology Act, 2000. One has to read them side by side to understand the full import. This post primarily focuses on the implications of the changes to the law but may refer from time to time to the implications of the earlier version as well.
Digital Signatures and Certificates : This is a very large section of the bill. I think I shall need to read it more carefully. So I am completely skipping that section and may choose to write separately about it later.
Computer networks and their security :
This bill now brings into purview wireless networks (the word wireless got added to the definition of a network). While an intermediary earlier was someone who stored or transmitted a message, it is a far broader definition as stated below.
Note that a message has been replaced by a record which broadens the scope quite a bit, and in my perhaps lay interpretation is likely to bring under its purview all the software as a service or a network service providers.
Offenses
The earlier law had two offenses listed in this section, which now have increased. Lets take a look at them.
The first offense description related to tampering of source code continues to remain the same unchanged -
The next offense Hacking with a computer system is now far less precise, and loosely means any dishonest or fraudulent activity in the context of a number of computer related activities as described in Section 43. That section incidentally has now been supplemented by Section 43A which under its purview now requires “body corporates possessing, dealing or handling any sensitive personal data” to maintain reasonable security practices and procedures (with a two year prison sentence in case of default). I will not dwell on Section 43 since it lists out a broad range of activities which can have negative consequences on computer systems and networks.
A new offense description can now be found as follows :
communication device,—
(a) any content that is grossly offensive or has menacing character; or
(b) any content which he knows to be false, but for the purpose of causing annoyance, inconvenience, danger, obstruction, insult, injury, criminal intimidation, enmity, hatred or ill will, persistently makes use of such computer resource or a communication device,
This is an onerous clause requiring us to be very careful in many of our online communications. I think to the extent it brings in accountability in online communications it is welcome. It is my belief that both the prosecution or courts are unlikely to pull people up for frivolous comments unless there are strong negative consequences and / or it is a persistent activity with a deliberately negative intent. However I still feel concerned about the rather loose wording which still could get misused.
The next offense is related to pornography. The first clause of the offense continues to the best of my reading ablities to be unmodified
However it has now been further expanded by the following
I could not find any reference in my reading to either consumption or storage of pornographic content to be an offense.
Interception and Decryption : While the wordings are different I could not find any substantive changes in the clauses related to the state rights to Interception and Decryption, except that the word Monitoring has also got added. But its safe to say that the Central Government can pretty much continue to snoop on any electronic transmission as they believe necessary. Couldn’t really figure out what if any difference this bill makes.
Modifications to the Indian Penal Code : The penal code is now applicable to “any person in any place without and beyond India committing offense targeting a computer resource located in India”. So people who are not residents or citizens of India targeting Indian computer systems are now classified as offenders. Incidentally it should be noted that the penal code already applies to “Any citizen of India in any place without and beyond India”. However that seems to be now made much clearer by the explanation which states that “the word offense includes every act committed outside India which, if committed in India, would be punishable under this Code”. While I am not certain about it my lay reading seems to indicate that Indian Citizens committing violations outside India will be eligible to be flagged as offenders. If my interpretation is correct, Indian Citizens involved in publishing or transmitting pornography or in activities which could get classified as an offender as per this law, , will get classified as offenders under the act in India, even if such activities are legal in the parts of the world where they or their computer systems reside. However I must insist I am not too sure about this.
A law misconstrued and misunderstood ? I wasn’t quite sure how to react to blog posts like “India Sleepwalks To Total Surveillance“. However I really can’t respect the way the bill has been represented. Some of the bold statements in the post say, “Thou shall not author a joke. Not even forward one”, “Thou shall not surf Bollywood news” and ” Thou shall not watch porn”. I really could not find any evidence to support such views whatsoever. The sad part is that such posts get picked up in articles like Blogger Writes from Inside the Newest Police State on the Planet, discussions such as slashdot - India Sleepwalks Into a Surveillance Society and tweets such as these. I have spent about 6 years in US, and the remainder in India. I have always been very happy with the freedoms I have received in India, even though I do know that very unfortunately a small proportion of the population does get victimised or harassed due to the stringent laws from time to time. I won’t be surprised if a substantial proportion of Indian Citizens actually support the clauses against pornography. And finally the draft bill has been under discussion since 2006 so I couldn’t understand how the world’s largest democracy sleepwalked into something (though I am certain this and another bill got completely fast tracked after the Mumbai Terrorist Attacks). The fact of the matter is that this has always been a state of stringent laws, with laws which don’t always agree fully with the western world. I think we should rate our laws based on our aspirations and desires. While I shudder at the privileges the government has in terms of eavesdropping, I am quite ambivalent on the strictures against pornography and greatly welcome the enhancements related to electronic signatures and increased accountability in terms of online communication and network security maintenance. Its really a mixed bag in my opinion. If at all India is to be considered a police state as in some opinions, in my opinion it is certainly not because of this bill.
![Reblog this post [with Zemanta]](http://img.zemanta.com/reblog_e.png?x-id=83ba6c8e-627e-40df-a58c-fbbe193497a4)
