Can technology help fight corruption?

Corruption is corroding humanity. In his TED talk, The good news on poverty, Bono said that corruption is the biggest challenge in fighting poverty. Think about it though, it’s not only the poverty but every part of life which corruption affects. Growing up in India, I got to experience it at every step of life. The level of corruption there is, it has put India at 94th rank in Corruption Perceptions Index 2012. You may think that’s bad, but there are around 80 countries with worse corruption than India. There have been anti-corruption protests/movements across the globe in recent years but any improvements haven’t been seen yet. In India, corruption has really become part of life. Take this for example. If you need to win a Govt. contract at any level, be it a project worth millions of dollars or a small town street repair, there is a fixed cut for officials who make the decision. There is competition on how much the contractors can bride not how cost-effective or efficient they are. And it’s not only the public sector, same goes for political, police, judiciary, corporate and even the NGOs to some degree.


Image credit: Transparency International

As corruption is a covert activity, it is incredibly hard to measure or track. There is no silver bullet to improve the situation overnight or even in foreseeable future. It will take the global citizens significant time and effort, big or small, to eradicate corruption. Today, we have the tools we didn’t have a few years ago. Across the globe, a large degree of population have smartphones and is part of some kind of social network. The penetration of these tools is going to increase every day. Can we use these tools to create a platform for reporting and measuring corruption with engaging experience? Can we use such a platform to create social awareness in communities around us?

Specifically, I am thinking about an open source app for all major platforms including iOS, Android and Windows Phone to crowd-source corruption activities with some fun. These apps should be built on top of a backend service which provides a cross device experience for users to:

  • Report corruption activities and geo-tag them.
  • Use social networks like Facebook and Twitter to sign in and share.
  • View corruption and transparent/non-corruption activities around them or some location on a map.
  • Gamify the system for user engagement and fun. This is not about making it a game but using game elements in corruption reporting as Four Square uses for location services.

These are really some initial ideas I have and there could be number of other features included. It’s hard to say anything about the success or effectiveness of such a platform. There is a great deal of learning and collaboration required for an effort like this. There are also some issues in this approach.

  • For sure, this wont be effective at all kinds of corruption.
  • You may argue that it may not be fair to the people who are being reported (if including names of corrupt people is allowed).
  • Some people might get agitated if this comes in their way of doing things.
  • The data being reported might not be accurate.

I have been looking around but haven’t come across any project like this. I did come across, a site for people to report bribes in India but I didn’t get the feeling of a modern web app by looking at it, there aren’t any mobile apps available. I also looked in iOS App Store and could only find Bribr, bribery reporting app for Russia.

What’s your opinion? Can a project like this help fight corruption? If at all started, would you contribute?


Dell’s PC Production Life Cycle

Came across this story about supply chain management for production of dell’s notebooks. I could recall the bits of functional understanding I collected about all this during development of some projects for manufacturing units.

Worth reading. Click Here to go to the post.

Coder to Developer

Came across Joel Spolsky‘s foreword for Mike Gunderloy’s book, “Coder to Developer”, great read. Sharing here:

You know what drives me crazy?

“Everything?” you ask. Well, OK, some of you know me a bit too well by now.

But seriously, folks, what drives me crazy is that most software developers don’t realize just how little they know about software development.

Take, for example, me.

When I was a teenager, as soon as I finished reading Peter Norton’s famous guide to programming the IBM-PC in Assembler, I was convinced that I knew everything there was to know about software development in general. Heck, I was ready to start a software company to make a word processor, you see, and it was going to be really good. My imaginary software company was going to have coffee breaks with free donuts every hour. A lot of my daydreams in those days involved donuts.

When I got out of the army, I headed off to college and got a degree in Computer Science. Now I really knew everything. I knew more than everything, because I had learned a bunch of computer-scientific junk about linear algebra and NP completeness and frigging lambda calculus which was obviously useless, so I thought they must have run out of useful things to teach us and were scraping the bottom of the barrel.

