Friday, May 22, 2009

களை எடுத்தல்

மென்பொருள் பயன்பாட்டில் வேறு யாரோ உருவாக்கிய நிரலில் பிழை திருத்துவது சிக்கலான வேலை. சரியான ஆவணம் இருந்தால் வேலை எளிதாக இருக்கும்.

ஒரு அனுபவம்.

ஒவ்வொரு செய்கையிலும் என்னென்ன நடக்கிறது, எந்த அட்டவணையில் தரவு உள்ளிடப் படுகிறது, உள்ளிட்டதும் என்ன விபரம் புதிதாக உருவாகிறது (primary key), குறிப்பிட்ட அட்டவணையில் என்னென்ன விபரங்கள் இன்னொரு அட்டவணையுடன் இணைக்கப்பட்டிருக்கிறது (foreign key) என்று புரிந்து கொள்ள வேண்டும். மொத்தம் மூன்றே மூன்று நிரல் கோப்புகளில் ஆறு அட்டவணைகளில் தரவு சேமிக்கப்படுகிறது.

இதை என்ன வடிவத்தில் ஆவணப்படுத்துவது என்று உருக்கொடுக்க வேண்டும். முதலில் தாளில் எழுத ஆரம்பித்தேன். அதை எங்கு சேமிப்பது, எப்படி பகிர்ந்து கொள்வது என்று எப்போதும் இருக்கும் சிக்கல். அடுத்தபடியாக ஒரு உரைக்கோப்பில் அட்டவணை விபரங்களை நகல் செய்து ஒட்டிக் கொண்டேன். அதைப் பார்த்தால் விபரம் எதுவும் தெளிவாக தெரிந்து விடப் போவதில்லை

ஒரு விரிதாளில் ஒவ்வொரு அட்டவணைக்கும் ஒரு வரி, அதனுடன் இணையும் அட்டவணைகள், இணைக்கும் விபரம் இவற்றைக் குறிப்பிட்டு க் கொள்ளலாம் என்று ஆரம்பித்தால், கொஞ்சம் தெளிவு ஏற்பட ஆரம்பித்தாலும் புதிதாகப் பார்ப்பவர்கள் புரிந்து கொள்ளும்படி இல்லை. ஒரு கதை படிப்பது போல அமைய வேண்டும். அடுத்த விரிதாளில் நடவடிக்களை, சேமிக்கப்படும் அட்டவணை விபரம், நிரல் கோப்பு, சுட்டியின் பெயர் என்று ஒரு வடிவம் கொடுத்தேன். இரண்டாவது நெடுவரிசையில்தான் முக்கியமான விபரங்கள் எல்லாம் இருக்கும்.

முதல் வரியில் அட்டவணையின் பெயர், இரண்டாவது வரியில் அதில் சேமிக்கப்படும் விபரம் சுருக்கமாக, மூன்றாவது வரியில் அது உருவாக்கும் keyன் பெயர் -> என்ற குறியீட்டுடன், அடுத்தடுத்த வரிகளில் அது இணைத்துக் கொள்ளும் அட்டவணை மற்றும் key பெயர்கள். key பெயர் <- அட்டவணை பெயர் என்ற வடிவம் கொடுத்தேன். மிகவும் நிறைவாக தெளிவாக வந்து விட்டது. கிட்டத்தட்ட மூன்றரை மணி நேர வேலையின் முடிவு அரைப்பக்க அளவில் சுருக்கமாக அமைந்து விடும்.

எதையும் சுருக்கமாகச் சொல்வதற்குத்தான் அதிக முயற்சி தேவைப்படுகிறது. வளவளவென்று நீளமாக எழுதிக் கொண்டே போவதற்கு திட்டமிடலோ, கட்டுப்பாடோ தேவையில்லை. அதன் வெளிப்பாடும் பார்ப்பவர்களுக்கு பலனுள்ளதாக இருக்காது. இன்னொரு நெடுவரிசையில் இந்த நடவடிக்கைகளால் வேறு எந்த அட்டவணையில் தரவு தானாக உள்ளிடப் படுகிறது, அதைச் செய்யும் இயக்கியின் பெயர் என்ன என்ற விபரத்தையும் குறித்துக் கொண்டேன்.

