Saturday, November 26, 2011

Analytics using R: Most active in my Twitter list

I follow some 80 odd people/ news sources on my twitter account. For a while I wondered which of these sources are most active on twitter. I picked a simple metric '# of status messages posted to twitter' as the measure of activity. Using R I quickly wrote a program to generate my top 10 most active twitter sources.

Here is the bar plot of the result
As expected news sources dominate the list. Among individuals "Michael Hyatt" and "Jurgen Appelo" are most active. 

If you are interested in 'R', here is the code to extract this report:

## Prerequisite: Install twitteR package 'install.packages(twitteR)
## load twitteR package
library(twitteR)

##get handle to a twitteR user object (in this case for user d_lalit
tuser <- getUser('d_lalit')

##get list of friends of d_lalit
tfriends <- userFriends(tuser)

##create an array to store the name and number of status messages for each friend
friendsCount <- length(tfriends)
friendsName <- character(friendsCount)
friendsMsgCount <- numeric(friendsCount)

for (i in 1:friendsCount) {
  friendsName[i] <- tfriends[[i]]$screenName
  friendsMsgCount[i] <- as.numeric(tfriends[[i]]$statusesCount)
}

## prepare a sortedlist and extract top 10 values from the list
sortedlist <- sort(friendsMsgCount, index.return = TRUE, decreasing=TRUE)
top10friendsName <- character(10)
top10friendsMsgCount <- numeric(10)

for (i in 1:10) {
  top10friendsName[i] <- friendsName[sortedlist$ix[[i]]] ## index is stored under ix
  top10friendsMsgCount[i] <- as.numeric(sortedlist$x[[i]])
}

## plot the chart
barplot(top10friendsMsgCount, width = 0.25, names.arg = top10friendsName, horiz=FALSE, main="Twitter friends by activity count", ylab="Number of status messages", xlab="twitter friends", space=0.2, density=50, angle=45, cex.names=0.7) 
  
I realize the code is not optimally written. Any suggestions refine the code will be appreciated.

Update: 11/29/2011
In the latest version of twitteR package, the method userFriends() has been deprecated. You may replace line#9 in the above code as with the code given below:

tfriends <- tuser$getFriends()

Thursday, October 27, 2011

Cheapest Tablet in the World - Made in India

Check out "Akash" - World's cheapest tablet.  It is unabashedly optimized for cost. To be priced at $35 a piece (subsidized by Govt of India) for educational institutes and $60 a piece for retail sale.



Aakash Tablet from Venturebeat on Vimeo.

Specifications

  • Screen: 7-inches; 800-by-400 pixels; Resistive touchscreen
  • Operating system: Android 2.2, Froyo
  • Processor: 366 MHz Connexant; HD Video co-processor (both with graphics accelerators)
  • Memory: 256MB RAM (internal); 2GB Flash (external)
  • Storage: 2GB card included, expandable up to 32GB
  • Ports: Two USB 2.0; 3.5mm audio out jack; 3.5mm audio in jack (No built-in speakers)
  • Connectivity: GPRS; Wi-Fi 802.11 a,b,g
  • Power: Up to 180 minutes on battery; AC adapter, 200-240 volt
  • Weight: 350 grams

Sunday, October 16, 2011

How great leaders inspire action

One of my favorite talks from TED by Simon Sinek.

Simple, effective and insightful.

Saturday, October 15, 2011

Agile tour pune - 2011

I delivered a talk on "Scaling agility" in the enterprise at Agile Tour 2011 @Pune. It was a great experience addressing some 70 odd agile enthusiasts, including some renowned thought leaders in the industry.


The talk aimed to answer the following questions:
- What are the typical challenges faced by enterprises while scaling agility (slides 8 ~ 12)
- Why we can not leave it to self organizing teams to manage scaling of agility (slide 14)
- What values the agile leaders should espouse for successful scaling of agility, in the form of a manifesto (slides 15-28)




