Wednesday, December 30, 2009

Vacation Photos - Kumbakonam




Bookmark and Share

Vacation update


One more movie and 10 kms




All movies courtesy Reenu!
Bookmark and Share

Monday, August 3, 2009

Greatest prime factor of a number: Project Euler Problem 3 in python

I think this converges fairly fast and is also based on the additive nature of primal factors. Further , it kind of leads into why primes get rarer (and hence this can be use to converge to prime factors)

Algorithm explained
Start with the smallest prime(p=2) and divide the evil number (e)
If it divides, extract he largest power of 2 from e possible.
--The divisor now is divisible by a prime factor greater than 2 and can utmost be e/2^i
--increment p to 3 and so on. Also check if e/3 is less than 3. This forms the outer limit

If the smallest prime (p=2) does not divide the number (e), even better for us
-- The number is divisible by something greater than 2 and hence, the other factor is less than e/2.
-- increment p by 1 and check if less than e/2. redo from 1st step

Heres the program,

# Problem 3 - to find the largest prime factor of a number

n= 600851475143

z=n

i = gcf = 2
while i <>
if n%i == 0:
x = 1
while (n%(i**x)) == 0:
x = x + 1
z =n/(i**(x-1))
n = z
gcf = z
print i," power ",x-1, " and other divisor is ", z
else:
z = n/i
gcf=n
i=i+1

print "The program is complete and the gratest prime factor is ", gcf

Saturday, May 23, 2009

Path to process maturity - establishing benchmark processes

Simplify, understand, deploy and then enrich

Establishing a process from a benchmark, is not straightforward. While most people beleive that the benchmark shoul help bring them to maturity,

The process of establishment is a 4 step process

1. Take the benchmark and simplify - water it down and you will hate yourself for doing it
2. Get people to understand the elements, intent and purpose. Very often a complex process evokes fear, hence, having a process with just the core (obvious) intent fulfilled is a good starting point.
3 and 4. Use the process a couple of times, each time enriching the process. Ensure that the next project builds on the past projects process

One of the key roles of the PMO is to identify with the help of the senior management, the key deliverables from programs and work the above process to the benchmark. We have all heard the statement, it (the benchmark) works in company Y not here. It needs to be suited to our culture and organization. The above are 4 steps to align and get to the benchmark in your organizations context.

Sunday, May 3, 2009

Challenges in moving to a project matrix organizations: People change management

Changing organization structures from a deep functional to a project matrix, involves substantial challenges in people management. There are  broad guidelines that may be useful 
  1. Keep the end in mind - very often it is "courses for horses". You do fit your organization to the best people you have, period. Hence, neither your organization structure nor your role definitions for the new structure will be perfect. It is critical to identify what are the 1~2 items that you will NOT compromise [ Example, when establishing a program management organization, having it function neutral may be a critical rule. You can still accommodate people and new structures , provided you stick to this broad rule]
  2. Changes have to be enforced once decided. There are 3 techniques - most textbooks talk of just two to handle the resistance to change
  • (a) Carrot - make people comfortable and show them the possible growth paths/career plan in the new structure
  • (b) Stick - make organizational compliance mandatory. Preached easily, but difficult to practice with your best guys
  • (c) Inaction! or wait - Several fears arise due to fear of the unknown. In any change management effort, the only way to overcome this residual fear, is not by more written definitions, but often , by pushing the people into their new waters and waiting for them to settle down. [For those of you who have travelled by Indian Railways, passengers are finicky and fight for their seats only till the train starts. For the next 6-10 or 24 hrs they all settle down into well oiled positions without any external intervention. This is probably cultural, but then thats what change management is all about!!]
These may sound simplistic, but having a gameplan like this in mind and also documenting the new org structure, rules and approaches help to improve on a continuous basis.

Tuesday, April 21, 2009

Branding the key metrics: Making metrics stick

Most change management programs and PMO struggle to deliver key metrics to senior management because of poor traction with operating and senior management.

To make a metrics program successful, the 1 or 2 (at most) reports should be branded with a name. Branding and retaining the key metrics into a report say Q25 or T20 or 9box , enables recall and drives continuity to a changing/improving set of metrics.

Further, this can also be incorporated into training programs / presentations at all levels to ensure importance and recall. A generic non-branded report such as a project report can easily be abused / modified and mis-understood diluting the needs of project reporting.

Sunday, March 29, 2009

PMO Maturity Model with respect to Project Issues: Value add from PMO