பயனர் கொடுத்த விபரங்களை வைத்து தரவுகளை சரி பார்த்தல். எல்லாமே சரியாகத்தான் இருந்தது. கடைசிக் கட்டத்தில் விபரங்களை எடுத்துக் கணக்கிட்டு காண்பிக்கும் இடத்தில் உதைப்பது போலத் தெரிந்தது. ஒவ்வொன்றாக தரவுத்தள வினாக்கள் எழுதி எழுதி இயக்கிப் பார்த்துக் கொண்டிருந்தேன். இரண்டு முனைகளிலிமிருந்து வினா எழுப்பி வரும் விடைகளை ஒப்பிட்டுப் பார்த்தால் சரியாகத்தான் இருந்தது. கணக்கிடுதலின் கூறுகளை தனியாகப் பிரித்துப் பார்த்தால் சரியாக வந்தது. சேர்த்து கணக்குப் போடும் கூட்டுத் தொகையில் தேவையில்லாத தொகுப்புகள் நடக்கின்றன என்று புரிந்தது.

ஒவ்வொரு தரவாக எடுத்து கணக்குப் போடாமல், எல்லாவற்றையும் ஒரே தொகுப்பாக கணக்குப் போடும்படி இயக்கியில் எழுதியிருந்தார்கள். அதை சரிபார்ப்பதற்கு இன்னொரு தம் பிடிக்க வேண்டும். எல்லா சிக்கல்களையும் அவிழ்ப்பதற்கு அடிப்படையிலிருந்து ஆரம்பிப்பது எளிமையான வழி.

கிரிக்கெட்டில் ஓடி வரும் பந்தைப் பிடிக்க ஒற்றைக் காலை மடக்கி பந்தை நோக்கி இருக்குமாறு ஒற்றைக்காலில் மண்டியிட்டு அந்தக் காலுக்கு முன்பு கையை வைத்து எதிர் கொள்ள வேண்டும். இரண்டு கால்களுக்கு நடுவில் குனிந்து கைகளை குவித்து நின்றால் கை தவறினால், கையைத் தாண்டிக் கொண்டு போனால், திரும்பி ஓட வேண்டியிருக்கும். முதல் முறையில் கை தவறினால் காலில் பட்டு நின்று விடும். முதல் முறையில் முதுகெலும்புக்கும் அழுத்தம் குறைவாக இருக்கும். எழுந்து ஓடுவதற்கும் சரியான கோணத்தில் இருப்போம்.

அந்த அடிப்படைகளை மறந்து மேல் நிலைகளில் யோசித்துக் கொண்டே இருந்தால் சிக்கல் அவிழாது. மின் கருவிகளில் பழுது, கணினியில் சிக்கல் என்று பார்க்கப் போகும் போது முதலில் மின்சார இணைப்பு சரியாக இருக்கிறதா என்பதிலிருந்து ஆரம்பிக்க வேண்டும். சுவிட்சு போடப் பட்டிருக்கிறதா என்று பார்ப்பது அதில் முதல் படி.

இணைய இணைப்பு இயங்கவில்லை என்றால், முதலில் நமது கணினியில் வலையமைப்பு சரியாக இருக்கிறதா என்று பார்த்து விட்டு அருகில் இருக்கும் கணினியுடன் தொடர்பு கொள்ள முடிகிறதா என்று தட்டிப் (ping செய்து) பார்க்க வேண்டும். அது சரி என்றால் நமது கணினி வலையமைப்பு சரியாக இயங்குகிறது.

அடுத்ததாக உள்ளுறை வலையமைப்பிலேயே இன்னொரு தொகுப்பில் இருக்கும் ஒரு கணினியைத் தட்டிப் பார்க்க வேண்டும். நமது பகுதிக்கும் மற்ற தொகுப்புகளுக்கும் இணைப்பு சரியாக இருக்கிறது. மூன்றாவதாக இணைய இணைப்பைத் தரும் கருவியை தட்டிப் பார்க்க வேண்டும். அது ஒரு வேளை இயங்காமல் அல்லது இணைப்பில் இல்லாமல் போயிருக்கலாம்.

அதுவும் சரியாக இருந்தால், இணையத்தில் இருக்கும் ஒரு இணைய எண்முகவரியை (IP address) தட்டிப் பார்க்க வேண்டும். ஒரு வேளை கணினி பெயர்களை இணைக்கும் வழங்கியில் குறை இருந்தால் பெயர் முகவரி இயங்காமல் இருக்கலாம். அதுவும் சரியாக இருந்தால், இணையத்தில் பிரபலமான பெரிய நிறுவனத் தளம் ஒன்றை முயற்சிக்க வேண்டும் (google.com). அதுவும் இணைகிறது என்றால் நாம் போக வேண்டிய தளத்தை தட்டிப் பார்க்கலாம்.