Any suggestion or feedback to further improve the content will be appreciated.

Monday, October 10, 2011

A Chicken's manifesto for scaling agility

In agile Scrum parlance, the term 'Chicken' refers to those who are involved (but not committed) in the project and stand to benefit from it. Examples: Managers, Leaders, Coaches, Sponsors etc.

In a typical Scrum team, the role of Chicken is somewhat marginalized, at times to the extent of being derogatory. However as organizations Scale agility from doing individual pilot projects to enterprise wide Agile adoption, the role of Chickens assumes significant importance. A thoughtful organizational change management by the Chickens, can be the differentiating factor between success and failure.

Introducing 'A chickens manifesto for scaling agility':
-----------------------------------------------------------------------------------------------------------------------
"As responsible agile practitioners, we are optimizing the value delivered  through agile software development by adopting innovative practices. In addition to the manifesto for agile software development, we have come to value:

attitude over skill
adaptability over predictability
effectiveness over efficiency
optimizing the whole over improvement in parts
That is, while there is value in the items on the right, we value the items on the left more."
-----------------------------------------------------------------------------------------------------------------------
I picked these values based on my own experience of scaling agility from a small team to be an enterprise wide phenomenon. Keeping your agile adoption journey in context, do you identify with the above mentioned? Do you have any other useful values to add?

Please leave a comment.

Friday, September 2, 2011

Offline Google Docs - Too little too late

Google (re)announced offline feature on Google docs recently. For those who noticed, would also remember that Google Gears was decommissioned nearly an year ago, hence this new HTML 5 version took too long to get to beta status. Is the new offline version worth the wait?