Most senior management expect the PMO to be aware of risks in projects based on (1) their interactions with project teams (2) cross project experiences



The 3 levels of maturity of a PMO are

1. Initial: The PMO is still getting to be aware of the programs/structure and processes. Further, the rapport with the program manager will determine the extent of the risk awareness

2. Reporting: The processes have been established. Techniques to effectively capture risk and resolve are commonly accepted by program teams and PMO. The project leaders are also confident of the methodology and the PMO is aware of the risks known to the project teams

3. Value added : The PMO has been well established and is working over a range of projects. Cross functional project experience enables the PMO to foresee risks in the program not self evident to the project teams.

Every organizations leadership wants PMOs to ramp up as fast as possible to Maturity level 3.

Sunday, March 22, 2009

How many thoughts per day and what goes to reduce them


I read three things this weekend that got me thinking - (1) Smarter people do think faster , (2)More than 55000 thoughts pass our mind daily and(3) 90+% of the thought is repetitive.
Just correlating this with my busiest times, they had the fewest thoughts - especially when I was programming Eulers problems

Friday, March 13, 2009

PMO survey and the PDCA

The PDCA (Plan do check act) cycle is a great tool in deploying any process. Simply put, the PMOs critical role is deploying project management best practices for value delivery. In this context, 
  • Plan - Training and competence building + staffing / resource planning for programs (This includes involvement of PMO in strategic planning)
  • Do - Support for greater functions and projects
  • Check - Metrics and tracking
  • Act - Continuous improvement
As PMOs mature (Over 3~5 years) , the check and act become more critical and important. For nascent PMOs, the first 2 are important. I think, this has come out very well in this excellent survey - PMO survey and webcast

Tuesday, March 10, 2009

Job rotation and Innovation

I have always beleived that more than 3 years in a role gets you to a state in which you can walk around with a coffee cup any day of the week you decide. Its also true, that only way to retain energy and innovate - This article How to keep innovating is just about what I keep echoing

Tuesday, March 3, 2009

Video uploads and an interesting Flickr clock

Flckr now introduces Video. I think their clock animation is a very cool way to get introduced to video 
Compared to YouTube which makes secure sharing a nightmare , I found Vimeo good, easy to use and secure.

Sunday, March 1, 2009

Buridans ass and developing a human infrastructure for performance

Buridans ass is a classic where there is a thirsty and hungry donkey and lack of random events(a nudge of the donkey)  could be standing equidistant from both Food and Water.

In real-life there are 2 learnings from this - 
1. The difficult thing is to create ways by which you establish a means to measure and reward setting up the infrastructure for performance (getting food and water and the thirst donkey) in its place. Otherwise , there is always a winner take all of a new person who could potntially reap the benefits of the predecessor by nudging the donkey for performance
2. Innovation is the nudge. Most of us are in the process of hunting for food and water (incentives) with a process of linear thinking. The nudge creates the move to food or water in a different way since the world is full of opportunity anyway.

Credits: Fooled by randomness for leading me to Buridans ass

Thursday, February 26, 2009

Program Metrics Dashboard design guidelines: 10 useful guidelines from experience

I have been experimenting with some metrics design dashboards for pipeline tracking of programs. I have used these guidelines and tricks

1. Keep it simple - the chances of making a super heavy dashboard is high - stick to fixed number of metrics (You want to add something, You have to delete something! - crude but effectie rule)
2. Let users use an excel sheet or a web page - dont make them use a complex database
3. Make users fill directly into a dashboard like page - that way they know how it will look rather than them filling a form and you creating a dashboard. This also provides them instant feedback on performance
4. On most companies, poorly performing programs report far fewer metrics than better ones. [A symptom of what you dont measure you dont manage (I dont beleive that you manage by just measuring though)]. More in the "red" zone is a better sign than No metrics. REPORT % of metrics filled in your dashboard
5. Achieve balance - report on cost, quality, purchasing, sourcing, delivery , issues et al. Failing to achieve balance will scuttle all-round execution and delay programs.
6. Follow  some simple xls rules: Validate everything using Data Validation rules, Use input messages that are descriptive, use comments in xls, format each cell based on the input format you need, unlock entry cells and protect worksheets,Test with sample data before distributing! - It is much better to do all this before you get it to the programs than to send out a poorly validated set of measures dashboard
7. Use charts were possible to break monotony
8. Keep improving and standardizing - it is important to let users know where to look for what information.
9. Create a mapping file for creating a summary from all project xls files and load into access or any enterprise database that you have. It is improtant to archive both plans and actuals on the monthly or quarterly rates at which PMO collects information.
10. Create also a reverse mapped dashboard to generate any of the metrics dasboard reports from the database.