இப்படி ஒவ்வொன்றாக சரி செய்து கொண்டே வந்தால்தான் தீர்வு கிடைக்கும். ஆரம்பத்திலேயே நாம் போகும் தளத்தில் கணினி கோளாறு, அந்தத் தளம் இயங்கவில்லை என்று முடிவு செய்து விட்டால் சிக்கல் தீராது. விண்டோசு இயங்குதளத்தில் பல சிக்கல்களுக்கு கணினியை அணைத்து விட்டு மீண்டும் இயக்குவது என்று முயற்சிப்பார்கள். சிக்கல் சரியாகி விட்டால் மகிழ்ச்சி. என்ன சிக்கல், எப்படி சரியானது என்று புரியாமலேயே இருந்து விடும். அடுத்த தடவை இது மாதிரி பிரச்சனை ஏற்பட்டால் அணைத்து விட்டு இயக்கிக் கொள்ளலாம் என்று மட்டும் கற்றுக் கொள்வோம்.

Saturday, May 16, 2009

நிறுவனத் தொழில் முனைவு

(Intrepreneurship)

பொதுவாக ஒரு தொழில் நிறுவனத்தில் தலைமைப் பொறுப்பில் இருப்பவர், அல்லது உரிமையாளர் கடவுளாகப் பார்க்கப்படுகிறார். மற்றவர்கள் எல்லோரும் அவர் சொல்வதை சிரம் மேல் ஏற்று செயல்படுவார்கள். அவர் எல்லா முடிவுகளையும் எடுப்பார், மற்றவர்கள் அவர் சொல்வதைப் பின்பற்றி நடந்தால் போதும்.

பெரிய நிறுவனங்களில் இது போன்ற வழிபாட்டு முறைகள் குறைவு என்றாலும், கணிசமான அளவில் இருக்கத்தான் செய்கின்றன. என்னைப் பொறுத்தவரை பெரிய நிறுவனங்களில் வேலை பார்க்கும் போதும் சரி, லெதர்லிங்க் ஆரம்பித்த பிறகும் சரி, உயர் பதவி இருப்பவர்களை வழிபட வேண்டும் என்று நினைத்ததில்லை. அவர்களுக்கு நம்மை விட அனுபவர் அதிகம், வயதில் மூத்தவர்கள் அதனால் மதிப்பு உண்டு. ஆனால் அவர்கள் சொல்வதைக் கண்மூடித்தனமாக ஏற்றுக் கொள்ளும் பழக்கம் எப்போதும் இருந்ததில்லை.

அப்படி நடந்து கொள்பவர்களைப் பார்த்தால் எனக்கு இரக்கம்தான் வரும். அப்படி மனிதர்களை சிறுமைப்படுத்தும் முறை என்னால் புரிந்து கொள்ள முடியாமல்தான் இருக்கிறது. லெதர்லிங்கில் முதலிலிருந்தே என்னால் அப்படி ஒரு பாகுபாடு இருக்கும் என்று நினைத்துப் பார்க்கக் கூட முடியவில்லை. இனிமேலும் இருக்கக் கூடாது.

நிறுவனத்தில் சேரும் ஒவ்வொருவரும் மேலாளர்தான். தனக்குத் தாமே திட்டம் வகுத்துக் கொண்டு செயல்பட வேண்டும். குறிப்பிட்ட அனுபவம், திறமை வளர்ந்த பிறகு பெரிய பெரிய பெயர்களில் பதவிகளைக் கூட வகுத்துக் கொண்டோம். அதைப்பார்த்து கேள்விகள் கேட்டவர்களும் உண்டு. ஒவ்வொருவரும் முனைப்புடன் தனது பணிகளில் ஈடுபட வேண்டும்.

ஒருவர் பணி ஒன்றைச் செய்யும் போது மேலாளர் சொல்லி விட்டார் என்பதற்காகச் செய்யக் கூடாது. இதைச் செய்தால் வாடிக்கையாளருக்கு உண்மையான பலன் கிடைக்கும் என்பதை உணர்ந்து செய்ய வேண்டும். 'எனக்கு எதுவும் தெரியாது, தினமும் காலையில் வந்தால் எனக்குக் கொடுக்கப்பட்ட வேலையைச் செய்வேன், மாதா மாதம் சம்பளம் வந்தால் போதும்' என்று இருப்பது ஏற்றுக்கொள்ள முடியாதது. அப்படிப்பட்ட பொறுப்பை யாரும் எடுத்துக் கொள்வார்கள் என்று எதிர்பார்க்கக் கூடாது.