I guess not..here are some important notes about new offline capability (source: Google Docs help)

  • You'll need to Set up Docs offline from your Documents List to start accessing your documents and spreadsheets without an Internet connection.
  • Offline access is available in Chrome only. (Oops!)
  • Offline access is available only for documents and spreadsheets. Presentations, drawings and other items from your Documents List are not available offline at this time. 
  • (humm..okay..it's in Beta anyway)
  • Documents and spreadsheets are only available in view-only mode. You must restore your Internet connection to make any edits. (??!@#? - useless..I stopped reading next two points)
  • You can't create new documents and spreadsheets while you're offline.
  • You'll need to allow offline access separately on each computer where you want to view your Google Docs offline.

I wish Evernote comes up with a spreadsheet application. Till then, I will stick to the 'online' google docs..

Tuesday, August 30, 2011

Best Practices for Agile Managers

Agile Managers! Sounds like an Oxymoron?

In reality, there are organizations which have functional or product manager roles which do not fit under the traditional roles defined by agile methods. Jurgen Appelo started a thread (on his blog) to capture the best practices for a newly minted agile manager.

Here is what I think (as interpreted from the Agile principles)..please add on if I missed anything important

An agile manager should:


  • Focus on optimizing the "business value" being delivered by the agile team. You may decide on your own metrics for business value (qualitative, quantitative or gut feel), but key is to have a sense ..at all times
  • Pursue delivery of a fully working software at end of each sprint
  • Periodically (pick your own frequency) Review and optimize the 'Done' list
  • Identify key stakeholders and ensure their participation (as required) during the entire project life cycle
  • Set expectations clearly (with all stakeholders), manage expectations to avoid last minute surprises
  • Make an genuine effort to understand all aspects of the project (example: if you are not technical, don't avoid the architecture all together, try to gather just enough understanding)
  • Set up information radiators (to convey real time information to all stakeholders)
  • Focus on attaining a sustainable velocity quickly and early in the project life-cycle (it helps in planning and avoids burn outs)
  • Watch out for 'Smells' (things which might be an impediment to agile practices


Last but not the least, an agile manager should demonstrate thought leadership and show genuine concern for professional growth of each member of the team. It's essential for the agile manager to win the respect of the team. You would always be better of by being a 'Leader' rather than a 'Manager'

Monday, August 29, 2011

Myths of agility

In the context of Software development, the term “agility” is widely misunderstood. Even many seasoned software engineers associate agility with complex process changes to adopt ‘Agile’ methods such as XP, SCRUM, DSDM, FDD and Crystal etc. But in reality, this specious association can’t be any farther from the truth. Before you join the ‘Agile’ bandwagon and start reading a XP or SCRUM book, it is essential for you to understand the fine line between ‘Agile methods’ and being ‘agile’.

Being ‘agile’ is a state where your organization is completely adaptive to changing environment. You are driven by business value. Your entire infrastructure, not just IT department but also other business functions such as sales, marketing, finance, production, procurement etc look to maximize the business value generated for the organizations. All it requires certain level of maturity in the way you work, nothing else matters. In the context of Software development, you can adopt any methodology you like (yes, even waterfall, RUP) as long as you focus on a) maximizing “Business value” instead of “through-put” b) being “Adaptive” instead of being “Predictive” c) and Continuous sustainable improvement. All that ‘Agile’ methods do, is to enable some of the aforesaid attributes a bit more than any other traditional methods (such as Waterfall, RUP etc).

Looking from a holistic perspective, being agile is the end goal of all organization and adopting an ‘Agile’ method (for that matter any other software development method) is just a mean to achieve the end goal. However it’s unfortunate to see many organizations blindly adopt XP or Scrum process without giving sufficient thoughts to the values required to make an organization truly agile. It is, therefore obvious that such changes fail over long run.

If you care for being agile, have a look at the Principles behind agile methods. Have a open discussion within your team to determine what each principle means to you as a group. Look at your existing processes and see if they adhere to these principles (fully or partially). Start working on those processes which needs refinement. Change if you must, but only after fully grasping what change means to the overall organization. Rest assured you will ensure a successful and sustainable process change towards being truly agile.

Sunday, July 24, 2011

Tuesday, July 5, 2011

Software G Forces: The effects of acceleration

Kent Beck delivered this talk at USENIX 2011

Abstract:
- Effective software engineering is a relative term. As deployment cycles shrink, what constitutes effective software engineering changes radically. Developers must reflect on and choose the right set of software engineering practices based on their release cycle

Saturday, June 4, 2011

Carson's Law

Learnt something new about modern day innovation.

Carson's Law (by Curtis Carlson, the C.E.O. of SRI International, in Silicon Valley) states:

“In a world where so many people now have access to education and cheap tools of innovation, innovation that happens from the bottom up tends to be chaotic but smart. Innovation that happens from the top down tends to be orderly but dumb.”

As a result, says Carlson, the sweet spot for innovation today is “moving down,” closer to the people, not up, because all the people together are smarter than anyone alone and all the people now have the tools to invent and collaborate.

My 2 cents:
Modern day leadership is all about creating a conducive environment where the bottoms up innovations are encouraged and validated real time.

thoughts?

Monday, May 16, 2011

My first 'R' plot

Started learning 'R'.
My first attempt was to plot data from Forbes 1000 list (refer to the exercise posted by Prasoon sharma)

Here is a bubble chart showing Forbes top 25 companies by Market Capitalization

Source code:
## read the csv file
FORBES.DF <- read.csv("forbes2000list_for_2011.csv")

## assign titles
names(FORBES.DF)<- c("Rank", "Company", "Country", "Industry", "Sales", "Profits", "Assets", "MarketCap")

## create a smaller vector
Forbes100ByMC <- FORBES.DF[order(-FORBES.DF$MarketCap),][1:100,]
Forbes25 <- Forbes100ByMC[1:25, ]

## plot the bubble chart using 'symbols'
radius <- sqrt(Forbes25$MarketCap/pi)
sales <- as.numeric(as.character(Forbes25$Sales))
profits <- as.numeric(as.character(Forbes25$Profits))

symbols(sales, profits, circles=radius, inches=0.9, fg="white", bg="light blue", xlab="Sales($'Billions)", ylab="Profits($'Billions)", main="Forbes 25 By Market Capitalization", xlim=c(min(range(sales))-50, max(range(sales))+50), ylim=c(min(range(profits))-2, max(range(profits))+2))
## print the names of companies
text(sales, profits, Forbes25$Company, cex=0.6, col="dark red") 
 
Any feedback toward writting better 'R' code is welcome.

Wednesday, May 4, 2011

Learning

How do you approach the most critical objective of your organization?

Probably you would start by qualifying this objective and start a project to accomplish it. Break it down to smaller goals, milestones and put some planning around it? May be you would further break down the goals into small actionable items and schedule some activities. Some of you would setup a rhythm to periodically accomplish the smaller tasks in order to realize your grand objective.

No matter whatever process or methodology you follow, you would certainly NOT leave your most critical objective to chance..certainly NOT by adopting an ad-hoc approach.

My moment of epiphany arrived when I realized "Continuous Self Learning" is the most critical aspect of my career. Probably the same applies to most of the readers of this blog.

So, how to you approach your personal 'Learning'? Is there a method? Or is it left to chance?

Thursday, April 14, 2011

VMWare Cloud Foundry

VMWare launched Colud foundry, an open extensible PaaS cloud built entirely on Ruby. VMWare is focusing on the following 3 key differentiators
  • Multi-cloud - Enables seamless transition between Private,  public and hybrid clouds
  • Multi-framework - Spring (Java), Rails (Ruby) and Node.js - extensible to other frameworks
  • Multiple applications
Checkout this quick intro
 
VMWare is pitching the Cloud Foundry directly to the developer community. This strategy is well summarized by this quote by one of the VMWare developers "Developers should write code, not IT trouble tickets"..

Time will tell how well the developer community adopts this new service. Nonetheless, VMWare has managed to set itself apart from the multitudes of 'also ran's (read other run of the mill cloud service providers). 

Wednesday, March 23, 2011

jStat: Advanced Statistics using Javascript

While 'R' is getting enterprise ready, it's no longer the only open source option for advanced statistical programming. jStat.js is the new kid on the block.

Things in favor of jStat:
  • Based on Javascript, jQuery - future is assured
  • Light-weight
  • Ability to visualize data using flot (jQuery plugin)
Still no match for 'R' yet (complete API documentation is yet to come out), but certainly a bright prospect in application which require basic statistical analysis and data visualization (where 'R' is an overkill).

Possibilities  with jStat.js - check this out


Thinking out loud..
Node.js + jStat.js ...=..=!=..=... RIP 'R' ??

Monday, March 14, 2011

Demystifying the financial Crisis

A small presentation I prepared to explain the Causes of the Subprime led Financial Crisis.


Please feel free to give feedback.

Sunday, March 13, 2011

The travels of a T-Shirt in the global economy



Read an interesting book "The travels of a T-Shirt in the global economy". Author Piethra Rivoli traces the travels of an ubiquitous T-Shirt, from the cotton fields of western Texas to the manufacturing bases in china, back to the US market and then to continetal Africa. In the process she introduces the complex labyrinth of market forces in place, global trade, protectionism and power.

A bit detailed at times, but still interesting read if you want to understand global trades..

Monday, February 28, 2011

Tipping point by Malcolm Gladwell

Just completed reading 'Tipping Point: How little things can make a big difference' by Malcolm Gladwell.

The book primarily covers three basic rules that apply to spread of any epidemic. Those are [sic]:
  1. Law of the few: There are always Early adopters for any new idea. Success of the idea depends on the work and influence of the Early adopters. Typically Early adopters can be one of the following categories a) Mavens - One who accumulates knowledge b) Connectors- Who knows a lot of people c) Salesmen - People who can influence others 
  2. Stickiness Factor: There is a simple way to package information that, under the right circumstances, can make it irresistible. All you have to do is to find it.
  3. Power of Context: Human beings are a lot more sensitive to their environment than they may seem.