Sunday, February 22, 2009

The negative spiral of poor process adherence.

Most companies are complaining of insufficient resources for the wrong reasons (I believe having more ideas and initiatives and hence no resources is a good scenario)


Short term
People want to do things fast (or atleast think they can) by short cutting processes. Poor process adherence (in intent) leads to poor quality and capability build up. This results in fires. Fires result in a surge in resource requirements. Sudden surges cant be met with external resources. They are met by redeployment from other processes and projects. By the time the problem is fixes, the other processes with poor resources are way behind schedules resulting in people want to things faster! - Indeed a fantastic negative spiral!

Long term
Further, in the long run, poor process adherence leads to no metrics and continuous improvement. Resulting in poor capability buildup (and inflexibility). This results in poor business efficiencies and results. This leads to fires and patchwork.

This is probably the only real reason to create and execute to processes even at the risk of first time being a little late - The net result will always be better than getting into the negative spiral


Thursday, February 19, 2009

Wednesday, February 18, 2009

Structuring the PMO


The debate between heavyweight vs. light weight PMO is less important than the freedom/authority and reporting given to Program Managers. Often the structure of the PMO is done only to facilitate span of control and less by decision on design of the PMO.


The structuring of projects into logical blocks or programs is an interesting way to control span of control without having a heavyweight PMO (This provides accountability with program managers and also the required span of control). Delivering a KRA definition of Program Managers is critical to success of the organization.

See article from where I picked the picture above for the reference.

Friday, February 13, 2009

How simple should metrics be?

There are 3 things that we need to remember,
  • Rapid growth - you have too many things to measure and too many ways for things to go wrong
  • Impact of the blackberry gen - You need to give the information as fast as possible for a drill down
  • Information overload - too many reporting frameworks means that both executives and staff need things simple
At the same time, over-simplification can also be due to poor thinking. I have seen that the pyramid principle is one of the best ways to ensure better thinking and yet ensure simplicity.

Sunday, February 8, 2009

Janani Seemandham Video - Trichy - Restricted list






Tuesday, February 3, 2009

Systems thinking and Product planning - Theres a hole in the bucket dear Lisa



Most product planners (program managers and PMO) spend a lot of time taking calls to break negative loops and establishing positive spirals. It is easy to get caught in organizational politics and a new process into the "hole in the bucket" scenario.

How to paste data from excel into an existing table in MS access 2007 without appending records

1. Export the table from access to excel
2. Update the records in excel
3. Create a form (datasheet) in access
4. Select the column(s) you have updated in excel
5. Select the column in the access form
6. Select paste special in access and paste as text

This retains updation in the order of the primary key and is fairly useful if you update based on excel sheets. Its usually better than  having a linked table.


Wednesday, January 28, 2009

The process vs. experience paradigm: Establishing the PMO and managing the change

Establishing the PMO ,especially a process for product introduction is a challenge. Any established company trying to establish a new process is "running the trains and laying the tracks" at the same time.
Any process that does not match with intuition (experience based) is discounted as a poor process. Similarly, any new process that does not throw new insights is also discounted as a heavy process for doing something intuitively or from experience. Hence, establishing benefit of a new process is balancing the fine line.
We have also heard common complaints that there is no spirit in the templates and deliverable. People are churning the wheels without the spirit - so what is the "spirit". There are also numerous form vs. content debates
A proposed methodology is
1. Fill the forms/templates/deliverable
2. Check with common sense, get feedback on the content from experts
3. Create a conclusion from the deliverable
4. Highlight issues and closure plans, force learning's from the team (and incorporate in process)

The benefit of the process is only if we can ramp-up learning and standardize across programs to get the benefits of experience standardized.

Every one of these steps must be orchestrated for key programs by the PMO. Hence, while PMO strives for training members on the deliverables, it is crucial to drive debate on the content and signoff on outputs.

Saturday, January 24, 2009

How I maintain my mp3 library using python

I use a combination of iTunes , iTunes updater and Media Monkey . Use media monkey to update the tags, and iTunes updater to read it into iTunes. I use iTunes since I like the interface to listen to my music.