அரசு ஊழியர்களாக வேலை பார்ப்பவர்களுக்கு மிகவும் தெளிவாக வரையறுக்கப்பட்ட கடமைகள், ஊதிய விகிதங்கள் இருக்கும். அவர்கள் என்ன சம்பள உயர்வு கிடைக்கும், எப்பொழுது ஊதியக் குழு அமைக்கப்படும், சேமிப்பிலிருந்து எவ்வளவு முன்பணம் பெறலாம் என்றுதான் திட்டம் போட்டுக் கொண்டிருப்பார்கள். அதாவது வரவைப் பற்றி மட்டும் யோசித்துக் கொண்டிருப்பார்கள். வேலையைப் பற்றி யோசிப்பதற்குத் தேவையே இல்லை. அது அட்டவணைப்படி நடந்து கொண்டிருக்கும்.

அதிலும் சிலர் முனைப்பெடுத்து பெரிய பதவிகளுக்கு உயர்வதை குறிக்கோளாக வைத்து செயல்படுவார்கள். ஒரே நேரத்தில் ஆசிரியராகச் சேர்ந்தவர்களில் ஒருவர் பள்ளிப் பணியிலேயே ஓய்வு பெற்று விடுவார். இன்னொருவர் கல்வித்துறையில் உயர் பதவிகளுக்குப் போய்ச் சேருவார்.

தலை சிறந்த மருத்துவர், தட்டச்சு செய்பவரை வேலைக்கு வைத்திருக்கலாம். 'அவர் முதலாளி, எனக்கு படி அளப்பவர் என்று அவர் சொல்வதை எல்லாம் தட்டச்சு செய்வது என் கடமை' ஒரு பாணி. 'நோயாளிகளுக்குச் சிறந்த சேவை அளிப்பது நமது கூட்டுக் குறிக்கோள். அவர் மருத்து நிபுணர், மருத்துவம் தொடர்பான எல்லாவற்றுக்கும் அவர் பொறுப்பு. ஆவணப்படுத்துவது எல்லாம் நம்முடைய பொறுப்பு' என்ற நோக்குடன் செயல்பட்டால் ஆரோக்கியமாக இருக்கும்.

இன்போசிஸ் நிறுவனத்தைப் பாருங்கள். நாராயண மூர்த்தி தலைமைப் பொறுப்பில் இருந்தார். அவருக்குப் பிறகு நந்தன் நீலகேணி பொறுப்பேற்றார். அவரும் ஓய்வு பெற்று இப்போது கோபாலகிருஷ்ணன் பொறுப்பேற்றுக் கொண்டு விட்டார். வேலைகளை பகிர்ந்து கொண்டு முழுப் பொறுப்பையும் ஏற்றுக் கொள்ள வேண்டும்.

கிரிக்கெட் அணி அல்லது அமைச்சரவை இயங்கும் முறை அதை அடிப்படையாகக் கொண்டதுதான். அணித் தலைவர் அல்லது முதல் அமைச்சர் என்பவர் சமமான திறமை, பொறுப்பு இருக்கும் குழுவில் முதலில் இருப்பவர் (First among equals). ஒவ்வொருவரும் தமது பணித் துறையில் முழுமையாக செயல்படுவதுதான் நடைமுறை சாத்தியம், ஆரோக்கிய வளர்ச்சிக்குத் தேவை.

'நான் இது வரைதான் செய்வேன் அதற்குப் பிறகு எனக்குப் பொறுப்பு இல்லை' என்று சொல்வது சரிப்படாது

Friday, May 15, 2009

விற்பனை உத்திகள்

ஜோயல் ஆன் சாஃப்ட் வேர் ஜோயல் ஏதோ தொழில்நுட்பக் கருத்தரங்கு அமெரிக்காவின் பல்வேறு நகரங்களில் நடத்தப் போகிறாராம். அதில் கலந்து கொள்ள கட்டணம் $99 டாலர்கள் தலைக்கு. எல்லா நகரங்களிலும் பேசப் போகிறவர் ஜோயல். அவர் பேசப் போவது அவர்கள் நிறுவனம் தயாரித்து விற்கும் FogBugz என்ற மென்பொருள் பயன்படுத்துவதைக் குறித்து. அதைத் தவிர மற்ற பேச்சாளர்கள் பல்வேறு தொழில்நுட்பங்களைக் குறித்துப் பேசுவார்கள்.