While the author discusses the above mentioned points in the context of epidemics in general, in hindsight, these laws have profound application in Managing Organizational Change. I would certainly apply these rules, when I plan next to introduce a new process in the organization. 

Tuesday, February 15, 2011

When Agile becomes Anarchy

I have seen successful agile teams innovating on process front..and quite successfully so. While I am in favor of such evolution in Agile ecosystem, what bothers me is the resulting lack of discipline.

One of our high performing project teams has successfully implemented Kanban processes into Scrum framework, but to my surprise, in the process the team has lost focus on some key agile processes. For example, there is neither any sprint commitment (Scrum CTQ*) nor any limit on WIP items of each workflow state (Kanban CTQ*). While the team continues to measure sprint velocity, the complete lack of predictability is equally puzzling (i.e Avg Sprint velocity assumed to be 40 SP**, where as, for last number of quarters team is consistently maintaining a higher velocity). To the credit of this particular project team, it's successful in meeting sponsor expectations (The process works!?..so it seems.)

While some teams can get away with such transient process implementation (like the aforesaid team), in order to be successful over a long run, I would strongly recommend to bring in process rigor.

Agile is already lean on processes, but it requires a disciplined approach towards maximizing value from it's limited set of processes. Keeping with the ethos of 'Inspect and Adapt' if you plan to change any of the existing processes, consider this simple approach:
  • Make sure the process changes doesn't break any of the agile values or practices
  • As a project team, discuss and agree on the new set of processes to be adopted (if possible share with others as well - make it public)
  • As a team commit to the new processes with utmost discipline