This was after cleaning up with my own scripts for the folders that I inherited. I use a python file MP3Xplor.py to read the directory and the tags into a excel file (using pipe separated txt). I then correct it and send it back using the MP3Change.py file. 
MP3Xplor.py
#!/usr/bin/env python
#coding=utf-8
import ID3Writer
import id3reader

fIn = open('in.txt','r')

sStr= fIn.readline()

while sStr:
lStr = sStr.split("|")


fN = lStr[0]
id3r = id3reader.Reader(fN)
tr = id3r.getValue('track')
try:
tr = int(tr)
except:
tr = 1
art = id3r.getValue('performer')
tit = id3r.getValue('title')
yr = str(id3r.getValue('year'))
lbl = id3r.getValue('label')
ttltr = id3r.getValue('totaltracks')
try:
ttltr = int(ttltr)
except:
ttltr = 1

id3w = ID3Writer.Writer(fN,tr,lStr[2],lStr[3],lStr[1],yr,lbl,ttltr)
sStr = fIn.readline()

MP3Change.py
import os
#from tagger import *
import id3reader
fOut = open ("out.txt", 'w')
mp3attribs = ['album','performer','title','genre']
sStr = ""

for roots,dirs,files in os.walk(r'H:\Karthik\Music\Carnatic Music\Ariyakudi'):
for f in files:
if os.path.splitext(f)[1]=='.mp3':
fN = os.path.join(roots,f)
id3r = id3reader.Reader(fN)
i=0
sStr = sStr + roots+"|"+ f +"|"+fN
while i < len(mp3attribs):
sStr=sStr+"|"+str(id3r.getValue(mp3attribs[i]))
i=i+1
sStr = sStr + "\n"
fOut.write(sStr)
## i3 = ID3v1(fN)
## print roots,"|",f,"|",i3.album,"|",i3.artist,"|",i3.genre

Thursday, January 22, 2009

Know your boss to profit


Attention span and learning differ. What you need to do to get your point across cannot be one formula fits all.

Readers - Reads everything/ Does not believe that it is work unless it has prose beyond 250 pages
Skimmers - Can retain 3 points. Needs to be 1 page and should be understood by all. Try the cabby first
Tearers - Cannot read until they criticise it
Discussers - Cannot read or understand unless explained. Usually prolonged discussions
Writers - Most difficult to get the point across - need to contribute to understand

You can do MBTI and other tricks to type cast your boss, but gettng your OWN fundamental definition of the boss is critical to get YOUR message across.


Sunday, January 18, 2009

The need for support in a PLM implementation

The need for support in a PLM implementation

Typically training for PLM implementations involve users accessing online training material or classes. The real need for training is however, when they start using the system. Any training material placed when keying in details and availability of a person at hand greatly enhances success of PLM implementation.(The latter being the MOST effective)

Some tips when supporting users:

1. Take them from their current system to the new system - what this means? - The support staff need to be trained on the legacy system PLM is replacing. Users will continue to ask you for "How to's" in the context of their current systems

2. Distribute adequate online training material and handouts before training

3. Ensure all process owners are trained atleast once before go-live

4. Provide additional buffer support personell for (a) Retraining users who missed out training (b) enhancements that need to be compleed immedeately after go-live

5. For complex user problems, instruct support staff to say "I dont know" and ask the L2 / L3 support members rather than complicating the situation wherein user has to rework information

My experience with major module go live has been that call logs come down by around a sixth in about 4 months.


The "perfect data migration"

The "perfect data migration"

Data migration from any legacy system to PLM involves substantial work especially if the legacy is quite large

Most data migrations suffer loss and inconsistsncy theat can be quite dangerous and often involve substantial rework

The typical sources for data loss are

1. Lack of corresponding attributes (often attributes in relationships)

2. Lack of emphasis at the time of data migration since the history and use of the attribute is not known to several members

3. Incorrect and inconsistent use of attributes in the legacy system leading to problems in splitting and assigning to correct attributes

4. Unstructured information (Textual and pictorial) information in legacy systems

Some solutions

1. My experience is that it is better to migrate the data even if unstructured to reduce reliance on legacy systems.

2. Further converting common reports from legacy systems and attaching to parts/BOMs may also be useful

3. Ensure that all major data migration activities are complete before starting usage and not just the bare minmum to work. Usually, the development team has to work on quick enhancements to support users and hence, time for subsequent data migration is not there.

 

 

My new Sony Vaio

My office gave me a Sony Vaio VGN-TX37GP - Sony Vaio VGN-TX37GP Weighs about a kg and is one of the slickest I have seen!