http://joelonsoftware.com/items/2009/05/12.html

10 ஆண்டுகளாக வலைப்பதிவில் எழுதிய புகழை வைத்துக் கொண்டு அரித்துக் கொட்டுகிறார். அவரது மென்பொருளைப் பற்றிக் கேட்பதற்கு கட்டணம் கட்டி வரும்படி மற்றவர்களை தூண்டும் அளவுக்கு செல்வாக்கு ஈட்டியிருக்கிறார். இவர் எழுதுவது எல்லாம் பலனுள்ள தகவல்களை தரும். இவர் பேசும் போது அவரது நிறுவன மென்பொருளை அடிப்படையாக வைத்திருந்தாலும், அதிலிருந்து உருப்படியாக பலவற்றைக் கற்றுக் கொள்ளலாம் என்ற நம்பிக்கையை உருவாக்கியிருக்கிறார். அதனால்தான் $99 டாலர் கட்டி அவர்களது கருத்தரங்குக்கு வரும்படி மக்களை வரவேற்கிறார்.

அதுவும் எப்படி, முதலில் கருத்தரங்கு எந்த மாதிரி இருக்கும். எப்படிப்பட்ட பேச்சுக்கள் இருக்கும். எந்த மாதிரி பேச்சாளர்கள் வருவார்கள் என்று சொல்லி விட்டு, அதை ஏற்பாடு செய்ய எவ்வளவு செலவாகும் என்று ஒரு கணக்கு. ஆயிரக்கணக்கான டாலர்கள் கட்டணம் என்றால் இந்தப் பொருளாதாரச் சுணக்கத்தில் யாரும் வரப் போவதில்லை. அதனால் உங்களுக்காக $99 டாலரில் இதை ஏற்பாடு செய்கிறோம்.

கொஞ்சம் கீழே சாப்பாடு குறித்து சொல்கிறார். இந்த $99 டாலரில் சாப்பாடும், பானங்களும் அடங்கும். படிப்பவரின் மனதத்துவத்தை நன்கு புரிந்து கொண்டு எழுதியிருக்கிறார். ஆரம்பத்தில் அவர் சம்பாதித்து வைத்திருக்கும் நல்லெண்ணத்தை அடிப்படையாக தொடங்கி, முதலில் பலன்கள். அதன் பிறகு அதற்கு ஆகக் கூடிய செலவுகள் என்று ஒரு பெரிய தொகை, அதைத் தொடர்ந்து குறைந்த செலவிலேயே எப்படி கலந்து கொள்ளலாம் என்று குறிப்பு, தொடர்ந்து அந்த கட்டணத்துக்கே இன்னும் என்ன கிடைக்கிறது என்ற விபரங்கள். இறுதியாக 300 பேருக்கான இடங்கள் சீக்கிரம் நிரம்பி விடும். முந்துங்கள் என்று சொல்லும் வாக்கியங்கள்.

ஒரு விற்பனை ஆவணம் இப்படித்தான் இருக்க வேண்டும். நமது தகுதியை முதலில் குறிப்பிட வேண்டும். நாம் சொல்வதை ஏன் அவர்கள் ஏற்றுக் கொள்ள வேண்டும் என்பதை நிறுவி விட்டு, என்னென்ன ஆதாயங்கள் கிடைக்கும் என்று சொல்ல வேண்டும். அந்த ஆதாயத்தைப் பெறுவதற்கு பொதுவாக என்னென்ன செலவாகும் என்று சொல்ல வேண்டும். நாம் அதே பணிகளை அந்த செலவில் நான்கில் ஒரு பங்கில் கொடுக்கத் தயாராக இருக்கிறோம். அதைத் தொடர்ந்து நமது சேவையில் கூடுதல் என்னென்ன நன்மைகள். இறுதியாக கொஞ்சம் பிகு செய்து கொள்ள வேண்டும். படிப்பவர் இதை வாங்கா விட்டால் நாம் எதையோ தவற விட்டு விடுவோம் என்று நினைக்கும் படி இருக்க வேண்டும்.