Agile without discipline would result in Anarchy.
It may work for you today but you can never be sure how it turns up tomorrow.

Thoughts? Reactions?

*CTQ - Critical To Quality
**SP - Story Points

Monday, February 14, 2011

If Powerpoint were designed today..

Check out SlideRocket - Enables development of sleek presentations powered with
- Online polling
- Rich Media
- RealTime data
- Online sharing



Which feature(s) do you find to be useful?

Thursday, February 10, 2011

Recommended Reading: The Big Short

The fall of 'Lehman Brothers' in the later half of 2008 was a defining moment for me. Not as much for what Lehman stood for as for the resulting job losses in Lehman India (where some of my dear friends were proud employees once).

What I did not realize then, pretty obvious in hindsight, is the fall of Lehman Brothers had a more profound effect on wall street. This event marked the demise of high leverage Investment banking that was a hallmark of USA's capitalistic economy.

How did then this well oiled machine go so wrong? How come top notched financial innovations got punished by the very market they created?

Michael Lewis's 'The Big Short' takes throws light on what caused this catastrophe (biggest recession since 1930s'). A must read for all to understand how the fundamental weaknesses of the system (allowing esoteric high-leveraged deals), action (or rather inaction) of credit rating agencies such as Moody's S&P and above all the greed of Capitalist world joined hands to derail world's biggest economy.

Michael Lewis's deft treatment of such a prosaic topic is commendable. The sensitive handling of key protagonist coupled with thoughtful explanation of exotic financial instruments, makes the book, a compelling read.

Highly recommended.

Tuesday, January 25, 2011

My LinkedIn InMap


Shown above is my "InMap" (Infographics on my LinkedIn Connection).
My Reading? Got to connect with professionals from more diverse background.

Visualize your network at: http://inmaps.linkedinlabs.com

Sunday, January 9, 2011

Weekend reading

Three short links that caught my attention
  1. Free developer e-books: http://refcardz.dzone.com/
  2. Steps to use firebug-lite on Internet Explorer: link
  3. On a lighter note - 15 biggest flops in Tech for 2010