Wednesday, January 28, 2009
The process vs. experience paradigm: Establishing the PMO and managing the change
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.
Sunday, January 25, 2009
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.
#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
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.