Nope. At my first job I noticed how many things there are that many Computer Science departments are too snooty to actually teach you. Things like software teamwork. Practical advice about user interface design. Professional tools like source code control, bug tracking databases, debuggers and profilers. Business things. Computer Science departments in the most prestigious institutions just won’t teach you this stuff because they consider it “vocational,” not academic; the kind of thing that high school dropouts learn at the local technical institute so they can have a career as an auto mechanic, or an air-conditioner repairman, or a (holding nose between thumb and forefinger) “software developer.”

I can sort of understand that attitude. After all, many prestigious undergraduate institutions see their goal as preparing you for life, not teaching you a career, least of all a career in a field that changes so rapidly any technologies you learn now will be obsolete in a decade.

Over the next decade I proceeded to learn an incredible amount about software development and all the things it takes to produce software. I worked at Microsoft on the Excel team, at Viacom on the web team, and at Juno on their email client. And, you know what? At every point in the learning cycle, I was completely convinced that I knew everything there was to know about software development.

“Maybe you’re just an arrogant sod?” you ask, possibly using an even spicier word than “sod.” I beg your pardon: this is my foreword; if you want to be rude write your own damn foreword, tear mine out of the book, and put yours in instead.

There’s something weird about software development, some mystical quality, that makes all kinds of people think they know how to do it. I’ve worked at dotcom-type companies full of liberal arts majors with no software experience or training who nevertheless were convinced that they knew how to manage software teams and design user interfaces. This is weird, because nobody thinks they know how to remove a burst appendix, or rebuild a car engine, unless they actually know how to do it, but for some reason there are all these people floating around who think they know everything there is to know about software development.
Anyway, the responsibility is going to fall on your shoulders. You’re probably going to have to learn how to do software development on your own. If you’re really lucky, you’ve had some experience working directly with top notch software developers who can teach you this stuff, but most people don’t have that opportunity.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Praises for the book and then continues on the topic :-).
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Being a software developer means you can take a concept, build a team, set up state of the art development processes, design a software product, the right software product, and produce it. Not just any software product: a high quality software product that solves a problem and delights your users. With documentation. A web page. A setup program. Test cases. Norwegian versions. Bokmål and Nynorsk. Appetizers, dessert, and twenty seven eight-by-ten color glossy photographs with circles and arrows and a paragraph on the back of each one explaining what each one was. (Apologies to Arlo Guthrie.)

And then, one day, finally, perhaps when it’s too late, you’ll wake up and say, “Hmm. Maybe I really don’t know what it really takes to develop software.” And on that day only, and not one minute before, but on that day and from that day forward, you will have earned the right to call yourself a software developer. In the meantime, all is not lost: you still have my blessing if you want to eat donuts every hour.

Browser Wars… IE, Opera, Firefox…… or may be a new one

When I tried to analyze about the best performing browser, I got to know that there are around 30 web browsers [may be more] with noticable user base. Navigate to List of web browsers at Wikipedia for complete listing.

There is one more article at Wikipedia showing Comparison of Browsers for general and technical features. This article doesn’t give any comparison for the second most important feature, speed. [I’m considering security as first].

There is one more article written by Mark Wilton-Jones on browser speeds after putting them through a number of tests.

I personally feel that Opera out played every browser in the game. At least at Windows if not on Linux and other grounds. The only problem is the rendering problem we face while browsing the sites designed specific to IE.

I suggest Avant Browser for guys like me who have to browse the sites designed for IE during application development. This browser is a must have shell created over Trident layout engine. Trident is the layout engine for the Microsoft Windows version of Internet Explorer.

Though not related to this post, I would append one more fact to this post. This may be new to you too that even IE is not developed in Microsoft. Like lots of other applications, they bought the browser from ouside too.

For further reading:
Browser wars
Browser Wars II: The Saga Continues

Useful Link:
Opera 9.0 Preview 2 is now available for download

PS: Though I used Opera earlier, I thank Amit for turning me back to this excellent browser.