<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4415926011471879807</id><updated>2012-01-27T01:53:27.337-05:00</updated><category term='subsystems'/><category term='solution'/><category term='logs'/><category term='P4V'/><category term='technical staff'/><category term='bug'/><category term='free'/><category term='instructor'/><category term='cheap'/><category term='community'/><category term='proposal'/><category term='source code control'/><category term='Oracle PL/SQL'/><category term='enabled'/><category term='upgrade'/><category term='network down'/><category term='Rogue Wave'/><category term='consultants'/><category term='Reddit'/><category term='extension'/><category term='string functions'/><category term='snoring'/><category term='next generation'/><category term='build machine'/><category term='Rational Clearcase'/><category term='legacy tools'/><category term='contractor'/><category term='find file'/><category term='confusion'/><category term='stakeholders'/><category term='variable types'/><category term='sample code'/><category term='distributed'/><category term='New York'/><category term='vice president'/><category term='binary tree'/><category term='policy'/><category term='Oracle 8'/><category term='delivery'/><category term='ideas'/><category term='Word'/><category term='hours'/><category term='work around'/><category term='Groovy'/><category term='Secure FTP'/><category term='CRT'/><category term='initiative'/><category term='online'/><category term='interview'/><category term='team lead'/><category term='stand up meeting'/><category term='orphan'/><category term='routines'/><category term='CD'/><category term='lightweight'/><category term='Bluetooth'/><category term='design'/><category term='meetings'/><category term='directors'/><category term='text files'/><category term='Days Open'/><category term='conferences'/><category term='compiler'/><category term='Black of Hat'/><category term='mail'/><category term='COTS'/><category term='Electronic Arts'/><category term='problem reports'/><category term='introduction'/><category term='abbreviations'/><category term='TFTP'/><category term='accent'/><category term='drive'/><category term='Programming Praxis'/><category term='Gigabytes'/><category term='debugger'/><category term='CRON'/><category term='tie'/><category term='deep review'/><category term='project manager'/><category term='military'/><category term='application'/><category term='Lisp'/><category term='tasks'/><category term='application server'/><category term='executable'/><category term='Intel Atom'/><category term='directory chooser'/><category term='multitask'/><category term='builds'/><category term='course'/><category term='tester'/><category term='computer'/><category term='tuning'/><category term='spirit'/><category term='green card'/><category term='orientation'/><category term='Jester'/><category term='skillset'/><category term='services'/><category term='new guy'/><category term='Silent Bob'/><category term='productivity'/><category term='code'/><category term='code diff'/><category term='execellence'/><category term='attitude'/><category term='shoes'/><category term='business analysts'/><category term='specification'/><category term='sick leave'/><category term='troll'/><category term='implementation'/><category term='deletion'/><category term='Boolean'/><category term='degree'/><category term='mission'/><category term='technical debt'/><category term='trouble tickets'/><category term='IOU'/><category term='huddle'/><category term='transfer'/><category term='pass the buck'/><category term='DoD'/><category term='consultant'/><category term='commitment'/><category term='Ruby'/><category term='special cases'/><category term='ownership'/><category term='hissing'/><category term='linked list'/><category term='Type A'/><category term='log'/><category term='architect'/><category term='add-in'/><category term='team'/><category term='reimbursement'/><category term='associate'/><category term='social media'/><category term='new development'/><category term='CString'/><category term='caching'/><category term='system administrators'/><category term='DirectX'/><category term='mobile'/><category term='mock up'/><category term='mitigation'/><category term='intrinsic motivation'/><category term='installation'/><category term='funny'/><category term='vacations'/><category term='graduates'/><category term='domain name'/><category term='emergencies'/><category term='abort'/><category term='reward'/><category term='hubs'/><category term='presentation'/><category term='code base'/><category term='outsourcing'/><category term='pointers'/><category term='encryption'/><category term='queries'/><category term='Code Stiker'/><category term='integration skills'/><category term='HR'/><category term='launch'/><category term='FAX'/><category term='performance'/><category term='acceptance team'/><category term='OOP. tools'/><category term='strings'/><category term='bonus'/><category term='utility'/><category term='broken'/><category term='lead software engineers'/><category term='walk through'/><category term='authority'/><category term='boredom'/><category term='transition'/><category term='instinct'/><category term='state'/><category term='briefcase'/><category term='Matz'/><category term='integration'/><category term='hacked'/><category term='COBOL'/><category term='estimates'/><category term='effort'/><category term='software'/><category term='errors'/><category term='death march'/><category term='interviews'/><category term='messages'/><category term='slytherin'/><category term='stories'/><category term='distribution lists'/><category term='nested loops'/><category term='virtual space'/><category term='probing questions'/><category term='users'/><category term='GWT'/><category term='technologies'/><category term='complex'/><category term='reputation'/><category term='night'/><category term='Oracle 10g'/><category term='Mount Fuji'/><category term='fast'/><category term='snake'/><category term='directory'/><category term='good design'/><category term='help'/><category term='SWAG'/><category term='code reviews'/><category term='tiltering'/><category term='superstars'/><category term='CD-ROM'/><category term='sabotage'/><category term='requirements process'/><category term='degraded'/><category term='download'/><category term='register'/><category term='developers'/><category term='WinDiff'/><category term='metrics'/><category term='peer review'/><category term='consulting'/><category term='new technology'/><category term='requirements analysis'/><category term='script'/><category term='forms'/><category term='background'/><category term='teleconference'/><category term='assumptions'/><category term='road'/><category term='balanced'/><category term='ADO'/><category term='Oracle 11G'/><category term='volunteer'/><category term='debug'/><category term='sharing'/><category term='GPA'/><category term='NULL'/><category term='OLE DB'/><category term='guru'/><category term='videos'/><category term='goals'/><category term='JRE'/><category term='audit'/><category term='network storage'/><category term='VB'/><category term='horror stories'/><category term='toll'/><category term='job offer'/><category term='taskbar'/><category term='lunch'/><category term='source'/><category term='close'/><category term='stack'/><category term='Maven'/><category term='back end'/><category term='flame'/><category term='kick off build'/><category term='Microsoft Vista'/><category term='features'/><category term='iPad'/><category term='failure'/><category term='referral'/><category term='diagnosis'/><category term='SmartBear'/><category term='morale'/><category term='volunteers'/><category term='processing'/><category term='work locations'/><category term='stock options'/><category term='tools'/><category term='icons'/><category term='FrameMaker'/><category term='Hack'/><category term='exterme programming'/><category term='Business Objects XI'/><category term='bugs'/><category term='Outlook'/><category term='books'/><category term='client server'/><category term='passionate'/><category term='legacy systems'/><category term='high priority'/><category term='Windows'/><category term='deliverables'/><category term='assignments'/><category term='mainframe'/><category term='end'/><category term='check out'/><category term='inheritance'/><category term='SAP'/><category term='audio'/><category term='Protecode'/><category term='job'/><category term='TDD'/><category term='copy'/><category term='FTP'/><category term='stored proc'/><category term='hard coded'/><category term='outsource'/><category term='invite'/><category term='latop'/><category term='overworkd'/><category term='college classes'/><category term='quit'/><category term='newbie'/><category term='crontab'/><category term='training'/><category term='primadonna'/><category term='data point'/><category term='demos'/><category term='system'/><category term='high price'/><category term='drama'/><category term='price'/><category term='host'/><category term='PDF'/><category term='SP2-0750'/><category term='release manager'/><category term='title'/><category term='Perl'/><category term='battery'/><category term='old systems'/><category term='big boss'/><category term='late'/><category term='computers'/><category term='disaster'/><category term='corrupt'/><category term='static text'/><category term='report'/><category term='relocation'/><category term='problems'/><category term='unemployment'/><category term='pain'/><category term='Scrum'/><category term='suctomer'/><category term='OOP'/><category term='marketing'/><category term='navigator'/><category term='network'/><category term='structures'/><category term='sick'/><category term='project'/><category term='error'/><category term='campus'/><category term='Python'/><category term='lines of code'/><category term='subject matter expert'/><category term='milestone'/><category term='support'/><category term='skills'/><category term='twenty percent'/><category term='TeamForge'/><category term='legacy'/><category term='reboot'/><category term='system admin'/><category term='customers'/><category term='explorer'/><category term='development tools'/><category term='Oracle'/><category term='risk'/><category term='understanding'/><category term='deal'/><category term='meets expectations'/><category term='tailoring'/><category term='worker'/><category term='competent'/><category term='plain text'/><category term='programmer'/><category term='encrypt'/><category term='System 4'/><category term='virtual machine'/><category term='web programming'/><category term='externally identified'/><category term='blank sheet'/><category term='Facebook'/><category term='repository'/><category term='iPod Touch'/><category term='manual'/><category term='knowledge'/><category term='candidates'/><category term='early'/><category term='cloud computing'/><category term='gym'/><category term='COM'/><category term='predict'/><category term='fight'/><category term='Google'/><category term='SQL*Plus'/><category term='data fix'/><category term='costs'/><category term='pay'/><category term='hardening'/><category term='CS degree'/><category term='clearcase'/><category term='US citizens'/><category term='IBM PC'/><category term='web site'/><category term='career'/><category term='work requests'/><category term='emergency'/><category term='numbers'/><category term='downvoting'/><category term='maintain'/><category term='P4Win'/><category term='SQL join'/><category term='scheduling'/><category term='install'/><category term='managers'/><category term='real world'/><category term='discussion'/><category term='boss'/><category term='OCX'/><category term='MDAC'/><category term='Release'/><category term='exceeds'/><category term='recruiting'/><category term='branch'/><category term='projects'/><category term='functions'/><category term='open source'/><category term='wait option'/><category term='Uninstallshield'/><category term='too good'/><category term='USENET'/><category term='validation'/><category term='shortcut'/><category term='product'/><category term='XAML'/><category term='home'/><category term='LOC'/><category term='values'/><category term='blind'/><category term='intelligence'/><category term='Perforce'/><category term='cases'/><category term='Apache Ant'/><category term='e-mail'/><category term='client site'/><category term='Program Administrator'/><category term='business logic'/><category term='duplication'/><category term='laptop'/><category term='changes'/><category term='contest'/><category term='estimate'/><category term='strcpy_s'/><category term='threads'/><category term='promote'/><category term='reports'/><category term='verification'/><category term='technical'/><category term='refactoring'/><category term='critical'/><category term='security'/><category term='mistakes'/><category term='tech skills'/><category term='netbooks'/><category term='badge'/><category term='DLL'/><category term='extrinsic motivation'/><category term='approval'/><category term='teams'/><category term='compile'/><category term='salary'/><category term='pilot'/><category term='details'/><category term='hacker'/><category term='hiring'/><category term='billing'/><category term='resume'/><category term='Gang of Four'/><category term='IBM Rational Rose'/><category term='Smart Bear Software'/><category term='trouble ticket'/><category term='overwork'/><category term='plan'/><category term='fixing bugs'/><category term='colocation'/><category term='impact'/><category term='HTML'/><category term='build scripts'/><category term='IT management'/><category term='busy'/><category term='Joel on Software'/><category term='Process'/><category term='font size'/><category term='Al Sweigart'/><category term='Visual C++'/><category term='JavaScript'/><category term='architecture'/><category term='noise'/><category term='revenues'/><category term='third party product'/><category term='cursing'/><category term='big'/><category term='wiki'/><category term='Macrovision'/><category term='follow through'/><category term='Universes'/><category term='debugging'/><category term='organization'/><category term='dynamic'/><category term='box'/><category term='Visual Studio 2005'/><category term='ISV'/><category term='desires'/><category term='DataConnector'/><category term='developer. interview. design. Code'/><category term='work week'/><category term='temp files'/><category term='Reports Builder'/><category term='duties'/><category term='SaaS'/><category term='ALM'/><category term='spreadsheet'/><category term='feedback'/><category term='picture'/><category term='issues'/><category term='enterprise'/><category term='bad day'/><category term='smarter'/><category term='Visual Basic'/><category term='domain'/><category term='Spring'/><category term='traversal'/><category term='Grady Booch'/><category term='code review'/><category term='const'/><category term='reassigned'/><category term='recession'/><category term='production database'/><category term='aborting'/><category term='Nortel'/><category term='research'/><category term='Bay area'/><category term='budget'/><category term='worst case'/><category term='page file'/><category term='stored procedure'/><category term='vacation'/><category term='politics'/><category term='programming'/><category term='flexible'/><category term='weekend'/><category term='C Primer Plus'/><category term='learn'/><category term='config'/><category term='computer games'/><category term='combination'/><category term='depresion'/><category term='job offers'/><category term='jobs'/><category term='raise'/><category term='matrix'/><category term='salaried'/><category term='conference calls'/><category term='hard drive'/><category term='ear rings'/><category term='parser'/><category term='snow'/><category term='data'/><category term='database table'/><category term='progress'/><category term='password'/><category term='MKS Toolkit'/><category term='change requests'/><category term='toolkit'/><category term='web application'/><category term='logging'/><category term='Windows XP'/><category term='Visual Studio'/><category term='The Daily WTF'/><category term='quota'/><category term='acceptance test'/><category term='customer'/><category term='new'/><category term='has a'/><category term='UI'/><category term='interfaces'/><category term='interruptions'/><category term='halt'/><category term='local disk drives'/><category term='specific examples'/><category term='sprint'/><category term='Keep Alive'/><category term='expectations'/><category term='Visual Studio 6'/><category term='VPN'/><category term='NetMeeting'/><category term='no'/><category term='resources'/><category term='projection'/><category term='license'/><category term='email'/><category term='WTF'/><category term='settle'/><category term='username'/><category term='defects'/><category term='Apache'/><category term='parking'/><category term='offices'/><category term='ORDER BY'/><category term='variables'/><category term='Struts'/><category term='resignation'/><category term='CSS'/><category term='business object'/><category term='charge'/><category term='compensation'/><category term='Subversion'/><category term='schedule'/><category term='Oracle Pro*C'/><category term='senior'/><category term='commit'/><category term='best practices'/><category term='graphics'/><category term='SOP'/><category term='Haack'/><category term='WinZip'/><category term='reinstall'/><category term='trim'/><category term='unit test coverage'/><category term='Seth Godin'/><category term='bad news'/><category term='fire'/><category term='negotiation'/><category term='magazines'/><category term='code changes'/><category term='Rietveld'/><category term='puzzles'/><category term='unit testing'/><category term='DQL'/><category term='community college'/><category term='fix'/><category term='directed graph'/><category term='hobbyists'/><category term='enhancements'/><category term='body shop'/><category term='buzzwords'/><category term='answers'/><category term='technology'/><category term='benefits'/><category term='weekend work'/><category term='Microsoft'/><category term='ETL'/><category term='Installshield LE'/><category term='smart'/><category term='looks'/><category term='retirement'/><category term='status'/><category term='audits'/><category term='access denied'/><category term='leadership'/><category term='VGA'/><category term='new features'/><category term='human resources'/><category term='Outlook Express'/><category term='saving money'/><category term='portable'/><category term='PowerShell'/><category term='technician'/><category term='suit'/><category term='file groups'/><category term='compilation'/><category term='contact'/><category term='error message'/><category term='unistd'/><category term='ratings'/><category term='maintenance'/><category term='source control'/><category term='programming language'/><category term='Ruby on Rails'/><category term='senior developer'/><category term='Oracle 10g client'/><category term='development manager'/><category term='scripts'/><category term='update'/><category term='paper'/><category term='message box'/><category term='driver'/><category term='C programs'/><category term='scenarios'/><category term='emergencyt'/><category term='Murphy’s law'/><category term='artwork'/><category term='tricks'/><category term='blackmail'/><category term='VIA Nano'/><category term='program'/><category term='libraries'/><category term='novice'/><category term='PHP'/><category term='print'/><category term='sys admin'/><category term='MFC'/><category term='dllexport'/><category term='source code'/><category term='review tools'/><category term='supplies'/><category term='RAD'/><category term='WPF'/><category term='Ant'/><category term='management'/><category term='theories'/><category term='dismissal'/><category term='man hole covers'/><category term='database context'/><category term='commute'/><category term='priorirty trouble'/><category term='market share'/><category term='Business Layer'/><category term='use cases'/><category term='display'/><category term='relationship'/><category term='documentation'/><category term='staying late'/><category term='web'/><category term='C'/><category term='Amazon'/><category term='commercial'/><category term='PL/SQL'/><category term='asserts'/><category term='encrypted'/><category term='phone'/><category term='Focus'/><category term='WF'/><category term='flyer'/><category term='standard'/><category term='query results'/><category term='XAudio2'/><category term='programmers'/><category term='teacher'/><category term='cm'/><category term='sales'/><category term='LinkedIn'/><category term='coordination'/><category term='Fair Issac'/><category term='installer'/><category term='planner'/><category term='overhead'/><category term='cover letters'/><category term='rearchitecture'/><category term='FICO'/><category term='review'/><category term='Adobe'/><category term='depend'/><category term='screen resolution'/><category term='customer meeting'/><category term='positions'/><category term='controls'/><category term='tracking'/><category term='Kensington'/><category term='scope'/><category term='economy'/><category term='design document'/><category term='test cases'/><category term='college'/><category term='XML'/><category term='wins'/><category term='architects'/><category term='print statements'/><category term='redesign'/><category term='Martin'/><category term='correct'/><category term='Windows XP Home Edition'/><category term='reproduce'/><category term='boring'/><category term='ATL'/><category term='presenting'/><category term='interviewing'/><category term='JourneyEd'/><category term='Rolexes'/><category term='learn by doing'/><category term='workstation'/><category term='requirements'/><category term='Java runtime environment'/><category term='revenue'/><category term='Lotus Notes'/><category term='roll out'/><category term='prototype'/><category term='recursion'/><category term='mentor'/><category term='lint'/><category term='correctness'/><category term='articles'/><category term='system administrator'/><category term='CodeReviewer'/><category term='Twitter'/><category term='design patterns'/><category term='layoff'/><category term='recreate'/><category term='IT'/><category term='EMC'/><category term='fixing'/><category term='AJAX'/><category term='trademark'/><category term='change'/><category term='Visual C++ 2005'/><category term='RAM'/><category term='Shane Battier'/><category term='Torvalds'/><category term='delivery date'/><category term='Congress'/><category term='duplicate'/><category term='emotions'/><category term='delete'/><category term='OCI'/><category term='release mode'/><category term='analysis'/><category term='contingency'/><category term='SafeBoot'/><category term='Sprint Zero'/><category term='class'/><category term='laptops'/><category term='Software Arts'/><category term='customer support'/><category term='error codes'/><category term='physical access'/><category term='programming languages'/><category term='lesson'/><category term='breakpoints'/><category term='recommendations'/><category term='merge'/><category term='junior developer'/><category term='crash'/><category term='Mouse Wheel'/><category term='overtime'/><category term='headhunters'/><category term='Microsoft Office'/><category term='Y Combinator'/><category term='IzPack'/><category term='random'/><category term='views'/><category term='Java Development Kit'/><category term='director'/><category term='sign off'/><category term='experience'/><category term='calls'/><category term='policies'/><category term='Java'/><category term='hire'/><category term='rate'/><category term='major'/><category term='API'/><category term='configuration management'/><category term='time'/><category term='GUI controls'/><category term='TaskbarGlomming'/><category term='tests'/><category term='blogger'/><category term='testers'/><category term='WCF'/><category term='binary search tr4ee'/><category term='bad data'/><category term='nodes'/><category term='abstraction'/><category term='ship'/><category term='history'/><category term='search'/><category term='Java devlopers'/><category term='new blood'/><category term='command line'/><category term='user interfaces'/><category term='technical support'/><category term='coworker'/><category term='traffic'/><category term='metadata'/><category term='acceptance testers'/><category term='estimation'/><category term='help desk'/><category term='package'/><category term='PrimoPDF'/><category term='pseudo code'/><category term='pseudocode'/><category term='debug mode'/><category term='development'/><category term='production'/><category term='unacceptable'/><category term='Java Run Time'/><category term='competition'/><category term='speakers'/><category term='updates'/><category term='team leads'/><category term='resolution'/><category term='service'/><category term='adaptable'/><category term='Doctor Dobb&apos;s'/><category term='CMMi'/><category term='practice'/><category term='disappeared'/><category term='ISO standard'/><category term='configuration'/><category term='backlog'/><category term='free book'/><category term='subcontractors'/><category term='desks'/><category term='developer'/><category term='priority'/><category term='PL/SQL package'/><category term='work'/><category term='balance'/><category term='door'/><category term='bad software'/><category term='conference call'/><category term='worker thread'/><category term='refactor'/><category term='lock'/><category term='design docs'/><category term='success'/><category term='information'/><category term='staff'/><category term='order'/><category term='expensive'/><category term='memory'/><category term='employment'/><category term='test team'/><category term='critical path'/><category term='guarantee'/><category term='iPhone'/><category term='Agile'/><category term='build'/><category term='Django'/><category term='Dan Bricklin'/><category term='functional specification'/><category term='Lotus 1-2-3'/><category term='waterfall'/><category term='updater'/><category term='external'/><category term='framework'/><category term='surprise'/><category term='recompete'/><category term='reassign'/><category term='label'/><category term='Excel'/><category term='garbage'/><category term='Crystal Reports'/><category term='challenge'/><category term='Scrollable'/><category term='minimum wag'/><category term='client'/><category term='trapped'/><category term='efficiency'/><category term='unit tests'/><category term='executive'/><category term='general solution'/><category term='IDE'/><category term='public speaking'/><category term='triggers'/><category term='results'/><category term='OEMRESOURCES'/><category term='planning'/><category term='AppsLib'/><category term='user interface'/><category term='deadlines'/><category term='disk storage'/><category term='error messages'/><category term='open standards'/><category term='Information Technology'/><category term='free tools'/><category term='persevere'/><category term='hardware'/><category term='business calls'/><category term='promotion'/><category term='baseline'/><category term='Windows registry'/><category term='stored procedures'/><category term='sensitive'/><category term='header'/><category term='cell phone'/><category term='cron job'/><category term='administrator'/><category term='recruiters'/><category term='meeting'/><category term='BRMS'/><category term='version'/><category term='web services'/><category term='thread'/><category term='band aid'/><category term='fighting'/><category term='EXE'/><category term='Linux'/><category term='end users'/><category term='task'/><category term='Sharepoint'/><category term='server'/><category term='exception'/><category term='project management'/><category term='Ubuntu'/><category term='headquarters'/><category term='report engine'/><category term='questions'/><category term='Dialogs'/><category term='problem'/><category term='test data'/><category term='templates'/><category term='Pro*C'/><category term='SQL'/><category term='resource loading'/><category term='hotel'/><category term='registry'/><category term='singleton'/><category term='Hibernate'/><category term='ads'/><category term='bug tracking'/><category term='column'/><category term='cost of living'/><category term='peers'/><category term='syntax'/><category term='VIP'/><category term='requirement'/><category term='binary'/><category term='rush'/><category term='rewrite'/><category term='quality assurance'/><category term='test'/><category term='MSDN'/><category term='Objective Toolkit'/><category term='travel'/><category term='cost'/><category term='OBM_CHECKBOXES'/><category term='inbox'/><category term='cast'/><category term='hite'/><category term='Oracle Reports'/><category term='pitcher'/><category term='roles'/><category term='Rule of Three'/><category term='lead'/><category term='maintainability'/><category term='leader'/><category term='benefit'/><category term='loads data'/><category term='waiting'/><category term='Zip'/><category term='business'/><category term='reviews'/><category term='advice'/><category term='logic'/><category term='slow'/><category term='audience'/><category term='customer service'/><category term='log file'/><category term='manage'/><category term='.NET Framework'/><category term='algorithm'/><category term='breakdown'/><category term='system requirements'/><category term='string libary'/><category term='internet test'/><category term='subroutines'/><category term='pair programming'/><category term='construction'/><category term='editor'/><category term='social networks'/><category term='people'/><category term='business rule'/><category term='good will'/><category term='supermodel'/><category term='business requirements'/><category term='coding'/><category term='augment'/><category term='decompile'/><category term='drinks'/><category term='DBA'/><category term='quality'/><category term='confession'/><category term='testing'/><category term='Dan Saks'/><category term='expense'/><category term='broke'/><category term='skill'/><category term='locking'/><category term='EULA'/><category term='process logic'/><category term='UNIX'/><category term='setup'/><category term='pricing'/><category term='rules'/><category term='new guys'/><category term='responsibility'/><category term='linker'/><category term='contract'/><category term='admin'/><category term='cache'/><category term='open file dialog'/><category term='Rational Tool Suite'/><category term='top guys'/><category term='perfume'/><category term='load'/><category term='manager'/><category term='complexity'/><category term='domain knowledge'/><category term='global temporary table'/><category term='mandatory'/><category term='long functions'/><category term='string'/><category term='C++'/><category term='tables'/><category term='processes'/><category term='slacker'/><category term='unit test'/><category term='business domain'/><category term='business rules'/><category term='dynamic arrays'/><category term='pay cut'/><category term='Washington DC'/><category term='port'/><category term='advisor'/><category term='Android'/><category term='database'/><category term='objective'/><category term='pants'/><category term='subproblem'/><category term='steps to duplicate'/><category term='office'/><category term='web pages'/><category term='stress'/><category term='functionality'/><category term='luncheon'/><category term='employees'/><category term='sorting'/><category term='name'/><category term='synonyms'/><category term='communication'/><category term='business cards'/><category term='Microsoft Project'/><category term='WSGI'/><category term='blog'/><category term='employer'/><category term='constraint'/><category term='botched'/><category term='salesman'/><category term='pagination'/><category term='disk space'/><category term='clean up'/><category term='deliveries'/><category term='assignment operator'/><category term='airline seats'/><category term='food'/><category term='OWB'/><category term='dates'/><category term='intermittent'/><category term='IE'/><category term='Installshield'/><category term='fail'/><category term='fixes'/><category term='specifics'/><category term='korn shell'/><category term='warning'/><category term='assembly language'/><category term='WiFi'/><category term='system administration'/><category term='profile'/><category term='money'/><title type='text'>Software Maintenance</title><subtitle type='html'>The daily work involved to support a suite of software applications used across the nation.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://susops.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default?start-index=101&amp;max-results=100'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>472</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-5669497142534260435</id><published>2012-01-27T01:48:00.003-05:00</published><updated>2012-01-27T01:53:27.346-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='configuration'/><category scheme='http://www.blogger.com/atom/ns#' term='managers'/><category scheme='http://www.blogger.com/atom/ns#' term='error messages'/><title type='text'>Logical Deduction Flaws</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/-CVUMsncaD5g/TyJI56nb1UI/AAAAAAAACGY/85mBSRYIHFE/s1600/Holmes.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 214px; height: 320px;" src="http://3.bp.blogspot.com/-CVUMsncaD5g/TyJI56nb1UI/AAAAAAAACGY/85mBSRYIHFE/s320/Holmes.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5702200238028870978" /&gt;&lt;/a&gt;My team got some trouble tickets from the customer. The team lead assigned a high priority problem to me. I studied the error messages. Then I took a look at the code. I deduced that if all was set up correctly, there was only one way these errors could occur. I sent directions to the customer on how to reconfigure to avoid the error. Then I got tasked with helping out another team.&lt;br /&gt;&lt;br /&gt;My recommendations were met with a lot of resistance from the customer. They questioned my logic. And they were not happy with my recommendations. The top manager from the customer organization asked me to investigate further. Then the top manager from my company told me to get busy on this.&lt;br /&gt;&lt;br /&gt;Luckily I had finished helping that other team. I decided to not take on any other work while I worked this top priority problem. I looked deeply at the examples from the customer. I traced each SQL statement with the data from the production database. That's when I spotted some bed setup data.&lt;br /&gt;&lt;br /&gt;My failure was that I assumed all the setup data was correct. Incorrect assumption. I also did not spend enough time on analysis because I was busy. Error number two. Now armed with the full picture, I can address the customer problem. Although they were unhappy with my first attempt, I am sure they will be relieved when I correct the underlying problems.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-5669497142534260435?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/5669497142534260435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=5669497142534260435' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5669497142534260435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5669497142534260435'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2012/01/logical-deduction-flaws.html' title='Logical Deduction Flaws'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-CVUMsncaD5g/TyJI56nb1UI/AAAAAAAACGY/85mBSRYIHFE/s72-c/Holmes.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-7287800325227820269</id><published>2012-01-26T02:16:00.002-05:00</published><updated>2012-01-26T02:22:39.926-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='help'/><category scheme='http://www.blogger.com/atom/ns#' term='problems'/><category scheme='http://www.blogger.com/atom/ns#' term='meeting'/><category scheme='http://www.blogger.com/atom/ns#' term='data point'/><category scheme='http://www.blogger.com/atom/ns#' term='processing'/><title type='text'>Trouble with Changes</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/-qyVgG7mfsXs/TyD96lUZTII/AAAAAAAACGM/np8TxtMNr-0/s1600/Changes.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 300px; height: 235px;" src="http://2.bp.blogspot.com/-qyVgG7mfsXs/TyD96lUZTII/AAAAAAAACGM/np8TxtMNr-0/s320/Changes.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5701836311142943874" /&gt;&lt;/a&gt;Today our customer reported a few high priority problems with our apps. My team lead had me look at one of them. Based on some business knowledge, alone with some screen shots of the error, I figured it out. After that I thought I deserved a lunch.&lt;br /&gt;&lt;br /&gt;After I picked up some take out, I found that a meeting was called to talk about the trouble ticket assignments. I thought I was safe because I knocked out a problem in record time. Nope. A guy on another team was having a hard time and needed help. I wanted to talk with him. But he was stuck in meetings all afternoon. I went with the one email he was able to send out.&lt;br /&gt;&lt;br /&gt;I tracked down the processing that had occurred on the data. There was a lot of processing that looked missing. That was a good data point. I traced back the properties of the data and found out we were not supposed to do any processing due to some initial requirements. After I talked with the developer needing help, I found there were more examples of the problems.&lt;br /&gt;&lt;br /&gt;I analyzed the data and confirmed we erroneously skipped some processing. At first my findings matched those of the developer. There was no way the code was going to skip this stuff. Then I recalled helping another developer on this team. He had some code that was loading variables in the wrong order. He fixed the code, but not clean up the data. The fix was also late to make it into production. Ouch.&lt;br /&gt;&lt;br /&gt;Once I explained the history of the code changes, the light came on in the developer's mind. He said this explanation matched some other weird errors that got logged. I am thankful I knew about the work of the other developer (who has since left the company). Sometimes a little knowledge of past work goes a long way in bug tracking.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-7287800325227820269?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/7287800325227820269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=7287800325227820269' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7287800325227820269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7287800325227820269'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2012/01/trouble-with-changes.html' title='Trouble with Changes'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-qyVgG7mfsXs/TyD96lUZTII/AAAAAAAACGM/np8TxtMNr-0/s72-c/Changes.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-8934280053853079941</id><published>2012-01-24T22:08:00.003-05:00</published><updated>2012-01-24T22:13:45.743-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='upgrade'/><category scheme='http://www.blogger.com/atom/ns#' term='Rational Tool Suite'/><category scheme='http://www.blogger.com/atom/ns#' term='system administrator'/><title type='text'>Virtual Desktop Conundrum</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-DZs1jpmzCJM/Tx9yWONmAJI/AAAAAAAACGA/GOtQHzRcqTc/s1600/VDE.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 256px; height: 256px;" src="http://4.bp.blogspot.com/-DZs1jpmzCJM/Tx9yWONmAJI/AAAAAAAACGA/GOtQHzRcqTc/s320/VDE.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5701401379372138642" /&gt;&lt;/a&gt;Last year I needed an upgrade of my Rational Tools Suite. The system administrator who did the upgrade was unable to complete the task. I asked him to try again. He could not get the new software installed. I then asked him to escalate the problem to IBM. No dice.&lt;br /&gt;&lt;br /&gt;My virtual desktop was without Rational Tools. Ouch. The system administrator recommended he redo the whole virtual desktop from scratch. Seeing how I just lost my Rational Tools, I decided against that. I did have one other virtual desktop that had the right version of the Rational Tool Suite. With the two virtual desktops, I am still able to do my job.&lt;br /&gt;&lt;br /&gt;The plan from my manager was to get a new virtual desktop with all the software installed. A member of the customer organization was to get me the new desktop. Well eventually I got it. But nobody was scheduled to install all the software. Eventually somebody called to see if the trouble ticket to get my new desktop could be closed. No way. I don't have a working machine. Now my team lead has to sort through this mess. Oh boy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-8934280053853079941?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/8934280053853079941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=8934280053853079941' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/8934280053853079941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/8934280053853079941'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2012/01/virtual-desktop-conundrum.html' title='Virtual Desktop Conundrum'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-DZs1jpmzCJM/Tx9yWONmAJI/AAAAAAAACGA/GOtQHzRcqTc/s72-c/VDE.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-7350350322087615219</id><published>2011-12-29T20:40:00.003-05:00</published><updated>2011-12-29T20:47:11.323-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='graduates'/><category scheme='http://www.blogger.com/atom/ns#' term='degree'/><category scheme='http://www.blogger.com/atom/ns#' term='cost of living'/><category scheme='http://www.blogger.com/atom/ns#' term='Bay area'/><title type='text'>Salary Survey</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-7oIu1NW3FSQ/Tv0WnDVomxI/AAAAAAAACFE/KodM8kKjtN8/s1600/Money.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5691730364232932114" border="0" alt="" src="http://4.bp.blogspot.com/-7oIu1NW3FSQ/Tv0WnDVomxI/AAAAAAAACFE/KodM8kKjtN8/s320/Money.jpg" /&gt;&lt;/a&gt;I just read the survey results of Stanford grads. The outlook appears very positive. Average salary for bacherlor's degree was $80k. Master's average was $94k. And PhD average was $132k. In addition to the salary, most were offered goodies like stock options and signing bonuses.&lt;br /&gt;&lt;br /&gt;This seems in line with the average Carnegie Mellon bachelor's degree starting pay of $85k. Note that most of Standford's grads work in the San Francisco Bay area. So the salaries might be higher due to the cost of living there. Stanford is also not your run of the mill university.&lt;br /&gt;&lt;br /&gt;I visited a small college not known for its computer science program. The department chair said that grads with bachelor's degrees made aruond $60k. And master's degrees commanded over $80k. Not bad at all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-7350350322087615219?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/7350350322087615219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=7350350322087615219' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7350350322087615219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7350350322087615219'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/12/salary-survey.html' title='Salary Survey'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-7oIu1NW3FSQ/Tv0WnDVomxI/AAAAAAAACFE/KodM8kKjtN8/s72-c/Money.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-8082590545002399730</id><published>2011-12-29T15:45:00.004-05:00</published><updated>2011-12-29T15:51:12.670-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='developers'/><category scheme='http://www.blogger.com/atom/ns#' term='skills'/><category scheme='http://www.blogger.com/atom/ns#' term='recruiting'/><title type='text'>Hot Skills in Software Development</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/-GMvB5Uh-vT0/TvzRgwJ_ptI/AAAAAAAACE4/ygNDV06Ubxs/s1600/Hot.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 240px; FLOAT: left; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5691654389702305490" border="0" alt="" src="http://1.bp.blogspot.com/-GMvB5Uh-vT0/TvzRgwJ_ptI/AAAAAAAACE4/ygNDV06Ubxs/s320/Hot.jpg" /&gt;&lt;/a&gt;One of the recruiting companies listed some top paying jobs in the NYC. Here are some development positions from the Top 10:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;PHP Developer $96k&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Python Developer $103k&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Java Developer $104k&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ruby Developer $106k&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Strangely enough, another recruiting firms said that top skills for the upcoming year are HTML5, MongoDB (No SQL), iOS, Android, and Mobile. A lot of these fall under the mobile development umbrella. They do not correspond to the NYC top paid positions.&lt;br /&gt;&lt;br /&gt;I guess the take away is that it is hard to quantify what is hot. But you can take some of these skills and learn them. There is hardly any downside. You might help yourself to a better job with higher pay.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-8082590545002399730?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/8082590545002399730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=8082590545002399730' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/8082590545002399730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/8082590545002399730'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/12/hot-skills-in-software-development.html' title='Hot Skills in Software Development'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-GMvB5Uh-vT0/TvzRgwJ_ptI/AAAAAAAACE4/ygNDV06Ubxs/s72-c/Hot.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-5729679586888830756</id><published>2011-12-28T20:55:00.002-05:00</published><updated>2011-12-28T21:01:05.745-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='employer'/><category scheme='http://www.blogger.com/atom/ns#' term='training'/><category scheme='http://www.blogger.com/atom/ns#' term='budget'/><category scheme='http://www.blogger.com/atom/ns#' term='college classes'/><title type='text'>Ruby on Rails Training Outcry</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-JFxRbXxYxZU/TvvIt5ub30I/AAAAAAAACEs/dqUdB8jQvxg/s1600/Ruby.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 300px; height: 296px;" src="http://4.bp.blogspot.com/-JFxRbXxYxZU/TvvIt5ub30I/AAAAAAAACEs/dqUdB8jQvxg/s320/Ruby.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5691363245028007746" /&gt;&lt;/a&gt;There is a six week Ruby on Rails training class starting up in NYC. Developers are getting salty because it costs a whopping $2800. I guess if you are a starving developer, $2800 is way over your training budget. But wouldn't you want to get your employer to foot the bill.&lt;br /&gt;&lt;br /&gt;The cost does not sound that bad based on what you are doing. I have gone to numerous one week classes that cost $2000++. Compared to those, the six week Ruby class seems like a steal. Then again, I got my employer to eat the full cost. Sure it got counted against my training budget at work. But no money flowed out of my wallet for the class.&lt;br /&gt;&lt;br /&gt;The pricing model itself almost classifies the course as employer funded training. I am really glad my employer provides me with a guaranteed benefit of paid training each year. The funny thing is that my employer is loose with the money, but never wants me to be away from my day job. Weird.&lt;br /&gt;&lt;br /&gt;These days I usually spend the training budget on college classes that meet in the evening. So it turns out to be a win win. However I pay a whole lot less for my college classes than the Ruby course. It does not matter. I can't get off from work for a week, let alone the duration of the six week Ruby course.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-5729679586888830756?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/5729679586888830756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=5729679586888830756' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5729679586888830756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5729679586888830756'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/12/blog-post.html' title='Ruby on Rails Training Outcry'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-JFxRbXxYxZU/TvvIt5ub30I/AAAAAAAACEs/dqUdB8jQvxg/s72-c/Ruby.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-6657578675271159739</id><published>2011-12-23T14:43:00.002-05:00</published><updated>2011-12-23T14:48:55.970-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='source'/><category scheme='http://www.blogger.com/atom/ns#' term='acceptance team'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>Assume Nothing</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/-lj3AQvOP1g0/TvTaB0TzRfI/AAAAAAAACEg/cg_wqAkitCA/s1600/Assume.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 189px;" src="http://1.bp.blogspot.com/-lj3AQvOP1g0/TvTaB0TzRfI/AAAAAAAACEg/cg_wqAkitCA/s320/Assume.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5689411954032199154" /&gt;&lt;/a&gt;Next year we are getting some data from a new source. I was tasked with making sure that programs which depend on this data use the new source. No problem. I knew where the old data got stored. I pointed the code to this previoius position. And I shipped the code.&lt;br /&gt;&lt;br /&gt;Our customer has an acceptance team which tries to test everything. They told me my code was not working as expected. I checked it out and found that they were right. So I traced the problem back to the &lt;a href="http://ora-pl-sql.blogspot.com/"&gt;database&lt;/a&gt;. It looks like the new data was getting put into a new place. That couldn't be right.&lt;br /&gt;&lt;br /&gt;I asked around and found that the new source named the data a little different. Therefore new elements were created in the database. I was referencing the old elements. But I told them that it was just a new way to get the same data. It should go in the same tables and columns.&lt;br /&gt;&lt;br /&gt;Then I realized the error of my ways. You should trust nothing. Even the obvious will not be obvious to all. I spent about a week going over options on how to fix this. We needed buy in from the customer since it was late in the development cycle. Luckily the command decision was for those upstream guys would put the data in the expected columns. Whew.&lt;br /&gt;&lt;br /&gt;The decision by the stakeholders meant I did not have to change my code. Next time I will validate all my assumptions, even the silly ones.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-6657578675271159739?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/6657578675271159739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=6657578675271159739' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/6657578675271159739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/6657578675271159739'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/12/assume-nothing.html' title='Assume Nothing'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-lj3AQvOP1g0/TvTaB0TzRfI/AAAAAAAACEg/cg_wqAkitCA/s72-c/Assume.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-3909670327889870312</id><published>2011-12-15T13:13:00.002-05:00</published><updated>2011-12-15T13:19:24.639-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='team lead'/><category scheme='http://www.blogger.com/atom/ns#' term='ETL'/><category scheme='http://www.blogger.com/atom/ns#' term='subject matter expert'/><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><title type='text'>Help Wanted</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/-n5Xaw4Dxjl0/Tuo5HVrToiI/AAAAAAAACEU/SXqhINm6UPg/s1600/Help.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 213px;" src="http://1.bp.blogspot.com/-n5Xaw4Dxjl0/Tuo5HVrToiI/AAAAAAAACEU/SXqhINm6UPg/s320/Help.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5686420277749326370" /&gt;&lt;/a&gt;We have an Extracts, Transform, and Loads (ETL) team on our project. They take care of a lot of backend stuff. Basically if our system communicates with some other systems, this team handles the communication. The subject matter expert from this team left the company this year. He was looking for some stability. Good for him.&lt;br /&gt;&lt;br /&gt;Last week the team lead of the ETL Team left the company. He had been planning this for about 6 months. There are still some developers left on the team. But they are of the variety that need a lot of direction. I came to this understanding recently when interacting with one of them.&lt;br /&gt;&lt;br /&gt;The customer acceptance team found what seemed to be a bug in the system. I got volunteered to do some leg work on the issue. I had the tester run some queries. Then I tested the app in a development environment. Finally I came to the conclusion that the loads were not populating a required database table. Then I referred the problem to the ETL Team.&lt;br /&gt;&lt;br /&gt;I got a call from one of the ETL guys. He asked if I had any ideas on how to proceed. What? I walked him through my findings, which I had provided him along the way. Then I gave him some ideas. He started on them. But he got confused and asked if I could help interpret some of the results. Oh oh. I feel a trap coming on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-3909670327889870312?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/3909670327889870312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=3909670327889870312' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/3909670327889870312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/3909670327889870312'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/12/help-wanted.html' title='Help Wanted'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-n5Xaw4Dxjl0/Tuo5HVrToiI/AAAAAAAACEU/SXqhINm6UPg/s72-c/Help.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-2776501129378338743</id><published>2011-12-13T12:55:00.003-05:00</published><updated>2011-12-13T13:01:13.536-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='community college'/><category scheme='http://www.blogger.com/atom/ns#' term='referral'/><category scheme='http://www.blogger.com/atom/ns#' term='teacher'/><title type='text'>On Hiring</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/-YMXEVGTDnnA/TueRvoRFGKI/AAAAAAAACDw/YlKrtUQmzt4/s1600/Community.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 264px;" src="http://1.bp.blogspot.com/-YMXEVGTDnnA/TueRvoRFGKI/AAAAAAAACDw/YlKrtUQmzt4/s320/Community.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5685673302027475106" /&gt;&lt;/a&gt;I am frequently taking community college classes to brush up on technical topics. Although I could learn the material on my own, I like the pace that the classes help me keep. It is also an opportunity to network with the leaders of tomorrow.&lt;br /&gt;&lt;br /&gt;I keep my eyes out for exceptional talent in my classes. When I find it, I try to make a connection. It is not easy. But I am working it. There was one web development I had with a crazy teacher. He seemed to like to fail people in his class. His assignments would trip you up. Then he would give you a zero. Did I mention he was crazy?&lt;br /&gt;&lt;br /&gt;There was one student who excelled in this biazrro web development class. I knew right away she was one of the shining stars. So I kept in touch with her. Recently she has gotten tired of fooling around in her down time. Therefore she is looking for a job. I jumped at the opportunity to get my company to hire her. Unfortunately we don't hire people from community colleges.&lt;br /&gt;&lt;br /&gt;What? Okay I get it. We get a lot of applicants for very little openings. And we use the college you went to as a filter. That's fine. But I keep getting emails from recruiting asking whether I know anyone good to refer for a job. Referrals are the best way to attract top talent. It doesn't matter though. I suspect we lost the chance to hire this to performer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-2776501129378338743?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/2776501129378338743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=2776501129378338743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/2776501129378338743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/2776501129378338743'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/12/on-hiring.html' title='On Hiring'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-YMXEVGTDnnA/TueRvoRFGKI/AAAAAAAACDw/YlKrtUQmzt4/s72-c/Community.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-4799544691303653749</id><published>2011-12-09T17:48:00.002-05:00</published><updated>2011-12-09T17:53:53.283-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='synonyms'/><category scheme='http://www.blogger.com/atom/ns#' term='research'/><category scheme='http://www.blogger.com/atom/ns#' term='compile'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><title type='text'>Help Needed</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/-ALQFtfzD3yE/TuKQa9uiPHI/AAAAAAAACDk/pDfNH2L8KSQ/s1600/Compile.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 214px; height: 320px;" src="http://2.bp.blogspot.com/-ALQFtfzD3yE/TuKQa9uiPHI/AAAAAAAACDk/pDfNH2L8KSQ/s320/Compile.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5684264472615730290" /&gt;&lt;/a&gt;I got a call for help from a member of another team on our project. He was a newer guy assigned to research a trouble ticket. He found some code that was supposedly not working correctly. I asked him what his concerns were. He told me he could not compile the code. Oh oh.&lt;br /&gt;&lt;br /&gt;Now this code is an Oracle PL/SQL pacakge. It is a bit tricky. The code is written against a bunch of synonyms. The synonyms normally point to tables created by the loading application. The tables go away when the code is done. So I guess I could see why this might be a problem to compile. But if you can't compile, you can get anywhere with the problem.&lt;br /&gt;&lt;br /&gt;I pointed the new developer to another script which creates a bunch of dummy tables with the correct structure. The script also generates the synonyms and points them to the dummy tables. That way you can at least compile the PL/SQL package. Then I get a call from this guy's boss. Apparently they spent a few days on the problem and were getting nowhere.&lt;br /&gt;&lt;br /&gt;I eventually looked over their data and identified a problem with the record definition and SQL population. That's a story for another blog though.&lt;a href="http://ora-pl-sql.blogspot.com/2011/12/record-types.html"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-4799544691303653749?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/4799544691303653749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=4799544691303653749' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/4799544691303653749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/4799544691303653749'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/12/help-needed.html' title='Help Needed'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-ALQFtfzD3yE/TuKQa9uiPHI/AAAAAAAACDk/pDfNH2L8KSQ/s72-c/Compile.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-5682741326828184022</id><published>2011-11-30T01:14:00.004-05:00</published><updated>2011-11-30T01:18:43.467-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='directors'/><category scheme='http://www.blogger.com/atom/ns#' term='lead software engineers'/><category scheme='http://www.blogger.com/atom/ns#' term='managers'/><title type='text'>More on Google</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/-PZFxkDEv994/TtXKvHOfZII/AAAAAAAACCo/YIhtiHXsuvw/s1600/Lead.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/-PZFxkDEv994/TtXKvHOfZII/AAAAAAAACCo/YIhtiHXsuvw/s320/Lead.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5680669415740236930" /&gt;&lt;/a&gt;Previously I had mentioned that lead software engineers at Google make over $200k per year. That alone is a significant statistic. However there is more to the story than that. These lead lead engineers make more money than other positions at Google such as managers and directors. Bamm.&lt;br /&gt;&lt;br /&gt;In normal companies, managers usually make more money than the people they manage. And directors definitely are near the top of the food chain. But not at Google. Perhaps that is because they are very selective of who they hire for lead software engineer. Or perhaps it is because the company was founded by engineers.&lt;br /&gt;&lt;br /&gt;Whatever the case, Google will make it worth your while to be the top developer at the place where only top developers get hired.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-5682741326828184022?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/5682741326828184022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=5682741326828184022' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5682741326828184022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5682741326828184022'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/11/more-on-google.html' title='More on Google'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-PZFxkDEv994/TtXKvHOfZII/AAAAAAAACCo/YIhtiHXsuvw/s72-c/Lead.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-2104565880943780259</id><published>2011-10-13T11:51:00.002-04:00</published><updated>2011-10-13T11:56:32.886-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='superstars'/><category scheme='http://www.blogger.com/atom/ns#' term='rate'/><category scheme='http://www.blogger.com/atom/ns#' term='stock options'/><category scheme='http://www.blogger.com/atom/ns#' term='expensive'/><title type='text'>Lead Software Engineer</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/-9kZMf9VO16U/TpcJMjbbS7I/AAAAAAAACA8/475Rhb3xmiE/s1600/Lead.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 283px; height: 188px;" src="http://3.bp.blogspot.com/-9kZMf9VO16U/TpcJMjbbS7I/AAAAAAAACA8/475Rhb3xmiE/s320/Lead.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5663005167715044274" /&gt;&lt;/a&gt;I just learned that the top lead software engineers at Google make between $220k and $240k per year. Oh snap. That is about $100k more than what I consider the going rate for lead software engineers is. I wonder if these engineers are also getting stock options that could be worth more.&lt;br /&gt;&lt;br /&gt;Maybe a bit of the high wages is the location. I figure it is probably expensive to own a house out by Google headquarters. And we all know that Google is very selective in its hiring. They hire superstars. You know. The get guys like James &lt;a href="http://enableassertions.blogspot.com/2011/09/james-gosling-makes-move.html"&gt;Gosling&lt;/a&gt;, who invented the Java programming language.&lt;br /&gt;&lt;br /&gt;If you can't beat them, join them. It might be time to get a top job at Google. The only problem is that I can't see myself moving out there, even if the rewards are outstanding. Heck. I bet these lead software engineers get to spend the 20% of their time on special projects. What a life.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-2104565880943780259?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/2104565880943780259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=2104565880943780259' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/2104565880943780259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/2104565880943780259'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/10/lead-software-engineer.html' title='Lead Software Engineer'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-9kZMf9VO16U/TpcJMjbbS7I/AAAAAAAACA8/475Rhb3xmiE/s72-c/Lead.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-7420532257546890542</id><published>2011-10-04T11:53:00.002-04:00</published><updated>2011-10-04T12:03:47.740-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='spirit'/><category scheme='http://www.blogger.com/atom/ns#' term='changes'/><category scheme='http://www.blogger.com/atom/ns#' term='schedule'/><title type='text'>Requirements Presentation Format</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-xAU4NdnH0xc/TossJixQDNI/AAAAAAAACA0/43o3AcUCT6k/s1600/Requirements.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 225px; height: 220px;" src="http://4.bp.blogspot.com/-xAU4NdnH0xc/TossJixQDNI/AAAAAAAACA0/43o3AcUCT6k/s320/Requirements.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5659665899184983250" /&gt;&lt;/a&gt;I am scheduled this month to do all the work for one of the new software changes we have. This seemed like a compressed schedule. I had three days to do the design. On day one, I dug into the requirements. Every single piece of the functionality seemed to be affected by the change. And the details of the change were vague. I tried my best to figure out how these changes were going to work. I was started to sweat the schedule.&lt;br /&gt;&lt;br /&gt;The problem was that I was looking only at the new changes. This was a confusing view of the requirements. Luckily I widened my view and saw the old and new requirements side by side. It was only then when I saw what was being replaced by the change. That allowed me to hone in to exactly what was going on.&lt;br /&gt;&lt;br /&gt;I essentially understood the spirit of the changes at that point. All the rest of the changes made sense at that point. Now I find that I am way ahead of schedule for my tasks. All of this traction is due to the side by side presentation of the requirements. Good job requirements team.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-7420532257546890542?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/7420532257546890542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=7420532257546890542' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7420532257546890542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7420532257546890542'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/10/requirements-presentation-format.html' title='Requirements Presentation Format'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-xAU4NdnH0xc/TossJixQDNI/AAAAAAAACA0/43o3AcUCT6k/s72-c/Requirements.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-8086341789171719296</id><published>2011-09-22T14:32:00.002-04:00</published><updated>2011-09-22T14:38:04.177-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reproduce'/><category scheme='http://www.blogger.com/atom/ns#' term='delivery'/><category scheme='http://www.blogger.com/atom/ns#' term='config'/><category scheme='http://www.blogger.com/atom/ns#' term='schedule'/><category scheme='http://www.blogger.com/atom/ns#' term='estimate'/><title type='text'>Late Again</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/-m-Yk8fIsNKU/Tnt_kz92FGI/AAAAAAAACAk/DWXSPLeNlJw/s1600/Procrastination.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 274px;" src="http://3.bp.blogspot.com/-m-Yk8fIsNKU/Tnt_kz92FGI/AAAAAAAACAk/DWXSPLeNlJw/s320/Procrastination.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5655254027495412834" /&gt;&lt;/a&gt;The customer alerted us to a multi part problem they needed fixed. The project manager asked our team to estimate how long it would take to correct each piece. We procided a high fidelity estimate. That resulted in a schedule of release for each part of the fix.&lt;br /&gt;&lt;br /&gt;On the day when the first part of the fix was supposed to be delivered, the customer asked the project manager if we were sending out the fix. That resulted in him asking the developer assigned whether this thing was ready to go out. I came in to work and had a call from that developer asking what exactly the customer problem was. Fail!&lt;br /&gt;&lt;br /&gt;Luckily the first part of the fix was a well known issue. I walked the developer through the steps to reproduce the problem. Then I showed the developer the database table that controlled the erroneous config info. The developer proceeded to generate a fix. However the fix was not ready until late at night. The test team was surprised that they were asked to do the fix late in the evening. Thus it did not get done.&lt;br /&gt;&lt;br /&gt;The project manager warned this developer to make sure the second part of the fix was going to be on schedule. Let's hope the developer takes this lesson to heart.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-8086341789171719296?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/8086341789171719296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=8086341789171719296' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/8086341789171719296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/8086341789171719296'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/09/late-again.html' title='Late Again'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-m-Yk8fIsNKU/Tnt_kz92FGI/AAAAAAAACAk/DWXSPLeNlJw/s72-c/Procrastination.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-4855917880961730660</id><published>2011-09-08T13:03:00.002-04:00</published><updated>2011-09-08T13:09:09.632-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='problem'/><category scheme='http://www.blogger.com/atom/ns#' term='new development'/><category scheme='http://www.blogger.com/atom/ns#' term='duplication'/><category scheme='http://www.blogger.com/atom/ns#' term='trapped'/><title type='text'>Saved by the New Girl</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/-0JKOwA47khc/Tmj1cg5h0KI/AAAAAAAAB_0/yi3LTI58gTw/s1600/NewGirl.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 290px;" src="http://2.bp.blogspot.com/-0JKOwA47khc/Tmj1cg5h0KI/AAAAAAAAB_0/yi3LTI58gTw/s320/NewGirl.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5650035602752655522" /&gt;&lt;/a&gt;Last week there was a high priority problem from the customer. Initially I was not involved. However the problem was not getting solved. One of the customers mentioned my name. That was because I had dealt with this part of the system before. I was trapped.&lt;br /&gt;&lt;br /&gt;I did my best to walk my team lead through the duplication of the problem in his development environment. It took a while. But we got it duplicated. I feared that I would have to implement the fix. But my plate is full with new development. Luckily the work got assigned to a new developer we have. Nice.&lt;br /&gt;&lt;br /&gt;Then another problem kept coming up week after week. I asked the big boss if I should work on the problem. He told me the customer needed to submit a trouble ticket. I went to the customer, and she had no trouble opening a ticket. Once again the actual work got assigned to the new girl. I like how this is going.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-4855917880961730660?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/4855917880961730660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=4855917880961730660' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/4855917880961730660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/4855917880961730660'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/09/blog-post.html' title='Saved by the New Girl'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-0JKOwA47khc/Tmj1cg5h0KI/AAAAAAAAB_0/yi3LTI58gTw/s72-c/NewGirl.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-6509946607658942349</id><published>2011-08-30T09:58:00.002-04:00</published><updated>2011-08-30T10:04:38.027-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='production'/><category scheme='http://www.blogger.com/atom/ns#' term='cron job'/><category scheme='http://www.blogger.com/atom/ns#' term='crontab'/><title type='text'>Problem Child</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-9OZst49jFAs/TlzstqfbvXI/AAAAAAAAB_k/nqFLOy3Fgy0/s1600/Crontab.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 320px;" src="http://4.bp.blogspot.com/-9OZst49jFAs/TlzstqfbvXI/AAAAAAAAB_k/nqFLOy3Fgy0/s320/Crontab.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5646648302060158322" /&gt;&lt;/a&gt;I was asked to help out another team around a year or so ago. It seems I did too good of a job. Now I am responsible for this piece of their system. I would not mind if I could maintain these piece full time. But I already have a full time job. I am supposed to work this additional piece in my "free time".&lt;br /&gt;&lt;br /&gt;Just this past week I got an email from our customer. Apparently they did not see the results from last week's run of the software. I checked the audits in the database. Found no evidence of the job being run. Then I logged into the operating system. The logs on the file system also show the job did not run. What the heck is going on here?&lt;br /&gt;&lt;br /&gt;The particular job is run as a cron job. It has been running successfully for some time. Now I need to debug this anomaly. My first task is to ensure the job is still in the crontab. Unfortunately I do not have access to the production crontab. Furthermore, there is some type of procedure I need to go through to get assistance from the system administrators of the production system.&lt;br /&gt;&lt;br /&gt;This issue is going to take some time to resolve. Previously I had hoped to pass this task on to the actual team responsible for this system. Unfortunately they are in upheaval as some key members of the team recently resigned. I guess I am stuck with this puppy for the time being. It is time to make lemonade out of this lemon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-6509946607658942349?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/6509946607658942349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=6509946607658942349' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/6509946607658942349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/6509946607658942349'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/08/problem-child.html' title='Problem Child'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-9OZst49jFAs/TlzstqfbvXI/AAAAAAAAB_k/nqFLOy3Fgy0/s72-c/Crontab.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-1588364507015406137</id><published>2011-08-02T22:22:00.002-04:00</published><updated>2011-08-02T22:25:50.625-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IBM Rational Rose'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Release'/><title type='text'>Versioning</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/-ugGCE34IdwY/Tjiw20uQCGI/AAAAAAAAB_A/T_modGcouH0/s1600/Version.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 198px;" src="http://2.bp.blogspot.com/-ugGCE34IdwY/Tjiw20uQCGI/AAAAAAAAB_A/T_modGcouH0/s320/Version.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5636449389566232674" /&gt;&lt;/a&gt;I am responsible for designing some new features in the next big release of our software. The project manager told me I would be handing my design over to the new guys for implementation. Therefore I wanted my design to be as clear as possible. I waited until the other developers were finished with adding their designs to our one design document. Then I grabbed the latest version and started making some changes.&lt;br /&gt;&lt;br /&gt;I had some trouble with Rational Rose. The latest version on my system was broken. I tried to get a sys admin to fix it. Turns out he broke more than he fixed. I finally got access to a virtual machine that has Rational Rose on it. I drew some crucial sequence diagrams, as well as a class diagram of all the important clasees.&lt;br /&gt;&lt;br /&gt;Today I was getting ready to check in my design document changes, when I found that somebody else had usurped me. My boss created a new version of the design doc. That means my changes were made to an out of date version of the document. Ouch. We use Sharepoint for the documentation. You are supposed to coordinate with the rest of the team. Who knew the boss would be making changes as well?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-1588364507015406137?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/1588364507015406137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=1588364507015406137' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/1588364507015406137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/1588364507015406137'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/08/versioning.html' title='Versioning'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-ugGCE34IdwY/Tjiw20uQCGI/AAAAAAAAB_A/T_modGcouH0/s72-c/Version.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-3009330025058444223</id><published>2011-07-27T10:34:00.002-04:00</published><updated>2011-07-27T10:39:18.503-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='computers'/><category scheme='http://www.blogger.com/atom/ns#' term='blind'/><category scheme='http://www.blogger.com/atom/ns#' term='virtual machine'/><title type='text'>Coding by Email</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-ErCMbbMbblU/TjAh_EmRRUI/AAAAAAAAB-o/aBcBrf1QgFI/s1600/Email.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 300px; height: 300px;" src="http://4.bp.blogspot.com/-ErCMbbMbblU/TjAh_EmRRUI/AAAAAAAAB-o/aBcBrf1QgFI/s320/Email.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5634040501290222914" /&gt;&lt;/a&gt;We finally got some new developers on our team. Unfortunately they do not have the computers they need to do any work. So now they are doing a lot of reading. Initially we thought their computers would be in quickly. Now it looks like that is not going to happen. The new plan is for these new developers to code by email.&lt;br /&gt;&lt;br /&gt;Here is how this is supposed to work. An existing developer with a computer will email them the code to a non-development computer they have. Then coding changes will be done "in the blind". They then email the code changes back to developers who do have access to the correct computers. The theory is that this will allow them to do development. In reality, this is most likely a big fail.&lt;br /&gt;&lt;br /&gt;There might be some good to come out of this. The new developer I am working with is longing to look at some real code on our project. This will enable that ability. However it seems to be a waste of time to have a newbie do some coding where they cannot even do a compile or run the application.&lt;br /&gt;&lt;br /&gt;The optimist in me says that this is an interesting problem for me to do some coding in. I can perhaps code up a program that monitors for emails from the new guys, takes the code they send, tries to compile it, then returns the build results to them by email. If I can automate all that, I will be king. We can think of this as a sort of email virtual machine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-3009330025058444223?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/3009330025058444223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=3009330025058444223' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/3009330025058444223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/3009330025058444223'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/07/coding-by-email.html' title='Coding by Email'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-ErCMbbMbblU/TjAh_EmRRUI/AAAAAAAAB-o/aBcBrf1QgFI/s72-c/Email.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-8140482990681935688</id><published>2011-07-20T14:54:00.003-04:00</published><updated>2011-07-20T15:01:08.773-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='developer'/><category scheme='http://www.blogger.com/atom/ns#' term='copy'/><category scheme='http://www.blogger.com/atom/ns#' term='directory'/><category scheme='http://www.blogger.com/atom/ns#' term='subsystems'/><title type='text'>UNIX Developer</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/-5tBzfOTOLXg/TicklejQ4jI/AAAAAAAAB-I/rKB-S2rZE6A/s1600/Directory.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 227px; height: 174px;" src="http://3.bp.blogspot.com/-5tBzfOTOLXg/TicklejQ4jI/AAAAAAAAB-I/rKB-S2rZE6A/s320/Directory.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5631510085324825138" /&gt;&lt;/a&gt;I am responsible for one of the subsystems on our project. This is just one of my side duties. Another team was overburdened a year or two ago. I was asked to step in and give them a hand. Turns out I inherited a subsystem for life.&lt;br /&gt;&lt;br /&gt;The big boss said I could hand this duty off to another developer. I took that at face value. There are some changes that need to be made to this subsystem next year. Recently I noticed that some tasks for this subsystem were overdue in the schedule. That sounded like a perfect time to hand the whole thing off to the other developer.&lt;br /&gt;&lt;br /&gt;Oooops. That other developer is out on vacation for a month or so. Looks like I am stuck with some extra work again. This is my own fault. As soon as the big boss mentioned that it could be offloaded, I should have jumped at the opportunity to pass it on.&lt;br /&gt;&lt;br /&gt;Here is how I know I am not right for this project. It runs mostly on UNIX. Today I did not know how to copy a directory and its contents using the UNIX command prompt. Sure I was able to google the answer. But a developer for this specific project should already know how to do this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-8140482990681935688?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/8140482990681935688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=8140482990681935688' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/8140482990681935688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/8140482990681935688'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/07/unix-developer.html' title='UNIX Developer'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-5tBzfOTOLXg/TicklejQ4jI/AAAAAAAAB-I/rKB-S2rZE6A/s72-c/Directory.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-4512992174978022564</id><published>2011-07-18T14:33:00.003-04:00</published><updated>2011-07-18T14:39:24.137-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='analysis'/><category scheme='http://www.blogger.com/atom/ns#' term='team lead'/><category scheme='http://www.blogger.com/atom/ns#' term='managers'/><category scheme='http://www.blogger.com/atom/ns#' term='debug mode'/><title type='text'>The Power of Debug</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-Y6BmKPfyRNk/TiR8exnK5GI/AAAAAAAAB9o/Yn0bAPhr1GU/s1600/Debugger.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 274px; height: 320px;" src="http://4.bp.blogspot.com/-Y6BmKPfyRNk/TiR8exnK5GI/AAAAAAAAB9o/Yn0bAPhr1GU/s320/Debugger.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5630762302275511394" /&gt;&lt;/a&gt;A developer on my team got assigned a problem that was supposed to be fixed a long time ago. This developer could not determine the cause of the problem. He told our managers that his system was corrupt. He could not run Visual Studio in debug mode. Thus he could not identify the code that was causing the problem.&lt;br /&gt;&lt;br /&gt;This announcement caused all kinds of excitement. Our team lead told the developer to report to our offices (he works in a remote location). He showed up and could not find the rest of our team. So he found an office and started working. Luckily another guy in a remote location informed me the developer had arrived. I grabbed him and we met with our team lead.&lt;br /&gt;&lt;br /&gt;Team leader was a bit frazzled. The management team must have beat him up a bit. He kept grilling me and the developer about when this bug could be fixed. I asked him why he was talking to me about it. He said that I was now going to be responsible for helping the developer get the bug fixed.&lt;br /&gt;&lt;br /&gt;Luckily I had did the initial analysis on the issue. I knew exactly how long it would take. The team lead kept trying to dissect the analysis to figure out how we could ship it out quicker. I stuck to my guns. That there were two people involved did not cut the estimate in half. One guy could not debug the app. Luckily when we got to my desk, built a debug version of the application, it was a short while before we found exactly where the problem was occurring.&lt;br /&gt;&lt;br /&gt;You need to be able to run the application in debug mode. There is no substitute for this. If you cannot debug the main applicaiton, you must treat this as an emergency and get it fixed. Otherwise you will be of little use to a maintenance team. Even the managers can see that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-4512992174978022564?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/4512992174978022564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=4512992174978022564' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/4512992174978022564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/4512992174978022564'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/07/power-of-debug.html' title='The Power of Debug'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-Y6BmKPfyRNk/TiR8exnK5GI/AAAAAAAAB9o/Yn0bAPhr1GU/s72-c/Debugger.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-7405459680254080003</id><published>2011-07-12T23:33:00.004-04:00</published><updated>2011-07-12T23:37:51.516-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='roll out'/><category scheme='http://www.blogger.com/atom/ns#' term='requirements'/><category scheme='http://www.blogger.com/atom/ns#' term='customer'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Design Test</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/-2FHo8dda__U/Th0TDF6LgsI/AAAAAAAAB9g/xyrx1Z7qBBc/s1600/Design.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 231px;" src="http://3.bp.blogspot.com/-2FHo8dda__U/Th0TDF6LgsI/AAAAAAAAB9g/xyrx1Z7qBBc/s320/Design.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5628676053129724610" /&gt;&lt;/a&gt;&lt;br /&gt;This year I got assigned one of the main changes to our system. The hard part was nailing down the exact requirements for what I needed to change. Once that was done, I went to town documenting a design for the changes.&lt;br /&gt;&lt;br /&gt;The big boss told me I would do the design. But a new developer would code the changes. With that in mind, I made sure I explained a lot of details in the design.&lt;br /&gt;&lt;br /&gt;Today I reviewed the requirements with a new developer. Then I provided him with my design document. The test was to see whether the design gave him enough info to allow him to write the code. He only had one or two questions after going over the design.&lt;br /&gt;&lt;br /&gt;The next step is to design some of the changes the customer wanted but were not approved on the first time around. I know they are going to want everything they asked for. We just got a break in that all the changes are not due immediately. The rest of the changes will be in a staggered roll out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-7405459680254080003?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/7405459680254080003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=7405459680254080003' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7405459680254080003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7405459680254080003'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/07/design-test.html' title='Design Test'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-2FHo8dda__U/Th0TDF6LgsI/AAAAAAAAB9g/xyrx1Z7qBBc/s72-c/Design.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-501941192772736468</id><published>2011-07-10T12:55:00.002-04:00</published><updated>2011-07-10T13:01:13.366-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='domain knowledge'/><category scheme='http://www.blogger.com/atom/ns#' term='new blood'/><category scheme='http://www.blogger.com/atom/ns#' term='fixing bugs'/><title type='text'>New Hires</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/-X3cUKukxW4g/ThnZw7SGVGI/AAAAAAAAB9I/WPERsqOyuLs/s1600/Employee.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 300px; height: 300px;" src="http://1.bp.blogspot.com/-X3cUKukxW4g/ThnZw7SGVGI/AAAAAAAAB9I/WPERsqOyuLs/s320/Employee.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5627768643946697826" /&gt;&lt;/a&gt;Our team is finally getting some new members added. We have been struggling with a limited staff for what seems like a whole year. Now we got some new blood. The challenge is to get them up to speed as soon as possible.&lt;br /&gt;&lt;br /&gt;In my opinion, we should throw some bugs their way. You learn a lot about our system when you fix the bugs. That's how I learned most of my domain knowledge. You really don't learn as much when you add a new feature here or there. The only problem with this is that we don't have laptops for the new folk to use yet. So fixing bugs is out of the question.&lt;br /&gt;&lt;br /&gt;The current plan is for the new peeps to pair program with experienced developers. This has worked well in the past. One of our bright stars spent the first few weeks shadowing me on some new development. He says he learned more during those few weeks than he has his entire time being here.&lt;br /&gt;&lt;br /&gt;I got one guy shawoing me at the moment. So far I have gone through development of one of my scripts with him. I also reviewed some requirement changes with him so we could help another developer on the team. The only difficult part of this arrangement is that my new guy lives far away. He has a massive commute to get to my office. We worked out a deal where he spends two days a week at my office. Let's hope he learn a lot.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-501941192772736468?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/501941192772736468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=501941192772736468' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/501941192772736468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/501941192772736468'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/07/new-hires.html' title='New Hires'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-X3cUKukxW4g/ThnZw7SGVGI/AAAAAAAAB9I/WPERsqOyuLs/s72-c/Employee.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-5478235283401740671</id><published>2011-07-01T14:10:00.003-04:00</published><updated>2011-07-01T14:17:16.357-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='database table'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='global temporary table'/><title type='text'>Case of the Missing Data</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-sj06eEyM5v4/Tg4NoHpvEGI/AAAAAAAAB8Y/Aca6ePv6_5U/s1600/Engineering.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/-sj06eEyM5v4/Tg4NoHpvEGI/AAAAAAAAB8Y/Aca6ePv6_5U/s320/Engineering.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5624447967532355682" /&gt;&lt;/a&gt;Our customer has been reporting that some of their screens are coming up empty. However they perform a SQL query and find that there is data there. This was quite a mystery that we could not recreate in development. I took a look at the code involved. Somebody suggested that I inspect the databsae table that gets populated by a stored proedure and used by the application.&lt;br /&gt;&lt;br /&gt;I found the database table name. But I needed more info. Which schema is this table contained in? I found out it was in the main schema that holds most of our tables. Then I found some strange code that seemed to delete all records out of the table every time somebody logged in. What kind of race condition did they set up here? Before jumping to conclusions, I decided to test out the use of the table with my app.&lt;br /&gt;&lt;br /&gt;When I ran the app, I saw data in the application. However I could not find any data in the table when I ran a query. That was strange. This was my own private schema. Nobody else would be working in it. Then another developer thought that the app might be deleting the data. That was a possibility. I decided to remove the app from the picture completely.&lt;br /&gt;&lt;br /&gt;I just used some SQL to insert data in the table. I could immediately see the data. However when I tried to query it from another tool (connected in a different session), the data was not there. Aha. I determined the behavior of the table. It turns out it was an Oracle global &lt;a href="http://ora-pl-sql.blogspot.com/2011/07/global-temporary-tables.html"&gt;temporary table&lt;/a&gt;. The data was private per session, and removed after session end.&lt;br /&gt;&lt;br /&gt;Sometimes you got to test things out for yourself to gain understanding. This was one of those cases. I was not up to speed on how Oracle global temporary tables work. But I knew how to run specific tests to determine what was going on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-5478235283401740671?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/5478235283401740671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=5478235283401740671' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5478235283401740671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5478235283401740671'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/07/case-of-missing-data.html' title='Case of the Missing Data'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-sj06eEyM5v4/Tg4NoHpvEGI/AAAAAAAAB8Y/Aca6ePv6_5U/s72-c/Engineering.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-5824118050021319309</id><published>2011-06-16T03:23:00.003-04:00</published><updated>2011-06-16T03:27:39.591-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='customer'/><category scheme='http://www.blogger.com/atom/ns#' term='new development'/><category scheme='http://www.blogger.com/atom/ns#' term='calls'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Separate Operations Support</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/-2A1aqh5hEc8/TfmvmXu94EI/AAAAAAAAB7w/PQwddVNsNoE/s1600/Operations.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 259px; height: 194px;" src="http://2.bp.blogspot.com/-2A1aqh5hEc8/TfmvmXu94EI/AAAAAAAAB7w/PQwddVNsNoE/s320/Operations.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5618715083862302786" /&gt;&lt;/a&gt;I have spent the last week and a half researching and resolving high priority customer problems. This meant that my normal work was put on the shelf. Now I am slowly trying to get back to my prior tasks. This is a tough way to run things.&lt;br /&gt;&lt;br /&gt;Today the big boss said we are splitting out our teams into new development and sustaining operations. We had a meeting scheduled with the big boss to go over the new changes for the next year. He declared that I would be free to design the good stuff for the next delivery. Yeah. I can live with that.&lt;br /&gt;&lt;br /&gt;Some other poor chap got stuck with the maintenance duties. I hope he is ready for a lot of phone calls. That how I used to live my life in the maintenance world. There is some other good news. We are hiring a couple new people on my team. The big boss told me I could design away the changes, and let the new folks do the coding. Again this works for me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-5824118050021319309?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/5824118050021319309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=5824118050021319309' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5824118050021319309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5824118050021319309'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/06/separate-operations-support.html' title='Separate Operations Support'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-2A1aqh5hEc8/TfmvmXu94EI/AAAAAAAAB7w/PQwddVNsNoE/s72-c/Operations.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-69959625526857434</id><published>2011-05-30T19:20:00.003-04:00</published><updated>2011-05-30T19:27:17.374-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='New York'/><category scheme='http://www.blogger.com/atom/ns#' term='abbreviations'/><category scheme='http://www.blogger.com/atom/ns#' term='associate'/><category scheme='http://www.blogger.com/atom/ns#' term='experience'/><title type='text'>The Big Time</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/-je5G35hIYCM/TeQmW2qBIuI/AAAAAAAAB7k/tiiQ6FtfsJ8/s1600/Derrivatives.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 296px; height: 320px;" src="http://3.bp.blogspot.com/-je5G35hIYCM/TeQmW2qBIuI/AAAAAAAAB7k/tiiQ6FtfsJ8/s320/Derrivatives.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5612653209681208034" /&gt;&lt;/a&gt;I was reading this techical magazine on the weekend. There was an advertisement in the back for a &lt;a href="http://goldmanslacks.blogspot.com/"&gt;Goldman Sachs&lt;/a&gt; associate. The pay was between $225k and $400k a year. And this was for a 9 to 5 job. What the heck? Who makes $225k a year in development? Nobody I know.&lt;br /&gt;&lt;br /&gt;The position required experience with derrivatives software. Perhaps this is the niche you need to enter to make the big bucks. Now I do know that living expenses in New York are high. But $225k a year should cover that and then some.&lt;br /&gt;&lt;br /&gt;How does one get any experience in this field? Maybe you need to start off as a junior associate making minimal cash. Or you could write some hot code in your free time and try to impress someone at Goldman. There is one other explanation for this job. It might be a fake.&lt;br /&gt;&lt;br /&gt;There were many abbreviations in this long article. Almost every sentence had multiple abbriviations. That does not sound like Goldman Sachs recruiting. It could have been put together by a recruiter. However the address to send applications/resumes was Goldman Sachs. I tell you what. I would like to make $225k a year for a 40 hour a week job. But if something sounds too good to be true, then you know what that means.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-69959625526857434?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/69959625526857434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=69959625526857434' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/69959625526857434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/69959625526857434'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/05/big-time.html' title='The Big Time'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-je5G35hIYCM/TeQmW2qBIuI/AAAAAAAAB7k/tiiQ6FtfsJ8/s72-c/Derrivatives.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-7081799920606018126</id><published>2011-05-24T11:22:00.003-04:00</published><updated>2011-05-24T11:26:17.809-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Installshield LE'/><category scheme='http://www.blogger.com/atom/ns#' term='solution'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='crash'/><title type='text'>Visual Studio 2010 Aborts</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-otVmBBrqJnE/TdvNUPRyPLI/AAAAAAAAB7U/1QcUcg4K8Ok/s1600/InstallShield.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 168px; height: 245px;" src="http://4.bp.blogspot.com/-otVmBBrqJnE/TdvNUPRyPLI/AAAAAAAAB7U/1QcUcg4K8Ok/s320/InstallShield.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5610303508402289842" /&gt;&lt;/a&gt;I have been working on a new project using Visual Studio 2010 Professional. And I wanted to see how I could deploy the finished product. In the past, I had used an old copy of Installshield. My Visual Studio has an InstallShield plugin that is free.&lt;br /&gt;&lt;br /&gt;I downloaded Installshield LE and set it up to deploy my project. The resulting self-extracting executable worked pretty good. There were some features disabled in the free Installshield. But that did not hold me back.&lt;br /&gt;&lt;br /&gt;All of a sudden, Visual Studio kept crashing when I tried to edit the C++ header files in my project. I removed and readded the files. It still crashed. After a while I realized that the addition of an Installshield LE project in my solution caused Visual Studio to crash.&lt;br /&gt;&lt;br /&gt;What a fail. The work around is to create a separate solution to prevent the abort. This does not bode well for me to purchase Installshield.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-7081799920606018126?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/7081799920606018126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=7081799920606018126' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7081799920606018126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7081799920606018126'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/05/visual-studio-2010-aborts.html' title='Visual Studio 2010 Aborts'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-otVmBBrqJnE/TdvNUPRyPLI/AAAAAAAAB7U/1QcUcg4K8Ok/s72-c/InstallShield.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-5103352029597891588</id><published>2011-05-06T19:49:00.002-04:00</published><updated>2011-05-06T20:18:59.325-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='volunteer'/><category scheme='http://www.blogger.com/atom/ns#' term='duties'/><category scheme='http://www.blogger.com/atom/ns#' term='team'/><category scheme='http://www.blogger.com/atom/ns#' term='schedule'/><category scheme='http://www.blogger.com/atom/ns#' term='Release'/><title type='text'>Coordination</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/-HPFBbpc6_uw/TcSJLjQRp4I/AAAAAAAAB6k/BvWSuJYl7x4/s1600/Coodination.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 299px; height: 320px;" src="http://2.bp.blogspot.com/-HPFBbpc6_uw/TcSJLjQRp4I/AAAAAAAAB6k/BvWSuJYl7x4/s320/Coodination.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5603754667890812802" /&gt;&lt;/a&gt;Last year I helped out a struggling team on my project. I volunteered for a piece the team knew nothing about. As usual, I did a good job delivering and supporting the product. It was a bit tough because I had my normal duties to do in addition to the new work. But I made it happen.&lt;br /&gt;&lt;br /&gt;This year I got loaded up on all kinds of work for my team. But I looked ahead and knew the other team was hurting again. I did not hear anything about the piece I had done for them before. So I asked whether I was still on the hook to do the work. The answer was yes. My team is not happy to lose some of my time. They were most upset that nobody took this into account when setting up our schedule.&lt;br /&gt;&lt;br /&gt;So far I have not worked on this additional piece of the system. Today I found the time to work on testing some bug fixes that are going out in the next release. However at the end of testing, I found my tests deopended on some other fixes being made. Doh! Nobody determined there would be a dependency. I tell you. We are one uncoordinated team.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-5103352029597891588?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/5103352029597891588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=5103352029597891588' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5103352029597891588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5103352029597891588'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/05/coordination.html' title='Coordination'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-HPFBbpc6_uw/TcSJLjQRp4I/AAAAAAAAB6k/BvWSuJYl7x4/s72-c/Coodination.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-4931648978064453039</id><published>2011-05-02T10:20:00.002-04:00</published><updated>2011-05-02T10:24:54.153-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='customer'/><category scheme='http://www.blogger.com/atom/ns#' term='update'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><title type='text'>Java to the Rescue</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/-IrAsfBrMF50/Tb6944F5hUI/AAAAAAAAB5k/A5LDSPNoFkQ/s1600/Java.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 300px; height: 256px;" src="http://1.bp.blogspot.com/-IrAsfBrMF50/Tb6944F5hUI/AAAAAAAAB5k/A5LDSPNoFkQ/s320/Java.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5602123771322926402" /&gt;&lt;/a&gt;The customer has been encountering performance problems with our system. Some screens are so slow they don't even come up. The customer has since reverted to doing some work manually. Now they need to get the system updated with their work.&lt;br /&gt;&lt;br /&gt;All of the customer data has been collected into a Microsoft Excel spreadsheet. Essentially each row in the spreadsheet is going to be an update in the database. The updates will be controlled by a stand alone script. How should developer go about creating this script?&lt;br /&gt;&lt;br /&gt;In the old days, I would write a C/C++ program to read in the data and generate the script. However the security team is cracking down on "rogue" programs such as this. I think I figured out the solution. Write the script generator in Java. That way the security people think we are running "java.exe", which is on the list of approved apps.&lt;br /&gt;&lt;br /&gt;Some other people are looking into the script generation. However I think I will develop and have my Java program ready to roll.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-4931648978064453039?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/4931648978064453039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=4931648978064453039' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/4931648978064453039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/4931648978064453039'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/05/java-to-rescue.html' title='Java to the Rescue'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-IrAsfBrMF50/Tb6944F5hUI/AAAAAAAAB5k/A5LDSPNoFkQ/s72-c/Java.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-3446675885887475780</id><published>2011-04-18T22:59:00.002-04:00</published><updated>2011-04-18T23:04:07.905-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smart'/><category scheme='http://www.blogger.com/atom/ns#' term='conference call'/><category scheme='http://www.blogger.com/atom/ns#' term='manager'/><category scheme='http://www.blogger.com/atom/ns#' term='questions'/><title type='text'>Talkers and Workers</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/-CX4_JpA7l7U/Taz6x66PLTI/AAAAAAAAB5M/0PDIO9AMLr0/s1600/Worker.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 307px;" src="http://1.bp.blogspot.com/-CX4_JpA7l7U/Taz6x66PLTI/AAAAAAAAB5M/0PDIO9AMLr0/s320/Worker.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5597124172448738610" /&gt;&lt;/a&gt;A higher priority problem from the customer came in. We were in the middle of fixing other high priority problems as well. I decided to take the new problem myself. I hate working on these.&lt;br /&gt;&lt;br /&gt;Here is the normal pattern. Some manager wants a conference call. A lot of people join. They all try very hard to suond intelligent. However they ask a lot of questions. The only person who can usually answer those questions are people like me who do the actual work.&lt;br /&gt;&lt;br /&gt;That means I have two jobs. I got to answer questions of clueless people trying to sound smart. Then I also have to determine the right questions to get to the solution. This is just a total fail.&lt;br /&gt;&lt;br /&gt;Luckily with this latest problem, I was able to take the initiative. I dove in and said I had some ideas and was investigating them. I finished the total solution before any conference calls got started. Winning.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-3446675885887475780?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/3446675885887475780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=3446675885887475780' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/3446675885887475780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/3446675885887475780'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/04/talkers-and-workers.html' title='Talkers and Workers'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-CX4_JpA7l7U/Taz6x66PLTI/AAAAAAAAB5M/0PDIO9AMLr0/s72-c/Worker.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-9025222887238944795</id><published>2011-04-13T13:31:00.002-04:00</published><updated>2011-04-13T13:55:22.400-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='looks'/><category scheme='http://www.blogger.com/atom/ns#' term='training'/><category scheme='http://www.blogger.com/atom/ns#' term='skills'/><category scheme='http://www.blogger.com/atom/ns#' term='hacker'/><category scheme='http://www.blogger.com/atom/ns#' term='picture'/><title type='text'>Who to Hire</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/-q2sK34ozhh4/TaXeLLOd0oI/AAAAAAAAB40/MGR1o_VQ9Oc/s1600/Hire.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 154px;" src="http://1.bp.blogspot.com/-q2sK34ozhh4/TaXeLLOd0oI/AAAAAAAAB40/MGR1o_VQ9Oc/s320/Hire.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5595122395651101314" /&gt;&lt;/a&gt;I just read an article that says you should hire for the person and not their specific skills. For my project, I don't know whether I agree. We have very specific technical needs on our project. We don't have time for you to learn on the job. Techn skills are king here.&lt;br /&gt;&lt;br /&gt;But what if you had the lineup shown in the picture here? At first glance, you might want to hire the female because she looks good. Those who look good usually get the advantage. The other two guys look not quite right.&lt;br /&gt;&lt;br /&gt;However you need some hackers to get the job done on your project. Maybe you do want someone who looks like a hacker. Along this thinking, I might have to choose the guy in the middle. He is squinting like he stayed up all night writing code in the dark. That is my kind of guy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-9025222887238944795?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/9025222887238944795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=9025222887238944795' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/9025222887238944795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/9025222887238944795'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/04/who-to-hire.html' title='Who to Hire'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-q2sK34ozhh4/TaXeLLOd0oI/AAAAAAAAB40/MGR1o_VQ9Oc/s72-c/Hire.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-7778095466231790411</id><published>2011-04-10T05:12:00.002-04:00</published><updated>2011-04-10T05:16:23.196-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='emergency'/><category scheme='http://www.blogger.com/atom/ns#' term='milestone'/><category scheme='http://www.blogger.com/atom/ns#' term='schedule'/><category scheme='http://www.blogger.com/atom/ns#' term='managers'/><title type='text'>Visual Studio Debacle</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/-rKqeadHRtSQ/TaF0gfYA6QI/AAAAAAAAB4k/_amINaLzqQw/s1600/VS.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 190px;" src="http://1.bp.blogspot.com/-rKqeadHRtSQ/TaF0gfYA6QI/AAAAAAAAB4k/_amINaLzqQw/s320/VS.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5593880313697724674" /&gt;&lt;/a&gt;We are upgrading to a newer version of Visual Studio for our next big software release. There was an event in the schedule where we were supposed to get the new software. That milestone day came and went.&lt;br /&gt;&lt;br /&gt;After a few weeks, I heard some managers talking about the schedule. I mentioned that the scheduled was wack because we did not have the software. I explained that without the software, no progress would be made. Furthermore we were losing weeks that could not be made up later.&lt;br /&gt;&lt;br /&gt;Suddenly the Visual Studio software became a hot item. Why does it take an emergency for me to get the tools I need? The customer arranged for somebody to install the software on my system. The big boss told me I was going to be getting a call from the installer. It never happened.&lt;br /&gt;&lt;br /&gt;Instead I found out that somebody installed the software on my system. They put it in the wrong place. I let them know the install was wrong. This simple software upgrade is turning into a nightmare. Now the real work can begin. Let's upgrade our projects to use the new compiler and IDE.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-7778095466231790411?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/7778095466231790411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=7778095466231790411' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7778095466231790411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7778095466231790411'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/04/visual-studio-debacle.html' title='Visual Studio Debacle'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-rKqeadHRtSQ/TaF0gfYA6QI/AAAAAAAAB4k/_amINaLzqQw/s72-c/VS.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-7969102973893115384</id><published>2011-04-05T11:02:00.002-04:00</published><updated>2011-04-05T11:07:06.926-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='customer'/><category scheme='http://www.blogger.com/atom/ns#' term='problems'/><category scheme='http://www.blogger.com/atom/ns#' term='schedule'/><category scheme='http://www.blogger.com/atom/ns#' term='mission'/><title type='text'>Just in Time Departure</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/-F6EPvSodK6o/TZsvMjDhbdI/AAAAAAAAB4c/8Gnn7lZHkLY/s1600/Leaving.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 198px;" src="http://1.bp.blogspot.com/-F6EPvSodK6o/TZsvMjDhbdI/AAAAAAAAB4c/8Gnn7lZHkLY/s320/Leaving.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5592115254925553106" /&gt;&lt;/a&gt;&lt;br /&gt;I had a rough weekend. Had to work on a high priority problem for the customer. So when I came to work on Monday, I was tired. I was on a mission. There were some set tasks I needed to accomplish. There were also some risks I needed to mitigate in order ot meet the schedule I proposed.&lt;br /&gt;&lt;br /&gt;As soon as my tasks were done, I hit the road to go home. My team lead delayed me a bit because he needed some info. But after that conversation I was out the door. It turns out that was the best move of the day.&lt;br /&gt;&lt;br /&gt;Right after I left, a couple more high priority problems came in. Now I would not have been able to do much on these new problems if I stuck around. I was already burning out. Plus I needed to concentrate on the problem I was working on first.&lt;br /&gt;&lt;br /&gt;I came in early the next day. A lot of developers were already busy working early in the morning. That sounded strange. They were working on the new problems that came in. This is a good thing. Me not being there forced management to get other developers involved. There is only one question. Should I bolt early today too? We shall see.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-7969102973893115384?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/7969102973893115384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=7969102973893115384' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7969102973893115384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7969102973893115384'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/04/just-in-time-departure.html' title='Just in Time Departure'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-F6EPvSodK6o/TZsvMjDhbdI/AAAAAAAAB4c/8Gnn7lZHkLY/s72-c/Leaving.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-7962512227475148887</id><published>2011-04-04T12:54:00.003-04:00</published><updated>2011-04-04T13:03:49.319-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='customer'/><category scheme='http://www.blogger.com/atom/ns#' term='problem'/><category scheme='http://www.blogger.com/atom/ns#' term='manager'/><category scheme='http://www.blogger.com/atom/ns#' term='weekend'/><category scheme='http://www.blogger.com/atom/ns#' term='unit test'/><title type='text'>Tricked Again</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-eGUexW9LZ1g/TZn36ZxrTeI/AAAAAAAAB4M/fdmK3-8LdXA/s1600/Tricked.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 240px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5591772995080900066" border="0" alt="" src="http://4.bp.blogspot.com/-eGUexW9LZ1g/TZn36ZxrTeI/AAAAAAAAB4M/fdmK3-8LdXA/s320/Tricked.jpg" /&gt;&lt;/a&gt; There was another high priority problem reported by our customers. I thought I was safe. The problem was obviously in a part of the system I don't work on. The team had a conference call to talk about this problem.&lt;br /&gt;&lt;br /&gt;I should have know I was getting set up when the team lead responsible for the problematic part of the system started saying this was not his problem. I fell for the bait. That's when I did some research to prove it was in that part of the system.&lt;br /&gt;&lt;br /&gt;Next I alerted management to the fact that the developer who manned this specific program actually left the company. I advised them to appoint a new developer to be responsible. Next thing I know, I am in another conference call to work out how we were going to fix this problem.&lt;br /&gt;&lt;br /&gt;Initially they were talking crazy about the fix being done in a day or two. I told them no way. Next thing I know, I got signed up to set up the data and do the testing for the fix. They actually somehow got the guy who left the company to develop the fix. Dang. The testing is the hard part of this problem. I should have volunteered to do the fix. Ok. I helped shape the rollout schedule for the fix.&lt;br /&gt;&lt;br /&gt;Now to meet the schedule I was going to have to do some weekend work. That was not optimal for me, but I was going to do it. Then I get a call from a manager saying the customer wants the fix even earlier. That's when I knew I had it all wrong and I was being set up. After some heated debate, my original schedule was accepted. In the future, I got to do Dilbert style and pad the heck out of my estimates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-7962512227475148887?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/7962512227475148887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=7962512227475148887' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7962512227475148887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7962512227475148887'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/04/tricked-again.html' title='Tricked Again'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-eGUexW9LZ1g/TZn36ZxrTeI/AAAAAAAAB4M/fdmK3-8LdXA/s72-c/Tricked.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-6533289097807337418</id><published>2011-03-31T09:43:00.005-04:00</published><updated>2011-03-31T09:52:04.565-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sprint Zero'/><category scheme='http://www.blogger.com/atom/ns#' term='stories'/><category scheme='http://www.blogger.com/atom/ns#' term='sprint'/><category scheme='http://www.blogger.com/atom/ns#' term='backlog'/><category scheme='http://www.blogger.com/atom/ns#' term='hardening'/><title type='text'>Getting Agile</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-8qQIcuptAvs/TZSGt1c-0zI/AAAAAAAAB38/fbxctUqQkfU/s1600/Agile.jpg"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 320px; DISPLAY: block; HEIGHT: 198px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5590241159474500402" border="0" alt="" src="http://4.bp.blogspot.com/-8qQIcuptAvs/TZSGt1c-0zI/AAAAAAAAB38/fbxctUqQkfU/s320/Agile.jpg" /&gt;&lt;/a&gt; &lt;br /&gt;I just finished reading an eBook on agile development. There were some key insights in there that I want to share. To start with, you need to identify the backlog of work to do. This includes both new features and bugs to fix.&lt;br &gt;&lt;br /&gt;When you estimate the time needed to complete the work, focus on user stories instead of requirements. Count developers for only 6 hours of productive work at the max. I personally would only schedule based on 4 actual productive programming hours per day.&lt;br &gt;&lt;br /&gt;Development is split up into sprints. It is wise to have a Sprint Zero to get your team organized. Some sprints should harden your system by focusing on bug fixes alone. We do this on my current project.&lt;br &gt;&lt;br /&gt;Require progress updates once per day. When you finish any given sprint, review all the tests. Hopefully your tests are automated for optimal test team performance. Waste is defined as any activities that do not add value to the final product. You are going to want to trim waste with a vengeance.&lt;br &gt;&lt;br /&gt;Finally there are only two values for percent complete that matter. They are 0% and 100% done. Anything in between is best thought of as 0% complete. Radical.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-6533289097807337418?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/6533289097807337418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=6533289097807337418' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/6533289097807337418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/6533289097807337418'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/03/getting-agile.html' title='Getting Agile'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-8qQIcuptAvs/TZSGt1c-0zI/AAAAAAAAB38/fbxctUqQkfU/s72-c/Agile.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-3741591358925167119</id><published>2011-03-25T10:21:00.002-04:00</published><updated>2011-03-25T10:26:57.229-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming languages'/><category scheme='http://www.blogger.com/atom/ns#' term='experience'/><category scheme='http://www.blogger.com/atom/ns#' term='technologies'/><title type='text'>Skills Required</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-JpH5daIOKHY/TYylEeRYGxI/AAAAAAAAB3M/qRbYGQl_JtM/s1600/Skills.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 240px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5588022733923949330" border="0" alt="" src="http://4.bp.blogspot.com/-JpH5daIOKHY/TYylEeRYGxI/AAAAAAAAB3M/qRbYGQl_JtM/s320/Skills.jpg" /&gt;&lt;/a&gt;I recently met up with an old friend that is a developer. He has been looking for work for a while. The challenge is often that employers want developers with experience in 8 to 10 technologies. Who has that type of skill set?&lt;br /&gt;&lt;br /&gt;Yesterday I read an article that seems to confirm this phenomenon. Developers need to know a lot of different things. This includes &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;SOA&lt;/span&gt;, &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;OOP&lt;/span&gt;, and &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;UI&lt;/span&gt; development.&lt;br /&gt;&lt;br /&gt;It makes sense that a developer might need to know more than one programming language. That gives you additional insight. I don't know whether it makes sense to know a little bit about 10 different technologies. That is a generalist that specializes in nothing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-3741591358925167119?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/3741591358925167119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=3741591358925167119' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/3741591358925167119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/3741591358925167119'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/03/skills-required.html' title='Skills Required'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-JpH5daIOKHY/TYylEeRYGxI/AAAAAAAAB3M/qRbYGQl_JtM/s72-c/Skills.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-5966339827520632292</id><published>2011-03-22T13:46:00.002-04:00</published><updated>2011-03-22T13:50:09.890-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='learn by doing'/><category scheme='http://www.blogger.com/atom/ns#' term='videos'/><category scheme='http://www.blogger.com/atom/ns#' term='challenge'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><title type='text'>Code School</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/-OSD2kgqJ34k/TYjgnANiTtI/AAAAAAAAB3E/ygcLzAdDYA8/s1600/School.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 294px; FLOAT: left; HEIGHT: 306px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5586962298429394642" border="0" alt="" src="http://1.bp.blogspot.com/-OSD2kgqJ34k/TYjgnANiTtI/AAAAAAAAB3E/ygcLzAdDYA8/s320/School.jpg" /&gt;&lt;/a&gt;The people at Envy Labs have opened up their Code School. It is an online learning site. The goal is to "learn by doing". They have short videos, along with hands on exercises. You got to pass some sort of challenge before moving on to the next section.&lt;br /&gt;&lt;br /&gt;Right now they have a course on Ruby on Rails. It costs $45, a discount from the normal price of $75. Some other courses that are coming soon include &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;jQuery&lt;/span&gt;, HTML 5, and &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;CSS&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;I am not sure whether this is a good deal. If their hands on technique can teach me stuff in just an hour, I might buy in. It helps that my employer foots the bill for my technical training. If it was my own money, I don't think I would be buying though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-5966339827520632292?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/5966339827520632292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=5966339827520632292' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5966339827520632292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5966339827520632292'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/03/code-school.html' title='Code School'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-OSD2kgqJ34k/TYjgnANiTtI/AAAAAAAAB3E/ygcLzAdDYA8/s72-c/School.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-3114373413120941161</id><published>2011-03-16T10:39:00.002-04:00</published><updated>2011-03-16T10:51:21.481-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><category scheme='http://www.blogger.com/atom/ns#' term='public speaking'/><category scheme='http://www.blogger.com/atom/ns#' term='new technology'/><title type='text'>The Software Architect</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/-qml0NK7Gb4k/TYDLxcsLP9I/AAAAAAAAB2U/J-hfulmg5rY/s1600/Architect.gif"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 298px; FLOAT: left; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5584687588314922962" border="0" alt="" src="http://3.bp.blogspot.com/-qml0NK7Gb4k/TYDLxcsLP9I/AAAAAAAAB2U/J-hfulmg5rY/s320/Architect.gif" /&gt;&lt;/a&gt;A lot of developers aspire to become a software architect. The title sounds impressive. And you figure an architect is going to be making a lot of money. I found it humorous that one team on my project decided to declare itself as the architects. Even though such antics are humorous, I think there is some validity to moving ahead by becoming an architect.&lt;br /&gt;&lt;br /&gt;I read an article on how real life people advanced to the software architect position. One factor was getting involved with new technology early on. Another is doing publishing or public speaking. You must have top notch communication skills.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-3114373413120941161?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/3114373413120941161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=3114373413120941161' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/3114373413120941161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/3114373413120941161'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/03/software-architect.html' title='The Software Architect'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-qml0NK7Gb4k/TYDLxcsLP9I/AAAAAAAAB2U/J-hfulmg5rY/s72-c/Architect.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-336788613372809571</id><published>2011-03-14T14:57:00.003-04:00</published><updated>2011-03-14T15:03:13.662-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Universes'/><category scheme='http://www.blogger.com/atom/ns#' term='Business Layer'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Crystal Reports'/><title type='text'>Business Objects</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/-1V4f1vq09_8/TX5lKD42pII/AAAAAAAAB2E/GJuSFN1FyBI/s1600/SAP.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 194px; FLOAT: left; HEIGHT: 145px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5584011811502859394" border="0" alt="" src="http://3.bp.blogspot.com/-1V4f1vq09_8/TX5lKD42pII/AAAAAAAAB2E/GJuSFN1FyBI/s320/SAP.jpg" /&gt;&lt;/a&gt;I have a coworker that is in training for Business Objects this week. It might be a good time to be learning. SAP just did a major upgrade to Business Objects 4 recently. SAP bought Business Objects 4 years ago. Now they are moving forward with the product.&lt;br /&gt;&lt;br /&gt;There have been some job postings recently that require Business Objects Universes experience. Well that term is obsolete in the new version. That functionality has been grouped in with other &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-corrected"&gt;functions&lt;/span&gt; into the Business Layer.&lt;br /&gt;&lt;br /&gt;My coworker previously attended some training on Crystal Reports. She got a bit of Business Objects training back then as well. What's the difference between Crystal Reports and Business Objects you might ask. Crystal Reports, like &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;Dashboarding&lt;/span&gt;, is one of the interfaces to Business Objects. It is a simple one at that.&lt;br /&gt;&lt;br /&gt;I hear the new Business Objects has event processing down pat. Perhaps I shall quiz my coworker when she returns and find out the real inside story. Let's hope she learned some of the new Business Objects 4 features.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-336788613372809571?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/336788613372809571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=336788613372809571' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/336788613372809571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/336788613372809571'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/03/business-objects.html' title='Business Objects'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-1V4f1vq09_8/TX5lKD42pII/AAAAAAAAB2E/GJuSFN1FyBI/s72-c/SAP.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-6013533895534010902</id><published>2011-03-08T15:08:00.002-05:00</published><updated>2011-03-08T15:13:35.888-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OEMRESOURCES'/><category scheme='http://www.blogger.com/atom/ns#' term='OBM_CHECKBOXES'/><title type='text'>Getting the Build Working</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/-R1O7ETgvk_s/TXaM0z5nydI/AAAAAAAAB10/VoK1rBamVq0/s1600/Checkbox.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 300px; FLOAT: left; HEIGHT: 225px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5581803627085285842" border="0" alt="" src="http://3.bp.blogspot.com/-R1O7ETgvk_s/TXaM0z5nydI/AAAAAAAAB10/VoK1rBamVq0/s320/Checkbox.jpg" /&gt;&lt;/a&gt;My team lead asked me to assist a junior developer with their compile problems. The team lead tried to help previously. But our software would not build on one developer's new machine.&lt;br /&gt;&lt;br /&gt;I took a look at some of the errors. There were calls to bitmap functions, passing in literals like &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;OBM&lt;/span&gt;_&lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;CHECKBOXES&lt;/span&gt;. I searched around and found these were defined in "&lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;winuser&lt;/span&gt;.h". That file should be getting included I thought.&lt;br /&gt;&lt;br /&gt;So I went and traced how "&lt;span id="SPELLING_ERROR_3" class="blsp-spelling-error"&gt;winuser&lt;/span&gt;.h" gets included. I found that it all starts with "&lt;span id="SPELLING_ERROR_4" class="blsp-spelling-error"&gt;stdafx&lt;/span&gt;.h", and eventually get included from "windows.h". Then I saw that these header files were present and included on the new machine. They were.&lt;br /&gt;&lt;br /&gt;Upon closer inspection of "&lt;span id="SPELLING_ERROR_5" class="blsp-spelling-error"&gt;winuser&lt;/span&gt;.h", the literals are only defined if you have already defined &lt;span id="SPELLING_ERROR_6" class="blsp-spelling-error"&gt;OEMRESOURCES&lt;/span&gt;. I went through the exercise again finding how &lt;span id="SPELLING_ERROR_7" class="blsp-spelling-error"&gt;OEMRESOURCES&lt;/span&gt; gets defined on my machine. It is part of the project. Turns out the new machine had a project file which failed to define &lt;span id="SPELLING_ERROR_8" class="blsp-spelling-error"&gt;OEMRESOURCES&lt;/span&gt; for the debug build. Getting a correct project file solved this problem.&lt;br /&gt;&lt;br /&gt;The details of the debugging are not important. The process is important. I did most of the investigation along side our junior developer. &lt;span id="SPELLING_ERROR_9" class="blsp-spelling-corrected"&gt;Hopefully&lt;/span&gt; some of this is rubbing off. Next step is to debug why another project fails to build on the machine due to missing &lt;span id="SPELLING_ERROR_10" class="blsp-spelling-error"&gt;DLL&lt;/span&gt; dependencies. Fun stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-6013533895534010902?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/6013533895534010902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=6013533895534010902' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/6013533895534010902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/6013533895534010902'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/03/getting-build-working.html' title='Getting the Build Working'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-R1O7ETgvk_s/TXaM0z5nydI/AAAAAAAAB10/VoK1rBamVq0/s72-c/Checkbox.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-2658089459397316000</id><published>2011-02-14T13:49:00.003-05:00</published><updated>2011-02-14T13:54:21.706-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='plan'/><category scheme='http://www.blogger.com/atom/ns#' term='negotiation'/><category scheme='http://www.blogger.com/atom/ns#' term='duties'/><category scheme='http://www.blogger.com/atom/ns#' term='revenue'/><category scheme='http://www.blogger.com/atom/ns#' term='benefit'/><title type='text'>Tips on Getting That Raise</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-RLajoNZielU/TVl5Voy2PZI/AAAAAAAAB1M/baKwyPW_Wqc/s1600/Raise.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 292px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5573619426482601362" border="0" alt="" src="http://4.bp.blogspot.com/-RLajoNZielU/TVl5Voy2PZI/AAAAAAAAB1M/baKwyPW_Wqc/s320/Raise.jpg" /&gt;&lt;/a&gt;You want a raise at your company. The biggest obstacle to overcome is that you need to actually go ask for one. Now there are some other factors that may increase success.&lt;br /&gt;&lt;br /&gt;Work on some challenging tasks. It is best if they bring in a bunch of revenue. Make sure you take credit for the results. Emphasize the benefit to the company (this is easy if the benefit is that the company made a boatload of cash).&lt;br /&gt;&lt;br /&gt;When you ask for more money, don't tie the request for the great job you already did. Talk about what further great deeds you will do. Couple this with a plan to increase your duties.&lt;br /&gt;&lt;br /&gt;Before you head in for that raise, have a plan for what you will do if you get denied. Read up on a lot of books on successful negotiation. They will tell you about this. Finally be prepared to switch companies, and maybe even move to a new city.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-2658089459397316000?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/2658089459397316000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=2658089459397316000' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/2658089459397316000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/2658089459397316000'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/02/tips-on-getting-that-raise.html' title='Tips on Getting That Raise'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-RLajoNZielU/TVl5Voy2PZI/AAAAAAAAB1M/baKwyPW_Wqc/s72-c/Raise.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-7639325624113832116</id><published>2011-02-08T10:36:00.004-05:00</published><updated>2011-02-08T10:41:13.821-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='customer'/><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='production'/><category scheme='http://www.blogger.com/atom/ns#' term='triggers'/><category scheme='http://www.blogger.com/atom/ns#' term='audit'/><title type='text'>Use the Logs</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_7RXOll2bOJs/TVFjCEolL1I/AAAAAAAAB00/MDSP5eS1XOI/s1600/Audit.bmp"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 299px; FLOAT: left; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5571343101288853330" border="0" alt="" src="http://1.bp.blogspot.com/_7RXOll2bOJs/TVFjCEolL1I/AAAAAAAAB00/MDSP5eS1XOI/s320/Audit.bmp" /&gt;&lt;/a&gt;I am helping out my old team, researching bugs reported by the customer. Recently one was opened that was going to be a big deal unless it got fixed pronto. The customer put this fact in the bug description. I worked with my team lead on this problem since he had some access issues on his computer.&lt;br /&gt;&lt;br /&gt;First thing I did was get an agreement on how the application was supposed to act in the normal flow. Then I reviewed some abnormal flows. Finally we looked at the production data for the examples provided by the customer. I have been doing this for many years. So I knew how to mine our audit tables for the history of how objects flowed through the system.&lt;br /&gt;&lt;br /&gt;My team lead was amazed by this. He apparently had never queried the database to get this information. We got a bunch of triggers which store off state changes of interest. This comes in really handy when you are debugging tough problems. I spotted the pattern. The software was actually behaving as designed. These were just some boundary cases which do not behave like the normal flow. As soon as I briefed the main customers on our findings, the trouble ticket was closed with a reason of no trouble found.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-7639325624113832116?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/7639325624113832116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=7639325624113832116' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7639325624113832116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7639325624113832116'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/02/use-logs.html' title='Use the Logs'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_7RXOll2bOJs/TVFjCEolL1I/AAAAAAAAB00/MDSP5eS1XOI/s72-c/Audit.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-891460701096325154</id><published>2011-02-05T13:01:00.000-05:00</published><updated>2011-02-05T13:01:00.494-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='passionate'/><category scheme='http://www.blogger.com/atom/ns#' term='smart'/><category scheme='http://www.blogger.com/atom/ns#' term='interviews'/><category scheme='http://www.blogger.com/atom/ns#' term='resume'/><category scheme='http://www.blogger.com/atom/ns#' term='training'/><category scheme='http://www.blogger.com/atom/ns#' term='TDD'/><title type='text'>How to Get a Job</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_7RXOll2bOJs/TUrtkXqWOVI/AAAAAAAAB0s/zNp6KbGKizU/s1600/Job.gif"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 294px; FLOAT: left; HEIGHT: 215px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5569525098279745874" border="0" alt="" src="http://4.bp.blogspot.com/_7RXOll2bOJs/TUrtkXqWOVI/AAAAAAAAB0s/zNp6KbGKizU/s320/Job.gif" /&gt;&lt;/a&gt;Just skimmed a book on how to get a programming job. It was packed full of info. Here are some highlights.&lt;br /&gt;&lt;br /&gt;You need to possess some key traits such a being smart, able to get things done, and being passionate. Learn on your own.&lt;br /&gt;&lt;br /&gt;Don't wait for your company to send you to training. You should especially research technology that you know your company is moving towards. To be efficient, get in the habit of writing the minimal set of code to get the job done.&lt;br /&gt;&lt;br /&gt;Hit up the normal suspects on the web for your job search. This includes Dice, Monster, and Career Builder. You should also check out USA Jobs if you are willing to work for the government. Forget about the freelance sites unless you are willing to work on projects that pay fifty bucks for the entire project.&lt;br /&gt;&lt;br /&gt;Sending resumes if a low probability game. You are lucky if 10% of the resumes you send out even get read. You can up your success if you also email the resume to the person you will actually be working for.&lt;br /&gt;&lt;br /&gt;Bring multiple copies of your resume to any interviews you go to. Do not seem desperate for a job. Know test driven development (TDD). And if you are going for a JavaScript job, make sure you know the DOM, events, &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;JSON&lt;/span&gt;, and &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;jQuery&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-891460701096325154?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/891460701096325154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=891460701096325154' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/891460701096325154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/891460701096325154'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/02/how-to-get-job.html' title='How to Get a Job'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_7RXOll2bOJs/TUrtkXqWOVI/AAAAAAAAB0s/zNp6KbGKizU/s72-c/Job.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-7316891233864821883</id><published>2011-02-04T11:16:00.002-05:00</published><updated>2011-02-04T11:16:00.299-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unit testing'/><category scheme='http://www.blogger.com/atom/ns#' term='web services'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>SharePoint Development is Hard</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_7RXOll2bOJs/TUmDgaBorgI/AAAAAAAAB0Q/J1UQAIpquQE/s1600/SharePoint.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 263px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5569127006985563650" border="0" alt="" src="http://1.bp.blogspot.com/_7RXOll2bOJs/TUmDgaBorgI/AAAAAAAAB0Q/J1UQAIpquQE/s320/SharePoint.jpg" /&gt;&lt;/a&gt;&lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;SharePoint&lt;/span&gt; is not like other development platforms. You need to learn many skills to be proficient at &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;SharePoint&lt;/span&gt;. Unit testing is very difficult on this platform. You must know your markup languages such as &lt;a href="http://xmlhome.blogspot.com/"&gt;XML&lt;/a&gt;. To deploy you need to know something like &lt;a href="http://micro-softus.blogspot.com/"&gt;&lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;PowerShell&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;That is not all. You had better know web services to be a good &lt;span id="SPELLING_ERROR_3" class="blsp-spelling-error"&gt;SharePoint&lt;/span&gt; developer. Let's face it. You might be learning all your life to be a good &lt;span id="SPELLING_ERROR_4" class="blsp-spelling-error"&gt;SharePoint&lt;/span&gt; developer. That might not be a bad thing.&lt;br /&gt;&lt;br /&gt;I don't know. This sounds too complex for me. Maybe if I got in early I would be interested in &lt;span id="SPELLING_ERROR_5" class="blsp-spelling-error"&gt;SharePoint&lt;/span&gt; development.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-7316891233864821883?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/7316891233864821883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=7316891233864821883' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7316891233864821883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7316891233864821883'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/02/sharepoint-development-is-hard.html' title='SharePoint Development is Hard'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_7RXOll2bOJs/TUmDgaBorgI/AAAAAAAAB0Q/J1UQAIpquQE/s72-c/SharePoint.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-4557311563937267427</id><published>2011-02-03T11:11:00.001-05:00</published><updated>2011-02-03T13:00:44.067-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Programming Languages</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_7RXOll2bOJs/TUrtRZYlxoI/AAAAAAAAB0c/S2Ip37fF7NU/s1600/Languages.jpg"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 320px; DISPLAY: block; HEIGHT: 247px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5569524772324624002" border="0" alt="" src="http://3.bp.blogspot.com/_7RXOll2bOJs/TUrtRZYlxoI/AAAAAAAAB0c/S2Ip37fF7NU/s320/Languages.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_7RXOll2bOJs/TUmCRDXa3hI/AAAAAAAAB0I/UR6dUV_9TLQ/s1600/Languages.jpg"&gt;&lt;/a&gt;What are the hot programmings languages developers need to know? The real question should be what will be the hot programming languages in the future. Web programming has involved Ruby, Python, and &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;PHP&lt;/span&gt;. However they are being eclipsed by JavaScript.&lt;br /&gt;&lt;br /&gt;The enterprise uses Java. You don't see your main apps being rewritten with Ruby. Ruby is used for some smaller non-critical apps. Yet Ruby developers are currently commanding the big bucks.&lt;br /&gt;&lt;br /&gt;So Ruby has some gas. But in the end it will probably be JavaScript that rules. Python, Perl, and &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;PHP&lt;/span&gt; will most likely fade. You got to invest in the right language to pay off in the future.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-4557311563937267427?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/4557311563937267427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=4557311563937267427' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/4557311563937267427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/4557311563937267427'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/02/programming-languages.html' title='Programming Languages'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_7RXOll2bOJs/TUrtRZYlxoI/AAAAAAAAB0c/S2Ip37fF7NU/s72-c/Languages.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-992262373150503631</id><published>2011-02-02T10:42:00.002-05:00</published><updated>2011-02-02T10:48:31.754-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='downvoting'/><category scheme='http://www.blogger.com/atom/ns#' term='reputation'/><category scheme='http://www.blogger.com/atom/ns#' term='answers'/><category scheme='http://www.blogger.com/atom/ns#' term='questions'/><title type='text'>Stack Overflow</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_7RXOll2bOJs/TUl7y0I8_AI/AAAAAAAABz4/0-JT26uGqsE/s1600/Reputation.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 292px; FLOAT: left; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5569118527140199426" border="0" alt="" src="http://3.bp.blogspot.com/_7RXOll2bOJs/TUl7y0I8_AI/AAAAAAAABz4/0-JT26uGqsE/s320/Reputation.jpg" /&gt;&lt;/a&gt;Yesterday I read a rant about Stack Overflow. The author explained how things actually work with Stack Overflow. You start with a reputation score of 1. If you get &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;downvoted&lt;/span&gt;, you lose rep. You get more rep by &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-corrected"&gt;answering&lt;/span&gt; questions.&lt;br /&gt;&lt;br /&gt;Unfortunately most questions have 10 or more answers. You need to try to answer new &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-corrected"&gt;questions&lt;/span&gt; quickly. But everyone else is doing this too. It is hard to get an answer in there quickly enough.&lt;br /&gt;&lt;br /&gt;One thing the author did not take into account is that you can also gain rep by asking questions. There are some techniques to game the system. For example, you can find new questions and put a placeholder answer in there. Later you can go back and edit your answer with a solid one.&lt;br /&gt;&lt;br /&gt;Personally I don't support Stack Overflow. I used to like the Joel on Software discussion boards. However Joel seems to have let these languish. Instead he is concentrating on his new Stack Overflow &lt;span id="SPELLING_ERROR_3" class="blsp-spelling-error"&gt;startup&lt;/span&gt;. So I am on a sort of boycott of that system. There might be good information on there. But I figure the Internet has answers our there as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-992262373150503631?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/992262373150503631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=992262373150503631' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/992262373150503631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/992262373150503631'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/02/stack-overflow.html' title='Stack Overflow'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_7RXOll2bOJs/TUl7y0I8_AI/AAAAAAAABz4/0-JT26uGqsE/s72-c/Reputation.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-5745079778551267911</id><published>2011-01-27T14:20:00.003-05:00</published><updated>2011-01-27T14:24:46.996-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='production database'/><category scheme='http://www.blogger.com/atom/ns#' term='resources'/><category scheme='http://www.blogger.com/atom/ns#' term='source code'/><title type='text'>Developers Need Production Access</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_7RXOll2bOJs/TUHFnESmFTI/AAAAAAAABzw/zHepb30i5C0/s1600/Access.png"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 256px; FLOAT: left; HEIGHT: 256px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5566947889363948850" border="0" alt="" src="http://2.bp.blogspot.com/_7RXOll2bOJs/TUHFnESmFTI/AAAAAAAABzw/zHepb30i5C0/s320/Access.png" /&gt;&lt;/a&gt;My old development team is hurting for resources. I got assigned to give them a hand. There were some production problems they could not replicate. They searched the source code, but could not come up with any definitive answers.&lt;br /&gt;&lt;br /&gt;I spent the morning scanning the source code as well. However I have access to the production database. This allowed me to ensure the applications were behaving correctly. The other developers on the team did not have production access.&lt;br /&gt;&lt;br /&gt;Now I can understand you don't want everybody looking at production data. But if you want your developers to be able to solve problems fast, give them read only access to production data. If can be the difference between solving a problem in a few hours, versus floundering around for a few weeks or a few months.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-5745079778551267911?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/5745079778551267911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=5745079778551267911' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5745079778551267911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5745079778551267911'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/01/developers-need-production-access.html' title='Developers Need Production Access'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7RXOll2bOJs/TUHFnESmFTI/AAAAAAAABzw/zHepb30i5C0/s72-c/Access.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-6195588103619528801</id><published>2011-01-24T14:40:00.002-05:00</published><updated>2011-01-24T14:44:11.561-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='find file'/><title type='text'>Going to UNIX</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_7RXOll2bOJs/TT3V4EsT7fI/AAAAAAAABzI/A-fdLG5sC3g/s1600/UNIX.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 300px; FLOAT: left; HEIGHT: 300px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5565839873808788978" border="0" alt="" src="http://3.bp.blogspot.com/_7RXOll2bOJs/TT3V4EsT7fI/AAAAAAAABzI/A-fdLG5sC3g/s320/UNIX.jpg" /&gt;&lt;/a&gt;The big boss told me he wanted to me join another team on the project. They just lost a member and are hurting for help. There is just one problem with this plan. This team does C/UNIX programming. I am a C++/Windows developer.&lt;br /&gt;&lt;br /&gt;Sure I guess I can figure things out. But it will be a slow process. I got my &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-corrected"&gt;configuration&lt;/span&gt; management set up on my UNIX account. However I did not know the command to do a "find in files". I normally let my Visual Studio tool do that for me. Now I need to know the command line to accomplish that task.&lt;br /&gt;&lt;br /&gt;&lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;Ok&lt;/span&gt;. I figured out how to search for a file. But now I cannot build a UNIX program. They even got a make file and I cannot get the darn thing to build. Must be some &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;config&lt;/span&gt; settings that are missing in my environment. I don't want to waste the other team members' time. So I am slugging through it on my own. This is going to be painful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-6195588103619528801?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/6195588103619528801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=6195588103619528801' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/6195588103619528801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/6195588103619528801'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/01/going-to-unix.html' title='Going to UNIX'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_7RXOll2bOJs/TT3V4EsT7fI/AAAAAAAABzI/A-fdLG5sC3g/s72-c/UNIX.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-3282776556110254082</id><published>2011-01-21T14:52:00.003-05:00</published><updated>2011-01-21T14:57:40.959-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='customer'/><category scheme='http://www.blogger.com/atom/ns#' term='application'/><category scheme='http://www.blogger.com/atom/ns#' term='DBA'/><category scheme='http://www.blogger.com/atom/ns#' term='system admin'/><title type='text'>Running Around in Circles</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_7RXOll2bOJs/TTnkOUL9rvI/AAAAAAAABzA/W7HHpMV-N_8/s1600/Manual.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 285px; FLOAT: left; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5564729749181148914" border="0" alt="" src="http://2.bp.blogspot.com/_7RXOll2bOJs/TTnkOUL9rvI/AAAAAAAABzA/W7HHpMV-N_8/s320/Manual.jpg" /&gt;&lt;/a&gt;My boss told me to address a customer problem ASAP. I could not figure what was wrong. So I called the customer up directly. She said that they were following a manual work around process to load some configuration data. However the system administrator was running into some errors.&lt;br /&gt;&lt;br /&gt;I investigated and found that the code required was commented out of the package. The fix seemed simple. I enable the code and gave it to my &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;DBA&lt;/span&gt;. He had some trouble promoting the fix to other database &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;schemas&lt;/span&gt;. I looked into those problems, made some code adjustments to the stored procedures, and again I thought we were good to go.&lt;br /&gt;&lt;br /&gt;Another customer piped in and said that the whole manual work around was obsolete. Some new features in one of the applications had been made to take over the functionality. &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;Doh&lt;/span&gt;! I had been running around for the last couple days to get this back end process running. But it turns out they did not really need that. Ouch. It even hurt more when I had to back out my changes. Let's hope the new functionality in the application takes care of our customer needs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-3282776556110254082?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/3282776556110254082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=3282776556110254082' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/3282776556110254082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/3282776556110254082'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/01/running-around-in-circles.html' title='Running Around in Circles'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7RXOll2bOJs/TTnkOUL9rvI/AAAAAAAABzA/W7HHpMV-N_8/s72-c/Manual.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-501053984822004809</id><published>2011-01-03T14:48:00.004-05:00</published><updated>2011-01-03T14:56:37.558-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unit tests'/><category scheme='http://www.blogger.com/atom/ns#' term='logging'/><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><category scheme='http://www.blogger.com/atom/ns#' term='technical debt'/><title type='text'>Programming Wisdom</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_7RXOll2bOJs/TSIoLK1OO7I/AAAAAAAAByY/y12zDkXqHzs/s1600/Wisdom.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 212px; FLOAT: left; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5558049062479870898" border="0" alt="" src="http://3.bp.blogspot.com/_7RXOll2bOJs/TSIoLK1OO7I/AAAAAAAAByY/y12zDkXqHzs/s320/Wisdom.jpg" /&gt;&lt;/a&gt;I skimmed through a compendium of 100 things programmers need to know. There was some good stuff in there. I will summarize the top 10 or so right here.&lt;br /&gt;&lt;br /&gt;The first is that technical debt may be inevitable in the short term. Sometimes you just got to ship. Be quick to remove it though.&lt;br /&gt;&lt;br /&gt;Automatically format code. Do it as part of the build. I like the sound of that. We have some nasty formatting in most of our code. We normally try to fix this manually. Ouch.&lt;br /&gt;&lt;br /&gt;The best methods are about 10 lines of code each. You should also limit the number of parameters passed in to a max of 4.&lt;br /&gt;&lt;br /&gt;Good programmers care about the code they produce. Great ones care about the entire team's code. I am not sure I am ready to be one of the great ones. Honestly.&lt;br /&gt;&lt;br /&gt;The best programmers are great because of hard work. There are normally not any shortcuts. No pain, no gain here. Once again I doubt I am ready for any more pain that I am already enduring.&lt;br /&gt;&lt;br /&gt;Here is a tip I like. If you try to be productive doing code for more than 30 hours a week, you are working too hard. Try telling that one to the management team. &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;Hehe&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Thou shalt learn to use the command line version of your tools. Period. All great UNIX hackers already know this. Time for the Microsoft crowd to catch up.&lt;br /&gt;&lt;br /&gt;Testing should be done on the weekend. That is, you should automate your testing. If it takes too long to run, run it overnight. The weekend is a great opportunity to run the full suite of tests.&lt;br /&gt;&lt;br /&gt;Too much logging is no good. We suffer from this ailment on our project. I try to cut back on the logging. However I find programmers just go in behind me and want to add the massive logging back in. You know we are in trouble when the database blows up due to massive logging.&lt;br /&gt;&lt;br /&gt;Finally you should test your unit tests by injecting an error and seeing if it is caught. I tried pitching this idea once before. Management was actually receptive. Then I got real busy and dropped the ball. Time to reintroduce this one to the project.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-501053984822004809?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/501053984822004809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=501053984822004809' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/501053984822004809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/501053984822004809'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2011/01/programming-wisdom.html' title='Programming Wisdom'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_7RXOll2bOJs/TSIoLK1OO7I/AAAAAAAAByY/y12zDkXqHzs/s72-c/Wisdom.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-243412617106989549</id><published>2010-12-15T14:56:00.002-05:00</published><updated>2010-12-15T15:01:30.519-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='requirements'/><category scheme='http://www.blogger.com/atom/ns#' term='meeting'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><category scheme='http://www.blogger.com/atom/ns#' term='unit test'/><title type='text'>Last Minute Changes</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_7RXOll2bOJs/TQkdnV7BMvI/AAAAAAAABxs/xVMZyV3GIvc/s1600/Requirements.bmp"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 216px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5551000577447637746" border="0" alt="" src="http://2.bp.blogspot.com/_7RXOll2bOJs/TQkdnV7BMvI/AAAAAAAABxs/xVMZyV3GIvc/s320/Requirements.bmp" /&gt;&lt;/a&gt;Today there was a meeting scheduled with the customer to review some last minute requirement changes. I went to lunch early so I would not miss the meeting. I dial in to the conference, but all I get is elevator music. After a while, the requirements team calls me up. I find out that I dialed the wrong number. This was a bad omen.&lt;br /&gt;&lt;br /&gt;We get into the meeting. The requirements team drives the discussion. But they always go to me for all customer questions. This time around I had them document exactly what the code does. The danger is that this opens up all kinds of discussion. Now is not the time to discuss. We are at the end of testing. However it is better to get the bad news now than later after the code is running in production.&lt;br /&gt;&lt;br /&gt;I get banged up a bit. There are some surprise requirements. I take it in stride. Right after the meeting I am banging out code. Luckily I have a huge unit test code library that helps me test out the changes. But guess what? I found a bug in my unit test data generation routine that is affecting the latest changes. I debug that and then test out all the new stuff. Oh boy this is so last minute. Luckily I am going on vacation next week. People on the team are &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-corrected"&gt;scrambling&lt;/span&gt; to figure out who will be backing me up next week. Rant off.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-243412617106989549?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/243412617106989549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=243412617106989549' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/243412617106989549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/243412617106989549'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/12/last-minute-changes.html' title='Last Minute Changes'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7RXOll2bOJs/TQkdnV7BMvI/AAAAAAAABxs/xVMZyV3GIvc/s72-c/Requirements.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-7287577326238357205</id><published>2010-12-14T14:58:00.003-05:00</published><updated>2010-12-14T15:04:47.876-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='team lead'/><category scheme='http://www.blogger.com/atom/ns#' term='production'/><category scheme='http://www.blogger.com/atom/ns#' term='project manager'/><title type='text'>LOL</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_7RXOll2bOJs/TQfMkb7VNLI/AAAAAAAABxc/PYzv0ObMKyM/s1600/LOL.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 243px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5550629992101393586" border="0" alt="" src="http://4.bp.blogspot.com/_7RXOll2bOJs/TQfMkb7VNLI/AAAAAAAABxc/PYzv0ObMKyM/s320/LOL.jpg" /&gt;&lt;/a&gt;I had a ton of messages on my phone when I got in this morning. Nice. One of them was from my team lead. He usually does not call me. So I got in tough with him right away.&lt;br /&gt;&lt;br /&gt;A project manager had asked him to get me to check up on a customer problem in the production environment. Apparently he thought this would take me all of 10 minutes. It actually took longer than 10 minutes for me to even understand what the heck they were asking.&lt;br /&gt;&lt;br /&gt;Here is what I gathered. The customer testing group had some concerns over some processing. Our manager wanted me to mine the production data, figure out from the data whether the customer concerns were valid, and provide the hard evidence either way.&lt;br /&gt;&lt;br /&gt;All I can say is &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;LOL&lt;/span&gt;. If I were given a few days, I could knock out this work. But 10 &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-corrected"&gt;minutes&lt;/span&gt;? Please. Each of the many queries I need to run against our huge production data set might take 10 minutes. Right now I don't even know how to compose the queries without doing analysis up front. My team lead is a true diplomat. He said that he would respond by saying that my hands are full, and that I would try to help if I got any free time.&lt;br /&gt;&lt;br /&gt;&lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;Muhahaha&lt;/span&gt;. You got to love my team lead. He is a politician in the making. I actually work directly for a different manager. He directed my to spend my time working on some new customer requirements that need to go out ASAP. I was told that I can direct all my time on that task. I am going to follow my direct manager's orders for now. Still laughing at the 10 minute estimate though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-7287577326238357205?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/7287577326238357205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=7287577326238357205' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7287577326238357205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7287577326238357205'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/12/lol.html' title='LOL'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_7RXOll2bOJs/TQfMkb7VNLI/AAAAAAAABxc/PYzv0ObMKyM/s72-c/LOL.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-4708829284356471121</id><published>2010-12-13T11:22:00.003-05:00</published><updated>2010-12-13T11:28:41.607-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='requirements'/><category scheme='http://www.blogger.com/atom/ns#' term='testers'/><category scheme='http://www.blogger.com/atom/ns#' term='estimates'/><category scheme='http://www.blogger.com/atom/ns#' term='documentation'/><title type='text'>Small Changes Take Long Time</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_7RXOll2bOJs/TQZJq1fV4ZI/AAAAAAAABxM/HYLWsPHXMlA/s1600/Small.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 320px; DISPLAY: block; HEIGHT: 213px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5550204591042584978" border="0" alt="" src="http://1.bp.blogspot.com/_7RXOll2bOJs/TQZJq1fV4ZI/AAAAAAAABxM/HYLWsPHXMlA/s320/Small.bmp" /&gt;&lt;/a&gt;Some testers discovered some differences between our written requirements and they way our software was working. We decided to change the requirements to match the software. This really was a documentation problem. You would think this would be the end of the issue. No chance.&lt;br /&gt;&lt;br /&gt;The customer inspected the requirements. They realized some other things were missing as well. Those other things were not in the software. Essentially the customer wanted some more last minute changes. They said this was important. Oh oh.&lt;br /&gt;&lt;br /&gt;Now of course these changes were to be done by me. I was asked how long the changes would take. I conservatively estimated a few days minimum. My boss translated that into a 32 to 40 hour job. Why does such a small change take so long? There are many reasons. We got to make sure we get the requirements right. That job should go to an analyst. However you know a developer needs to be involved.&lt;br /&gt;&lt;br /&gt;Then you need to code the change. That does not take much time at all. Next you need to do your testing. It is difficult to set up just the right set of unit test data. You also need to document all your tests. Guess what else needs to be documented? Changes to the design. This goes in the design document. Then we need to roll out the change to all the environments that need it. There is internal test, customer test, then production. Now 40 hours does not sound all that long.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-4708829284356471121?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/4708829284356471121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=4708829284356471121' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/4708829284356471121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/4708829284356471121'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/12/small.html' title='Small Changes Take Long Time'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_7RXOll2bOJs/TQZJq1fV4ZI/AAAAAAAABxM/HYLWsPHXMlA/s72-c/Small.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-189166617910378211</id><published>2010-11-18T14:44:00.003-05:00</published><updated>2010-11-18T14:49:27.914-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UNIX'/><category scheme='http://www.blogger.com/atom/ns#' term='DBA'/><category scheme='http://www.blogger.com/atom/ns#' term='email'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><title type='text'>Easy as SendMail</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_7RXOll2bOJs/TOWCLt-_DyI/AAAAAAAABw0/bXY0UUatBDg/s1600/Sendmail.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 244px; FLOAT: left; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5540978054383210274" border="0" alt="" src="http://1.bp.blogspot.com/_7RXOll2bOJs/TOWCLt-_DyI/AAAAAAAABw0/bXY0UUatBDg/s320/Sendmail.jpg" /&gt;&lt;/a&gt;We have a data correction script scheduled to go out to Production. The results are supposed to be emailed to the customer. A &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;DBA&lt;/span&gt; got assigned to help with getting the email produced automatically.&lt;br /&gt;&lt;br /&gt;Being a developer, I thought it would be as easy as getting an &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;API&lt;/span&gt; from the &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;DBA&lt;/span&gt; on how to make the call to send an email. Nope. The &lt;span id="SPELLING_ERROR_3" class="blsp-spelling-error"&gt;DBA&lt;/span&gt; wanted to take the script and implement it himself. Bad sign #1.&lt;br /&gt;&lt;br /&gt;My boss wanted me to ensure the email was being scheduled at the right time. Turns out the &lt;span id="SPELLING_ERROR_4" class="blsp-spelling-error"&gt;DBA&lt;/span&gt; was confused over when to do the work. Great. Then it turns out that the &lt;span id="SPELLING_ERROR_5" class="blsp-spelling-error"&gt;DBA&lt;/span&gt; did not know how to actually send the mail.&lt;br /&gt;&lt;br /&gt;Another &lt;span id="SPELLING_ERROR_6" class="blsp-spelling-error"&gt;DBA&lt;/span&gt; asked if we had &lt;span id="SPELLING_ERROR_7" class="blsp-spelling-error"&gt;SendMail&lt;/span&gt; capability on the UNIX box. How do you test this? Easy. Run /user/lib/&lt;span id="SPELLING_ERROR_8" class="blsp-spelling-error"&gt;sendmail&lt;/span&gt;, passing an email address on the command line. Then enter in some text for the body of the email. Finally type a period followed by the Enter key.&lt;br /&gt;&lt;br /&gt;Email will either be sent or not. For the record, it works on my UNIX development box.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-189166617910378211?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/189166617910378211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=189166617910378211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/189166617910378211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/189166617910378211'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/11/easy-as-sendmail.html' title='Easy as SendMail'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_7RXOll2bOJs/TOWCLt-_DyI/AAAAAAAABw0/bXY0UUatBDg/s72-c/Sendmail.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-1403541036125387289</id><published>2010-11-15T11:45:00.003-05:00</published><updated>2010-11-15T11:50:51.906-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='college'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 6'/><category scheme='http://www.blogger.com/atom/ns#' term='reinstall'/><title type='text'>Dreamspark to the Rescue</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_7RXOll2bOJs/TOFjzZ2oMBI/AAAAAAAABws/ME31jVnJFVI/s1600/Dreamspark.png"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 311px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5539818751406911506" border="0" alt="" src="http://1.bp.blogspot.com/_7RXOll2bOJs/TOFjzZ2oMBI/AAAAAAAABws/ME31jVnJFVI/s320/Dreamspark.png" /&gt;&lt;/a&gt;I own a personal copy of Microsoft Visual Studio 6. It was purchased with my own money. When I first arrived at my company, they handed me a laptop. I was told I would get an additional laptop to do the development for our customer. It would just be a big wait.&lt;br /&gt;&lt;br /&gt;What did I do? I installed my own personal copy of Visual Studio 6 on my company laptop. The main reason I did this was that I use Visual Studio as my text editor. I am very familiar with it.&lt;br /&gt;&lt;br /&gt;Just the other day, Visual Studio 6 started aborting on my when I tried to open a file. The problem happened again today. My solution is to unintall and reinstall the darn thing. However after uninstalling, I looked around to see if I could install an upgrade instead. I have not purchased a new copy of Visual Studio yet.&lt;br /&gt;&lt;br /&gt;Luckily I am a student in the local community college. Through Microsoft's Dreamspark program, they provide free access to all the professional versions of Visual Studio. Why should I not go to the most recent Visual Studio 2010 install. The install is 2G large. I hope it will be worth the wait. Thanks Microsoft.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-1403541036125387289?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/1403541036125387289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=1403541036125387289' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/1403541036125387289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/1403541036125387289'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/11/dreamspark-to-rescue.html' title='Dreamspark to the Rescue'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_7RXOll2bOJs/TOFjzZ2oMBI/AAAAAAAABws/ME31jVnJFVI/s72-c/Dreamspark.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-4863110700830310450</id><published>2010-11-10T14:57:00.001-05:00</published><updated>2010-11-10T15:02:01.103-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unit tests'/><category scheme='http://www.blogger.com/atom/ns#' term='problems'/><category scheme='http://www.blogger.com/atom/ns#' term='quality assurance'/><title type='text'>Dreaded Screen Shots</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_7RXOll2bOJs/TNr5OVQr3MI/AAAAAAAABwk/OKIEO0-sSas/s1600/ScreenShot.png"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 232px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5538012716426058946" border="0" alt="" src="http://1.bp.blogspot.com/_7RXOll2bOJs/TNr5OVQr3MI/AAAAAAAABwk/OKIEO0-sSas/s320/ScreenShot.png" /&gt;&lt;/a&gt;I am on loan to my old team to take care of some high priority problems for them. At first I protested. But the boss said they needed help. So I am finishing up the development of a fix. Then I needed to help the quality assurance team test out my changes. Fair enough.&lt;br /&gt;&lt;br /&gt;Now I got some bad news. The quality assurance team is too busy to do any testing. So I got to do the testing. That by itself is fine by me. I unit test my stuff. I even produce a unit test plan complete with the results from testing.&lt;br /&gt;&lt;br /&gt;However I got word that the tests required a big document that showed exactly what was tested and how. That means there needs to be a massive Microsoft Word document with all kinds of screen shots. What? Come on now. Don't make me join the insanity. I am all for doing tasks that add value. But this seems ridiculous. Nobody is going to be looking at this massive document.&lt;br /&gt;&lt;br /&gt;Perhaps I should just paste in some random pictures and forget about fighting the system. What do you think?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-4863110700830310450?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/4863110700830310450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=4863110700830310450' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/4863110700830310450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/4863110700830310450'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/11/dreaded-screen-shots.html' title='Dreaded Screen Shots'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_7RXOll2bOJs/TNr5OVQr3MI/AAAAAAAABwk/OKIEO0-sSas/s72-c/ScreenShot.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-5223017185354925159</id><published>2010-11-08T11:11:00.003-05:00</published><updated>2010-11-08T11:15:48.395-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='customer'/><category scheme='http://www.blogger.com/atom/ns#' term='unit testing'/><category scheme='http://www.blogger.com/atom/ns#' term='build'/><category scheme='http://www.blogger.com/atom/ns#' term='changes'/><title type='text'>All About Timing</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_7RXOll2bOJs/TNghT8vyYCI/AAAAAAAABwE/LCB5Q0v0Zfs/s1600/Timing.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 256px; FLOAT: left; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5537212368459816994" border="0" alt="" src="http://4.bp.blogspot.com/_7RXOll2bOJs/TNghT8vyYCI/AAAAAAAABwE/LCB5Q0v0Zfs/s320/Timing.jpg" /&gt;&lt;/a&gt;I am working on a high priority problem our customer has. They told me the behavior of the applications is unacceptable. No problem. I am the Maintenance Man after all. So I coded up the app changes that will takes care of their problems. You would think that I am done. No chance. There is much more to it than that.&lt;br /&gt;&lt;br /&gt;Next I ran through all my unit testing. Then I need to get my changes over to our quality assurance team. You would think we could just click a button and I could get them a &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-corrected"&gt;build&lt;/span&gt;. It is never quite that simple. There are all kinds of manual processes to get a build to test. Now I need to go through them.&lt;br /&gt;&lt;br /&gt;The end goal is to provide the fix to the customers. However the powers that be in the customer organization want to limit any changes we send them. Therefore I need to clear my release with the big dogs. Next I find out that it takes 72 hours for the customer organization to receive my app and install it everywhere. Luckily I know all these things. All this overhead is baked into my delivery estimates. And you wonder why it takes a few weeks to push out 20 lines of code changes. Now you know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-5223017185354925159?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/5223017185354925159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=5223017185354925159' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5223017185354925159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5223017185354925159'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/11/all-about-timing.html' title='All About Timing'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_7RXOll2bOJs/TNghT8vyYCI/AAAAAAAABwE/LCB5Q0v0Zfs/s72-c/Timing.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-2404638589065338302</id><published>2010-10-29T15:02:00.003-04:00</published><updated>2010-10-29T15:07:31.391-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UNIX'/><category scheme='http://www.blogger.com/atom/ns#' term='unistd'/><category scheme='http://www.blogger.com/atom/ns#' term='thread'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='locking'/><title type='text'>Going to Sleep</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_7RXOll2bOJs/TMsbZX_od-I/AAAAAAAABv0/5R8xqkC91ds/s1600/Sleep.gif"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 320px; DISPLAY: block; HEIGHT: 223px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5533546689906374626" border="0" alt="" src="http://3.bp.blogspot.com/_7RXOll2bOJs/TMsbZX_od-I/AAAAAAAABv0/5R8xqkC91ds/s320/Sleep.gif" /&gt;&lt;/a&gt;I got the fun assignment of implementing some object locking mechanisms. That is some good stuff. Me and another developer debated the design. When we were done, I was off to the races to code.&lt;br /&gt;&lt;br /&gt;Now the general idea was to check whether there were other locks, and if so, wait a while before checking again. A little while made me think of sleeping and giving up my thread until a certain duration had passed.&lt;br /&gt;&lt;br /&gt;My instinct told me to call the sleep() function, passing it the number of milliseconds I wanted to wait. The compiler did not recognize sleep(). Okay. I just need to find the correct header file to include. Was is &lt;unistd.h&gt;? No. that one is only valid for UNIX. I am on Windows &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;XP&lt;/span&gt;. Then I figured out the error of my ways. I already included &lt;windows.h&gt;. However that header file has you call Sleep() instead. Notice the capital S.&lt;br /&gt;&lt;br /&gt;Now I am unit test the basics of my implementation. My virtual machine is super slow. Perhaps it is time to call it a day (and a week).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-2404638589065338302?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/2404638589065338302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=2404638589065338302' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/2404638589065338302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/2404638589065338302'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/10/going-to-sleep.html' title='Going to Sleep'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_7RXOll2bOJs/TMsbZX_od-I/AAAAAAAABv0/5R8xqkC91ds/s72-c/Sleep.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-1879549543218147653</id><published>2010-10-28T22:37:00.002-04:00</published><updated>2010-10-28T22:41:44.103-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unacceptable'/><category scheme='http://www.blogger.com/atom/ns#' term='resources'/><category scheme='http://www.blogger.com/atom/ns#' term='manager'/><category scheme='http://www.blogger.com/atom/ns#' term='team'/><title type='text'>Angry Customers</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_7RXOll2bOJs/TMozXuB62-I/AAAAAAAABvc/Eyb4hd0C3Wk/s1600/Angry.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 198px; FLOAT: left; HEIGHT: 255px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5533291574764166114" border="0" alt="" src="http://1.bp.blogspot.com/_7RXOll2bOJs/TMozXuB62-I/AAAAAAAABvc/Eyb4hd0C3Wk/s320/Angry.jpg" /&gt;&lt;/a&gt;My boss told me to go help out my old team. They were down on resources but were getting a lot of work. These guys were overworked. I protested a bit because I am busy with my new team. However the manager makes the final resource allocation decisions around here.&lt;br /&gt;&lt;br /&gt;I wanted to take care of one of their problems that relates to my new team. My manager threw me on a high priority problem their customers were having. I gathered some logs and screen shots. Then I found some problems in the code immediately. My manager set up a conference call with a lot of the customers.&lt;br /&gt;&lt;br /&gt;On the call I presented my findings. Then I walked the customer through some of the causes in their production environment. I heard a few things loud and clear in our conversation. The customer repeatedly said that the application behavior was unacceptable. Luckily my manager had prepped me with the info that these customers were livid. I tried to keep my cool. Then I presented some options on how we could fix their problems. Their answer was to just fix the damn thing, and let them know when it was done. Damn.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-1879549543218147653?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/1879549543218147653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=1879549543218147653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/1879549543218147653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/1879549543218147653'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/10/angry-customers.html' title='Angry Customers'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_7RXOll2bOJs/TMozXuB62-I/AAAAAAAABvc/Eyb4hd0C3Wk/s72-c/Angry.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-5617206854683894971</id><published>2010-10-25T15:54:00.003-04:00</published><updated>2010-10-25T16:00:24.657-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='logging'/><category scheme='http://www.blogger.com/atom/ns#' term='training'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='experience'/><category scheme='http://www.blogger.com/atom/ns#' term='Pro*C'/><title type='text'>Developers Locked Up</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_7RXOll2bOJs/TMXhzIuh19I/AAAAAAAABvE/2iw65K_hlgc/s1600/Lock.png"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 320px; DISPLAY: block; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5532075985926739922" border="0" alt="" src="http://1.bp.blogspot.com/_7RXOll2bOJs/TMXhzIuh19I/AAAAAAAABvE/2iw65K_hlgc/s320/Lock.png" /&gt;&lt;/a&gt;I got a call from some developers on my old team. The customer was having a problem with the &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-corrected"&gt;applications&lt;/span&gt;. The &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;devs&lt;/span&gt; traced it back to some home grown locking code. They were confused about some Pro*C code that executed what looked to be an &lt;a href="http://ora-pl-sql.blogspot.com/2009/02/exec-sql-at.html"&gt;EXEC &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;SQL&lt;/span&gt; AT&lt;/a&gt; followed by a table name.&lt;br /&gt;&lt;br /&gt;Luckily I had traced through this very code about a year and a half ago. In fact, I blogged about it on my Oracle Development Blog. We did not need to consult my blog. I remembered enough about it to explain it to the boys.&lt;br /&gt;&lt;br /&gt;This is a construct in Pro*C to execute a &lt;span id="SPELLING_ERROR_3" class="blsp-spelling-error"&gt;SQL&lt;/span&gt; statement under a different database connection (session). One usage of this is to do some &lt;span id="SPELLING_ERROR_4" class="blsp-spelling-error"&gt;SQL&lt;/span&gt; and commit the changes without affecting any of the ongoing &lt;span id="SPELLING_ERROR_5" class="blsp-spelling-error"&gt;SQL&lt;/span&gt; in your current session. That might be needed for some logging, or in the case of my old &lt;span id="SPELLING_ERROR_6" class="blsp-spelling-error"&gt;dev&lt;/span&gt; team, if you want to do your own locking.&lt;br /&gt;&lt;br /&gt;Previously I had thought that the lack of such knowledge could be fixed by some training. But one of the &lt;span id="SPELLING_ERROR_7" class="blsp-spelling-error"&gt;devs&lt;/span&gt; on my old team had gone through Pro*C study and training. When I explained what the &lt;span id="SPELLING_ERROR_8" class="blsp-spelling-error"&gt;SQL&lt;/span&gt; did, he seemed to recall a bit of it. I guess training might help you out sometimes. However there is nothing more valuable than hands-on experience.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-5617206854683894971?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/5617206854683894971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=5617206854683894971' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5617206854683894971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5617206854683894971'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/10/developers-locked-up.html' title='Developers Locked Up'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_7RXOll2bOJs/TMXhzIuh19I/AAAAAAAABvE/2iw65K_hlgc/s72-c/Lock.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-8577799253666937877</id><published>2010-10-12T18:45:00.002-04:00</published><updated>2010-10-12T18:49:03.432-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='package'/><category scheme='http://www.blogger.com/atom/ns#' term='stored proc'/><category scheme='http://www.blogger.com/atom/ns#' term='test cases'/><category scheme='http://www.blogger.com/atom/ns#' term='manual'/><title type='text'>Unit Test to the Rescue</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_7RXOll2bOJs/TLTlA5mZLUI/AAAAAAAABu0/vydb9_egCEM/s1600/Unit.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 278px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5527294446315056450" border="0" alt="" src="http://3.bp.blogspot.com/_7RXOll2bOJs/TLTlA5mZLUI/AAAAAAAABu0/vydb9_egCEM/s320/Unit.jpg" /&gt;&lt;/a&gt;I inherited a subsystem to maintain. Made some changes for the next major release. This code is a pain to test. You have to have very specific data to excite all the cases. At first I was manually updating data using &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;SQL&lt;/span&gt; commands. However I found it way too tedious.&lt;br /&gt;&lt;br /&gt;Luckily I decided to put a bunch of code into a database package that generates test data at will. I spent a lot of time creating that test data generation code. Then I had to debug the test generation code. However now I am &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-corrected"&gt;benefiting&lt;/span&gt; big time.&lt;br /&gt;&lt;br /&gt;I had to do a last minute move of some setup data from one script to another. Then I was able to generate unit test data with one call to a stored procedure. Check. Later I removed a bunch of debug code from the main database package. Does the code still work? I used the test generation code to set up some more test data in about a minute. We are good. Now before moving on to the next job, I am going to make this unit test generation program even more flexible. Good stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-8577799253666937877?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/8577799253666937877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=8577799253666937877' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/8577799253666937877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/8577799253666937877'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/10/unit-test-to-rescue.html' title='Unit Test to the Rescue'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_7RXOll2bOJs/TLTlA5mZLUI/AAAAAAAABu0/vydb9_egCEM/s72-c/Unit.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-6708831342803061727</id><published>2010-10-02T23:51:00.002-04:00</published><updated>2010-10-02T23:55:07.640-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='singleton'/><category scheme='http://www.blogger.com/atom/ns#' term='failure'/><title type='text'>End of the Pattern Club</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_7RXOll2bOJs/TKf9yPCW5uI/AAAAAAAABuk/ObO82k8PHns/s1600/Design.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 272px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5523662507464910562" border="0" alt="" src="http://4.bp.blogspot.com/_7RXOll2bOJs/TKf9yPCW5uI/AAAAAAAABuk/ObO82k8PHns/s320/Design.jpg" /&gt;&lt;/a&gt;I remember a new application our team needed to implement a long time ago. There was a young group of developers eager to do well. They were also led by a young guy. These dudes had a number of ideas about how to solve the problems for the customer. One of their main techniques was the use of design patterns.&lt;br /&gt;&lt;br /&gt;Now I am all for using a pattern when the situation calls for it. However these guys were pattern crazy. Everything was going to be implemented as part of a pattern, whether it fit or not. They had a tough time coming up with the need for the singleton pattern. They ended up trying to force it in two places in the application. What a sorry state.&lt;br /&gt;&lt;br /&gt;Recently I heard that patterns have become vogue. This is because they have essentially been a failure. Developers really don't know patterns well. Sure they can name a few. But they cannot spot the right place to use one of the many patterns out there. This is a generalization. However I think it holds true. The only &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-corrected"&gt;reason&lt;/span&gt; to know patterns now is to pass an interview where they ask you about some pattern basics.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-6708831342803061727?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/6708831342803061727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=6708831342803061727' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/6708831342803061727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/6708831342803061727'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/10/end-of-pattern-club.html' title='End of the Pattern Club'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_7RXOll2bOJs/TKf9yPCW5uI/AAAAAAAABuk/ObO82k8PHns/s72-c/Design.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-1051695185115291451</id><published>2010-10-01T23:30:00.003-04:00</published><updated>2010-10-02T23:50:42.662-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unemployment'/><category scheme='http://www.blogger.com/atom/ns#' term='hire'/><category scheme='http://www.blogger.com/atom/ns#' term='skills'/><category scheme='http://www.blogger.com/atom/ns#' term='interview'/><category scheme='http://www.blogger.com/atom/ns#' term='salary'/><title type='text'>Tough Job Market</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_7RXOll2bOJs/TKf9iHgj8vI/AAAAAAAABuc/oLue91taNOk/s1600/Job.jpg"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 302px; DISPLAY: block; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5523662230566204146" border="0" alt="" src="http://1.bp.blogspot.com/_7RXOll2bOJs/TKf9iHgj8vI/AAAAAAAABuc/oLue91taNOk/s320/Job.jpg" /&gt;&lt;/a&gt;Saying the current job market is tough would be an understatement. People stay unemployed for a long time when they lose their jobs. That makes them &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-corrected"&gt;desperate&lt;/span&gt; for anything. We interviewed a dude that had a lot of experience in the specifics we were looking for. The guy seemed like somebody I wanted on my team. I told my boss point blank that we needed to hire this guy.&lt;br /&gt;&lt;br /&gt;Turns out the poor dude was looking for work during the last nine months. How can a guy like that stay unemployed for so long. We got lucky and hired him before anybody else realized that this man would be a producer. In fact I think we did not pay him the going rate. I am concerned that if the economy improves, somebody else will steal him away. Now my recommendation to my boss is to give him the big bump up in compensation during his next review.&lt;br /&gt;&lt;br /&gt;This story is not uncommon. I have heard that people with great skills and &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-corrected"&gt;outstanding&lt;/span&gt; resumes are having trouble finding jobs. It does not seem to help even if people provide you with great references. I guess the old school method of &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-corrected"&gt;getting&lt;/span&gt; jobs will work best. Get in contact with the people you know. Have them help you out. It is rough out there. You need every edge you can get. And if you have a job right now, hang on to it. I know I am.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-1051695185115291451?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/1051695185115291451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=1051695185115291451' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/1051695185115291451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/1051695185115291451'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/10/tough-job-market.html' title='Tough Job Market'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_7RXOll2bOJs/TKf9iHgj8vI/AAAAAAAABuc/oLue91taNOk/s72-c/Job.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-1092898591800121590</id><published>2010-09-26T22:36:00.002-04:00</published><updated>2010-09-26T22:48:40.985-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='report engine'/><category scheme='http://www.blogger.com/atom/ns#' term='ads'/><category scheme='http://www.blogger.com/atom/ns#' term='add-in'/><category scheme='http://www.blogger.com/atom/ns#' term='Word'/><title type='text'>Had a Bad Day</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_7RXOll2bOJs/TKADZyxqaQI/AAAAAAAABts/E7L6Ijzgs_E/s1600/Winward.png"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 179px; FLOAT: left; HEIGHT: 134px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5521416884817914114" border="0" alt="" src="http://4.bp.blogspot.com/_7RXOll2bOJs/TKADZyxqaQI/AAAAAAAABts/E7L6Ijzgs_E/s320/Winward.png" /&gt;&lt;/a&gt;I was reading this software trade rag. There were a lot of ads in the magazine. I guess that's how they give me the thing for free. One ad in particular stood out. It was &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-corrected"&gt;irreverent&lt;/span&gt;. It was fun. The thing had me hooked. So I went to the company's web site. I read a few blogs on there. Left some comments.&lt;br /&gt;&lt;br /&gt;A few days later I got an email from a blogger that works for the company. He offered me some free copies of some software from the site. Here was their proposition. They make it easy to produce reports using their add-in to Microsoft Word. Now we got some complicated reports that took a lot of programming on our project. However the blogger asked me to give their products a try and let him know what troubles I had.&lt;br /&gt;&lt;br /&gt;I had some troubles figuring out their product lineup. There were some reporting engines. And there was the add in. Should I install them all? Tried to go read up some docs on the company web site. Trouble is the links on the site did not work. Damn. Well I decided to install the Word add-in and see how it worked. Setting up a database source was not intuitive at all. I struggled through it and got it to work.&lt;br /&gt;&lt;br /&gt;After running the template provided with the install, I got the Word document to pull in some data. It was not the data I wanted to see. So I logged into the database, made some updates, and committed the changes. Then I ran the report again. However it did not show the new data. &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;Ooops&lt;/span&gt;. I reported back my troubles to the blogger. This piece of software sounded &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-corrected"&gt;interesting&lt;/span&gt;. But it was too much trouble for me. We probably don't need the thing on our project anyway.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-1092898591800121590?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/1092898591800121590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=1092898591800121590' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/1092898591800121590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/1092898591800121590'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/09/had-bad-day.html' title='Had a Bad Day'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_7RXOll2bOJs/TKADZyxqaQI/AAAAAAAABts/E7L6Ijzgs_E/s72-c/Winward.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-1220050038033361139</id><published>2010-09-22T11:32:00.002-04:00</published><updated>2010-09-22T11:38:04.669-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='SP2-0750'/><category scheme='http://www.blogger.com/atom/ns#' term='CRON'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL*Plus'/><title type='text'>ORACLE_HOME</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_7RXOll2bOJs/TJohxTDNKVI/AAAAAAAABtU/W0MPcYA5r3A/s1600/Home.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 274px; FLOAT: left; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5519761424106989906" border="0" alt="" src="http://3.bp.blogspot.com/_7RXOll2bOJs/TJohxTDNKVI/AAAAAAAABtU/W0MPcYA5r3A/s320/Home.jpg" /&gt;&lt;/a&gt;I am unit testing a bunch of scripts that normally run off the UNIX &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;cron&lt;/span&gt;. Luckily they output their status to a log file. However the log keeps saying I have an SP2-0750 error. The text of this error is "You may need to set ORACLE_HOME to your Oracle Software directory."&lt;br /&gt;&lt;br /&gt;Well I set my ORACLE_HOME. I can run &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;SQL&lt;/span&gt;*Plus fine from the command line. Then I thought maybe the process I am spawning to run the scripts is not inheriting my environment variables. Nope. That can't be right.&lt;br /&gt;&lt;br /&gt;Finally I try running the script in a different way. I make sure any changes the scripts make get reflected in my own parent environment. Wouldn't you know it? Somebody is resetting my ORACLE_HOME to an invalid directory. Further investigation shows that the scripts initially source a profile that has the wrong ORACLE_HOME.&lt;br /&gt;&lt;br /&gt;I knew a little bit about what was going on. However all signs were pointing in the wrong direction. It took a high level of debugging skills, coupled with a lot of test time to figure this one out. I get the feeling that I am going to be having a great challenge testing out these scripts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-1220050038033361139?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/1220050038033361139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=1220050038033361139' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/1220050038033361139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/1220050038033361139'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/09/oraclehome.html' title='ORACLE_HOME'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_7RXOll2bOJs/TJohxTDNKVI/AAAAAAAABtU/W0MPcYA5r3A/s72-c/Home.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-6765929384671306999</id><published>2010-09-10T10:52:00.005-04:00</published><updated>2010-09-10T11:03:20.882-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPod Touch'/><category scheme='http://www.blogger.com/atom/ns#' term='iPad'/><category scheme='http://www.blogger.com/atom/ns#' term='AppsLib'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='WiFi'/><title type='text'>Archos 7 Home Tablet</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_7RXOll2bOJs/TIpGRjzpDmI/AAAAAAAABsk/KsiFVR7PXjE/s1600/Archos.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 200px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5515297961152155234" border="0" alt="" src="http://4.bp.blogspot.com/_7RXOll2bOJs/TIpGRjzpDmI/AAAAAAAABsk/KsiFVR7PXjE/s320/Archos.jpg" /&gt;&lt;/a&gt;&lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;Dont&lt;/span&gt; you hate that the cool &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;iPad&lt;/span&gt; costs at least $500? I know I am. Luckily there is a cheaper alternative. The &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;Archos&lt;/span&gt; 7 Home Tablet has a retail price of $199. In fact, you can get it for $189 from Amazon including shipping. That's the same price of an &lt;span id="SPELLING_ERROR_3" class="blsp-spelling-error"&gt;iPod&lt;/span&gt; Touch, not an &lt;span id="SPELLING_ERROR_4" class="blsp-spelling-error"&gt;iPad&lt;/span&gt;. Let's look at this economical device.&lt;br /&gt;&lt;br /&gt;The &lt;span id="SPELLING_ERROR_5" class="blsp-spelling-error"&gt;Archos&lt;/span&gt; 7 has a 7 inch screen, is 5 millimeters thick, and weighs less than a pound. It has a kickstand to prop it up. There are no buttons on the thing. It has a resistive touch screen for user input. The thing is similar to the smaller &lt;span id="SPELLING_ERROR_6" class="blsp-spelling-error"&gt;Archos&lt;/span&gt; 5 Internet Tablet.&lt;br /&gt;&lt;br /&gt;Inside the &lt;span id="SPELLING_ERROR_7" class="blsp-spelling-error"&gt;Archos&lt;/span&gt; 7 has 128MB of RAM and 2GB disk space. An 8GB model runs for $240 retail. The display has a 800 x 480 pixel resolution. Built in speakers are very powerful. It supports 80211b and 802.11g &lt;span id="SPELLING_ERROR_8" class="blsp-spelling-error"&gt;Wifi&lt;/span&gt;. The battery let's you watch video for 7 hours before needing a recharge.&lt;br /&gt;&lt;br /&gt;Loaded on the &lt;span id="SPELLING_ERROR_9" class="blsp-spelling-error"&gt;Archos&lt;/span&gt; 7 is version 1.5 of the Android operating system. It is good that they have an open operating system. But the version is an old and outdated one. There are 5 apps preloaded on the system. You do not have access to all apps written to Android. But you can get apps from the &lt;span id="SPELLING_ERROR_10" class="blsp-spelling-error"&gt;AppsLib&lt;/span&gt; store which boasts about a thousand apps.&lt;br /&gt;&lt;br /&gt;The &lt;span id="SPELLING_ERROR_11" class="blsp-spelling-error"&gt;Archos&lt;/span&gt; 7 comes from a French company. It supports many video formats, including High Definition ones. There is no Flash support, just like the &lt;span id="SPELLING_ERROR_12" class="blsp-spelling-error"&gt;iPad&lt;/span&gt;. It is good for reading &lt;span id="SPELLING_ERROR_13" class="blsp-spelling-error"&gt;eBooks&lt;/span&gt;. You've got to love the free Android apps that are out there waiting to be downloaded by you. I think I just may have to go out and get myself one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-6765929384671306999?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/6765929384671306999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=6765929384671306999' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/6765929384671306999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/6765929384671306999'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/09/archos-7-home-tablet.html' title='Archos 7 Home Tablet'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_7RXOll2bOJs/TIpGRjzpDmI/AAAAAAAABsk/KsiFVR7PXjE/s72-c/Archos.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-6939029358293323944</id><published>2010-09-07T23:04:00.004-04:00</published><updated>2010-09-07T23:12:38.193-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='customer meeting'/><category scheme='http://www.blogger.com/atom/ns#' term='team'/><category scheme='http://www.blogger.com/atom/ns#' term='Process'/><title type='text'>Communication and Leadership</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_7RXOll2bOJs/TIb9f0Tad-I/AAAAAAAABsU/Zz2TwKCjBas/s1600/Leader.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5514373516819593186" border="0" alt="" src="http://2.bp.blogspot.com/_7RXOll2bOJs/TIb9f0Tad-I/AAAAAAAABsU/Zz2TwKCjBas/s320/Leader.jpg" /&gt;&lt;/a&gt;I was packing up my bag to get ready to leave work today. The guy who leads my old team dropped by and had some bad news. He said I needed to attend a long meeting later this week to work through some bugs with the customer. Then he said I needed to stick around today to help the team prepare for this meeting.&lt;br /&gt;&lt;br /&gt;When asked to do some work that is not my official role on the project, I always start making calls. I immediately called up my manager. I reminded him that I moved to another team over a month ago. I also said that I had a schedule to keep with my new team. I asked why my schedule was getting loaded up with work from my old team.&lt;br /&gt;&lt;br /&gt;I ended up conferencing a bunch of developer from my old team. I spent an hour walking developers through the problem resolution process. Now I do not normally care about &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-corrected"&gt;incompetence&lt;/span&gt;. But I do care when it means I have to do somebody &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;else's&lt;/span&gt; job. Don't try that mess with me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-6939029358293323944?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/6939029358293323944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=6939029358293323944' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/6939029358293323944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/6939029358293323944'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/09/communication-and-leadership.html' title='Communication and Leadership'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7RXOll2bOJs/TIb9f0Tad-I/AAAAAAAABsU/Zz2TwKCjBas/s72-c/Leader.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-6502867663689554074</id><published>2010-09-03T14:01:00.003-04:00</published><updated>2010-09-03T14:07:26.317-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='customer'/><category scheme='http://www.blogger.com/atom/ns#' term='boss'/><category scheme='http://www.blogger.com/atom/ns#' term='PL/SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='practice'/><title type='text'>Lack of Review</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_7RXOll2bOJs/TIE5TBCyWDI/AAAAAAAABsM/_Fh9UIfcX18/s1600/Review.jpg"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 320px; DISPLAY: block; HEIGHT: 231px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5512750417738618930" border="0" alt="" src="http://2.bp.blogspot.com/_7RXOll2bOJs/TIE5TBCyWDI/AAAAAAAABsM/_Fh9UIfcX18/s320/Review.jpg" /&gt;&lt;/a&gt;I have recently taken over the maintenance of a back end job. It communicates with another system. Most of the business is written in Oracle PL/&lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;SQL&lt;/span&gt;. There is also a mixture of &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;Korn&lt;/span&gt; and Perl scripts involved. My first task was to implement a new change the customer wanted.&lt;br /&gt;&lt;br /&gt;Luckily I inherited a pretty detailed design document. So I updated the thing with the new changes that the customer wanted. I asked my boss what I needed to do with the document. He said to give our internal team a day to review the thing. Then publish it and schedule a walk through with the customer.&lt;br /&gt;&lt;br /&gt;Got no comment back from the internal review. Nobody read the thing I guess. My boss asked a few questions. That led to some changes. Then the document went out and I headed to my meeting to go over my design changes. The meeting was held at our customer's building. I knew a guy who worked at the building. He signed me in. I got dropped off in the room where the meeting was to be held. I practiced my intro a couple times so that it would be smooth. Also jotted down some notes on the sections I wanted to hit. Nobody was showing up at the meeting though. My boss said all types of big shots would be there. I guess my design passed. Wrong. More on this next time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-6502867663689554074?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/6502867663689554074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=6502867663689554074' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/6502867663689554074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/6502867663689554074'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/09/lack-of-review.html' title='Lack of Review'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7RXOll2bOJs/TIE5TBCyWDI/AAAAAAAABsM/_Fh9UIfcX18/s72-c/Review.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-3691463597245939252</id><published>2010-08-23T14:17:00.002-04:00</published><updated>2010-08-23T14:17:00.354-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debugger'/><category scheme='http://www.blogger.com/atom/ns#' term='IDE'/><category scheme='http://www.blogger.com/atom/ns#' term='build'/><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>Dream Tools</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_7RXOll2bOJs/TG7G4i2_OQI/AAAAAAAABrs/xzaw8jzvbzA/s1600/Tools.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5507558069053110530" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 305px; CURSOR: hand; HEIGHT: 320px" alt="" src="http://2.bp.blogspot.com/_7RXOll2bOJs/TG7G4i2_OQI/AAAAAAAABrs/xzaw8jzvbzA/s320/Tools.jpg" border="0" /&gt;&lt;/a&gt;Last night I read a rant about the state of development tools today. The guy had a good point. We got powerful hardware out there to run programs. Why can't we have powerful software development tools to make use of that hardware?&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;IDEs&lt;/span&gt; take a while to get your project started. Let's have an &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;IDE&lt;/span&gt; that let's you start writing code immediately. Debuggers let you step through code with easy. How about we have debuggers that let you step backward in code execution, undoing the most recent operations?&lt;br /&gt;&lt;br /&gt;Speaking of debuggers, let's get one that handles &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;mutlithreaded&lt;/span&gt; apps with ease. Take it even further. Let's see if debuggers can trace through communication with other systems.&lt;br /&gt;&lt;br /&gt;Finally here is a request that hits close to home. Recently we tried to build the first version of our next release. The thing was just not putting the files in the installation media. We have a manual process &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;of&lt;/span&gt; inspecting the build output to ensure all went well. Why can't our build do that itself? It knows what's supposed to be in there. Let it automatically check what the heck actually went into the installable output.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-3691463597245939252?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/3691463597245939252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=3691463597245939252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/3691463597245939252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/3691463597245939252'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/08/dream-tools.html' title='Dream Tools'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7RXOll2bOJs/TG7G4i2_OQI/AAAAAAAABrs/xzaw8jzvbzA/s72-c/Tools.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-9060866493708447576</id><published>2010-08-22T14:09:00.002-04:00</published><updated>2010-08-22T14:09:00.626-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pilot'/><category scheme='http://www.blogger.com/atom/ns#' term='tailoring'/><category scheme='http://www.blogger.com/atom/ns#' term='training'/><category scheme='http://www.blogger.com/atom/ns#' term='colocation'/><title type='text'>Scrum Tips</title><content type='html'>&lt;img id="BLOGGER_PHOTO_ID_5507555999379882962" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand; HEIGHT: 228px" alt="" src="http://1.bp.blogspot.com/_7RXOll2bOJs/TG7FAEucA9I/AAAAAAAABrk/kC9f2EzIVEQ/s320/Scrum2.gif" border="0" /&gt;I have mentioned before that Scrum is a framework to set up your development process. It is supposed to be easy. This technique is better used on projects that are difficult, high risk, and uncertain. There are good and bad ways to implement Scrum. Let's look at some good ways.&lt;br /&gt;&lt;br /&gt;You need to go all in with Scrum. A little Scrum is a quick way to fail. Factor in time to learn the framework. Your developers got to want to do Scrum. Make sure everyone knows what they are supposed to do. Sounds simple but can be very difficult.&lt;br /&gt;&lt;br /&gt;The team needs to be trained in the framework. It helps if a pilot team tackles a smaller challenge first and succeeds. Your team should be located physically together to start. Don't tailor the Scrum process too soon. Do vanilla Scrum until you got it down pat. I am still looking for my first Scrum project. Or more &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;specifically&lt;/span&gt; I want to be part of a successful Scrum development project.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-9060866493708447576?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/9060866493708447576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=9060866493708447576' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/9060866493708447576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/9060866493708447576'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/08/scrum-tips.html' title='Scrum Tips'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_7RXOll2bOJs/TG7FAEucA9I/AAAAAAAABrk/kC9f2EzIVEQ/s72-c/Scrum2.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-2402757418743509091</id><published>2010-08-21T14:00:00.003-04:00</published><updated>2010-08-21T14:00:00.498-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='roles'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><category scheme='http://www.blogger.com/atom/ns#' term='backlog'/><category scheme='http://www.blogger.com/atom/ns#' term='stand up meeting'/><title type='text'>The Scrum Way</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_7RXOll2bOJs/TG7C97VwCuI/AAAAAAAABrc/WVbFPkzZzpw/s1600/Scrum.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5507553763477424866" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand; HEIGHT: 230px" alt="" src="http://4.bp.blogspot.com/_7RXOll2bOJs/TG7C97VwCuI/AAAAAAAABrc/WVbFPkzZzpw/s320/Scrum.jpg" border="0" /&gt;&lt;/a&gt;Our team was working on a replacement for our current production system a few years ago. The development manager had a brilliant idea. We would have a stand up meeting every morning. There were multiple problems with that idea. We were so busy due to being behind schedule. The meetings lasted a long time. That put us even further behind. Eventually the manager was fired, the project was canceled, and we lost our client. Ouch.&lt;br /&gt;&lt;br /&gt;I suspect this manager was trying to implement a part of Scrum. That left a bad Scrum taste in my mouth. This does not mean that Scrum itself is bad. Just my particular experience with it. Scrum itself is a framework to create your development process. There are 4 core principles which emphasize individuals, completed functionality, customer collaboration, and responding to change.&lt;br /&gt;&lt;br /&gt;There are a number of roles in the Scrum framework. A product owner manages the business. A &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;ScrumMaster&lt;/span&gt; manages the team. And the team determines what to do by itself. Yeah. From the outside that seems problem prone. The Scrum activities are to prioritize all work, meet every day, demonstrate success, and search for improvement.&lt;br /&gt;&lt;br /&gt;One artifact I find useful in Scrum is backlog. This contains a list of features that have been prioritized. At any given time you know what high priority items need to go in an &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;interaction&lt;/span&gt;. I am still not sold on the rest of the Scrum framework. That will require me being part of a Scrum success story.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-2402757418743509091?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/2402757418743509091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=2402757418743509091' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/2402757418743509091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/2402757418743509091'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/08/scrum-way.html' title='The Scrum Way'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_7RXOll2bOJs/TG7C97VwCuI/AAAAAAAABrc/WVbFPkzZzpw/s72-c/Scrum.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-6130323384329429370</id><published>2010-08-20T13:41:00.002-04:00</published><updated>2010-08-20T13:45:43.077-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Protecode'/><category scheme='http://www.blogger.com/atom/ns#' term='System 4'/><category scheme='http://www.blogger.com/atom/ns#' term='code base'/><category scheme='http://www.blogger.com/atom/ns#' term='license'/><title type='text'>Open Source Checker</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_7RXOll2bOJs/TG6-cux_0wI/AAAAAAAABrU/9foU5f1s944/s1600/OpenSource.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5507548795124044546" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand; HEIGHT: 276px" alt="" src="http://2.bp.blogspot.com/_7RXOll2bOJs/TG6-cux_0wI/AAAAAAAABrU/9foU5f1s944/s320/OpenSource.jpg" border="0" /&gt;&lt;/a&gt;Last year we changed how the reports in our system were handled. Initially we wanted to use an open source library to generate &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;PDFs&lt;/span&gt;. However there was a lot of concern over the license. We ended up using a licensed copy of Adobe to do the work. I wonder what other open source code is lurking in our code base?&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Protecode&lt;/span&gt; has a new version of their System 4 tool out. It searches your project for uses of open source code. Then it identifies the licensing for that code. Talk about solving a problem in one fell swoop.&lt;br /&gt;&lt;br /&gt;System 4 does this by having a repository of hundreds of thousands of open source projects. It also has some AI to make sure it does not get confused over code that looks similar to the open source projects. I'd would love to run the source code for all our apps through this thing. I wonder what that would reveal about our code base.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-6130323384329429370?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/6130323384329429370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=6130323384329429370' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/6130323384329429370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/6130323384329429370'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/08/open-source-checker.html' title='Open Source Checker'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7RXOll2bOJs/TG6-cux_0wI/AAAAAAAABrU/9foU5f1s944/s72-c/OpenSource.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-5892830877558135641</id><published>2010-08-19T10:48:00.002-04:00</published><updated>2010-08-19T10:48:00.255-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='clearcase'/><category scheme='http://www.blogger.com/atom/ns#' term='DQL'/><category scheme='http://www.blogger.com/atom/ns#' term='repository'/><category scheme='http://www.blogger.com/atom/ns#' term='EMC'/><category scheme='http://www.blogger.com/atom/ns#' term='consultant'/><title type='text'>Documentum</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_7RXOll2bOJs/TGqhTQ8OkrI/AAAAAAAABqs/VePR08cQWi8/s1600/Documentum.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5506390846751019698" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand; HEIGHT: 168px" alt="" src="http://4.bp.blogspot.com/_7RXOll2bOJs/TGqhTQ8OkrI/AAAAAAAABqs/VePR08cQWi8/s320/Documentum.jpg" border="0" /&gt;&lt;/a&gt;Our project has always done some sort of configuration management. It used to be that we threw everything into Rational &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Clearcase&lt;/span&gt;. However there came a time when the customer mandated that we move all documents into a product called &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Documentum&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Now I did not like &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Clearcase&lt;/span&gt; that much. However &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Clearcase&lt;/span&gt; was great compared to this new &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Documentum&lt;/span&gt;. We hired a person to help us organize all our documents into &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Documentum&lt;/span&gt;. We also hired a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Documentum&lt;/span&gt; consultant. The documents were moved over. Success was declared. The only difference I found was that it was now hard to access our documents. Years later we moved to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;SharePoint&lt;/span&gt; for document storage and sharing. At least it has a clean web interface.&lt;br /&gt;&lt;br /&gt;The current system is scheduled to be replaced by a new system to be developed. One of the tools that the customer requires us to use in the new system is &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Documentum&lt;/span&gt;. That gives me the shivers. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;Documentatum&lt;/span&gt;, in case you did not know, is a content management system from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;EMC&lt;/span&gt;. You check files in and our like source code control. There is access control provided by the product. The latest version hosts the product in a web environment.&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;Documentum&lt;/span&gt; has many &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;APIs&lt;/span&gt; which can be accessed from web servers, using Java, by FTP, and a whole lot more. The core feature of the product is its repository. The system is a three tier one, with the repository being a fancy type of database. There is a way to search the repository using their &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;Documentum&lt;/span&gt; Query Language (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;DQL&lt;/span&gt;). There is also a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;Documentum&lt;/span&gt; certification. Who knows? Maybe I will try to study up and pass the darn thing. I still suspect this product to add pain to the system.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-5892830877558135641?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/5892830877558135641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=5892830877558135641' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5892830877558135641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5892830877558135641'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/08/documentum.html' title='Documentum'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_7RXOll2bOJs/TGqhTQ8OkrI/AAAAAAAABqs/VePR08cQWi8/s72-c/Documentum.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-7473257895762240490</id><published>2010-08-18T10:35:00.003-04:00</published><updated>2010-08-18T10:35:00.316-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FICO'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Fair Issac'/><category scheme='http://www.blogger.com/atom/ns#' term='BRMS'/><title type='text'>The Blaze Advisor</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_7RXOll2bOJs/TGqeVu2bgfI/AAAAAAAABqk/WtblWZP3ShI/s1600/Blaze.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5506387590604620274" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand; HEIGHT: 247px" alt="" src="http://2.bp.blogspot.com/_7RXOll2bOJs/TGqeVu2bgfI/AAAAAAAABqk/WtblWZP3ShI/s320/Blaze.jpg" border="0" /&gt;&lt;/a&gt;Our customer wants a new system to be developed. It is going to replace the system I work on. For reasons unknown, the customer wants all kinds of new technologies to be used in the development of the new system. One of these hot techs is Blaze Advisor.&lt;br /&gt;&lt;br /&gt;To tell the truth, I had never heard of the product before. It is more formally known as the FICO Blaze Advisor. It is a business rules management system (BRMS). The marketing says it is for high volume operations. And you can change the rules quickly.&lt;br /&gt;&lt;br /&gt;A selling point for this tool is a fast time to market. That would be good to stand up a new system. It also does its own version control of the rules changes. That sounds sweet. The product is brought to you by Fair Issac Corporation. Digging a little deeper, I read that this is a Java based rules engine. The rules go into an internal rules database.&lt;br /&gt;&lt;br /&gt;The software was created by Blaze Software. Eventually it was sold to Fair Issac. The most common use of it is by Java programs. This software might be of some use if it lives up to its marketing hype.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-7473257895762240490?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/7473257895762240490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=7473257895762240490' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7473257895762240490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7473257895762240490'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/08/blaze-advisor.html' title='The Blaze Advisor'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7RXOll2bOJs/TGqeVu2bgfI/AAAAAAAABqk/WtblWZP3ShI/s72-c/Blaze.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-7513509136633091329</id><published>2010-08-17T10:27:00.002-04:00</published><updated>2010-08-17T10:33:39.118-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Crystal Reports'/><category scheme='http://www.blogger.com/atom/ns#' term='Business Objects XI'/><title type='text'>Future of Development</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_7RXOll2bOJs/TGqcaJT7exI/AAAAAAAABqc/nGR1ez2RnGg/s1600/BO.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5506385467403893522" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 220px; CURSOR: hand; HEIGHT: 220px" alt="" src="http://4.bp.blogspot.com/_7RXOll2bOJs/TGqcaJT7exI/AAAAAAAABqc/nGR1ez2RnGg/s320/BO.jpg" border="0" /&gt;&lt;/a&gt;Our company is trying to win the work for the project that shall replace the current one. I asked our manager what technologies we thought we might use to implement the new system if we won. There was a long list. And there did not seem to be many traditional coding tasks. One product we were going to use was Business Objects.&lt;br /&gt;&lt;br /&gt;To tell the truth, I thought Business Objects were some &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;API&lt;/span&gt; using by &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;Crystal&lt;/span&gt; Reports. I have since come to find out that Business Objects was a company that got bought out by SAP a few years ago. The premier product of this company is Business Objects XI. This is a big package that includes business intelligence tools.&lt;br /&gt;&lt;br /&gt;SAP offers a bunch of instructions &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;ebooks&lt;/span&gt; on Business Objects for $19.99 each. Great. I know the company will spring for such training material. But do I really want to get out there and be a Business Objects developer? It is funny. While searching for technical information on Business Objects, I found a job offer for a senior Business Objects developer. It paid $45 per hour. That's not chump change. But it is a lot lower than I thought a SAP developer would make. Oh wait, this is Business Objects. The jury is still out whether I shall even crack a book to learn this stuff. There are also other new technologies in the stack to be used to build the next generation system. More on those products later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-7513509136633091329?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/7513509136633091329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=7513509136633091329' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7513509136633091329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7513509136633091329'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/08/future-of-development.html' title='Future of Development'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_7RXOll2bOJs/TGqcaJT7exI/AAAAAAAABqc/nGR1ez2RnGg/s72-c/BO.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-2428623475519736633</id><published>2010-08-10T15:17:00.004-04:00</published><updated>2010-08-10T15:24:34.384-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PL/SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='C programs'/><category scheme='http://www.blogger.com/atom/ns#' term='load'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL*Plus'/><title type='text'>Back to UNIX</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_7RXOll2bOJs/TGGmQpWwu-I/AAAAAAAABqU/ter71kxkAwA/s1600/UNIX.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5503863024532896738" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 300px; CURSOR: hand; HEIGHT: 300px" alt="" src="http://2.bp.blogspot.com/_7RXOll2bOJs/TGGmQpWwu-I/AAAAAAAABqU/ter71kxkAwA/s320/UNIX.jpg" border="0" /&gt;&lt;/a&gt;My team has been relegated to true maintenance tasks. All we are to do is investigate bug reports. When we figure out what is going on, we come up with an estimate as to how long they will take to fix. We don't even go through with the fix until somebody in charge approves the change. This is none too exciting work.&lt;br /&gt;&lt;br /&gt;There is another team on our project which has a massive amount of development going on. They just lost a guy who went to another company. My boss asked me to go join that team with the heavy development load. He did not need to ask me twice.&lt;br /&gt;&lt;br /&gt;One of the drawbacks of the new team is that they do all their work in UNIX. Their subsystem loads data given to us mostly by mainframe programs. The code is pretty much C programs running on UNIX. I did spy on a piece of their system that was more Oracle PL/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;SQL&lt;/span&gt;. So I jumped at the opportunity to work on that piece. My request was granted.&lt;br /&gt;&lt;br /&gt;Today I just got access to the UNIX development system. Nothing worked out of the box. When I pressed the backspace key, some weird symbol appeared on the screen. I tried to run Oracle &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;SQL&lt;/span&gt;*Plus. The program could not be found. Great. Now I got to set up my profile to get the path and other environment variables set. This may be a bit painful. Oh yeah. Did I mention that my text editor is now vi?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-2428623475519736633?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/2428623475519736633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=2428623475519736633' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/2428623475519736633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/2428623475519736633'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/08/back-to-unix.html' title='Back to UNIX'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7RXOll2bOJs/TGGmQpWwu-I/AAAAAAAABqU/ter71kxkAwA/s72-c/UNIX.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-158283818099929208</id><published>2010-07-27T18:42:00.002-04:00</published><updated>2010-07-27T18:45:20.397-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='next generation'/><category scheme='http://www.blogger.com/atom/ns#' term='state'/><category scheme='http://www.blogger.com/atom/ns#' term='manager'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>Deep Analysis</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_7RXOll2bOJs/TE9g0PnfgoI/AAAAAAAABpk/fBRdvKkN9lo/s1600/Analysis.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 240px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5498720120704303746" border="0" alt="" src="http://1.bp.blogspot.com/_7RXOll2bOJs/TE9g0PnfgoI/AAAAAAAABpk/fBRdvKkN9lo/s320/Analysis.jpg" /&gt;&lt;/a&gt;Yesterday my project manager told me to attend a meeting with another group. These people are planning to write the next generation of our system. I was concerned that I would be talking to the developers that are trying to code me out of a job.&lt;br /&gt;&lt;br /&gt;Luckily I went to the meeting and found they are in the beginning phase of analysis. They wanted me to let them know where we get all the data from our system. They also were very interested in how we store internal state of the applications in the database. I had to take an action item on those tasks.&lt;br /&gt;&lt;br /&gt;I made sure I did a pretty good job analyzing our system. These people might be my new bosses in a few years. It was a challenging task. Shouldn't there be some database tool that tells you what database tables is a schema are actually being accessed? I don't know of a specific one. Do you?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-158283818099929208?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/158283818099929208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=158283818099929208' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/158283818099929208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/158283818099929208'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/07/deep-analysis.html' title='Deep Analysis'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_7RXOll2bOJs/TE9g0PnfgoI/AAAAAAAABpk/fBRdvKkN9lo/s72-c/Analysis.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-6681721423614854286</id><published>2010-07-26T23:37:00.002-04:00</published><updated>2010-07-26T23:37:00.351-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pair programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><category scheme='http://www.blogger.com/atom/ns#' term='refactoring'/><category scheme='http://www.blogger.com/atom/ns#' term='unit test'/><category scheme='http://www.blogger.com/atom/ns#' term='TDD'/><title type='text'>Agile Success</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_7RXOll2bOJs/TE0DIDm4pfI/AAAAAAAABpc/cwdhcWHdUZQ/s1600/Agile.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 218px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5498054157031482866" border="0" alt="" src="http://4.bp.blogspot.com/_7RXOll2bOJs/TE0DIDm4pfI/AAAAAAAABpc/cwdhcWHdUZQ/s320/Agile.jpg" /&gt;&lt;/a&gt;A whole host of agile technologies have become mainstream over the past few years. These include refactoring, unit test, test driven development, and even Scrum. However pair programming is stuck in the mud.&lt;br /&gt;&lt;br /&gt;One problem is that pair programming is expensive. On the surface, it takes twice as much to do pair programming. It is also not liked much by developers. It might be one of the agile methods that never pan out.&lt;br /&gt;&lt;br /&gt;However it is the end results that matter. You want to know immediately when the build breaks. That might mean you have unit tests that automatically get applied. Or a build job checks for errors and emails the right people. We don't have that at our work. We used to. But the build scripts got rewritten, and are not as good any more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-6681721423614854286?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/6681721423614854286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=6681721423614854286' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/6681721423614854286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/6681721423614854286'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/07/agile-success.html' title='Agile Success'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_7RXOll2bOJs/TE0DIDm4pfI/AAAAAAAABpc/cwdhcWHdUZQ/s72-c/Agile.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-1637304866324616538</id><published>2010-07-25T23:32:00.003-04:00</published><updated>2010-07-25T23:36:03.383-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='emotions'/><category scheme='http://www.blogger.com/atom/ns#' term='roles'/><category scheme='http://www.blogger.com/atom/ns#' term='expectations'/><category scheme='http://www.blogger.com/atom/ns#' term='relationship'/><title type='text'>Client Connections</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_7RXOll2bOJs/TE0B8kvYKiI/AAAAAAAABpU/ETcbnrj11d8/s1600/Client.png"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 304px; FLOAT: left; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5498052860255414818" border="0" alt="" src="http://2.bp.blogspot.com/_7RXOll2bOJs/TE0B8kvYKiI/AAAAAAAABpU/ETcbnrj11d8/s320/Client.png" /&gt;&lt;/a&gt;You need to understand that every time you meet your client, it impacts the &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-corrected"&gt;relationship&lt;/span&gt;. Clients want an emotional connection with you. You need to &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-corrected"&gt;understand&lt;/span&gt; their expectations to be able to meet them.&lt;br /&gt;&lt;br /&gt;The experience the client has must be positive and special. How do you ensure that? Show passion. Be committed. So how do you make sure your employees have passion and are committed? Put them in the right roles.&lt;br /&gt;&lt;br /&gt;Be sure to put in that quality time with your clients. Otherwise another company will get a better relationship with your client. Then you lose clients.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-1637304866324616538?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/1637304866324616538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=1637304866324616538' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/1637304866324616538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/1637304866324616538'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/07/client-connections.html' title='Client Connections'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7RXOll2bOJs/TE0B8kvYKiI/AAAAAAAABpU/ETcbnrj11d8/s72-c/Client.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-3106072324940638355</id><published>2010-07-19T17:22:00.003-04:00</published><updated>2010-07-19T17:28:00.955-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vacations'/><category scheme='http://www.blogger.com/atom/ns#' term='team lead'/><category scheme='http://www.blogger.com/atom/ns#' term='policy'/><category scheme='http://www.blogger.com/atom/ns#' term='managers'/><title type='text'>Developer Coverage</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_7RXOll2bOJs/TETCKlyPxlI/AAAAAAAABpM/OLK336i27Zw/s1600/Vacation.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 240px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5495730932496189010" border="0" alt="" src="http://4.bp.blogspot.com/_7RXOll2bOJs/TETCKlyPxlI/AAAAAAAABpM/OLK336i27Zw/s320/Vacation.jpg" /&gt;&lt;/a&gt;The managers have a policy on taking vacations. You need to make sure you have somebody covering for you. A developer on our team was taking a massive one month vacation this past month. Then she needed an extra week to care for a sick family member. She was supposed to arrange coverage for her tasks.&lt;br /&gt;&lt;br /&gt;She ended up letting our team lead figure out the work coverage. That was a bad move. Our team lead asked two members on our team get familiar with some code changes the vacationing developer was going to make. These members just got familiar with the code changes. In effect, they made sure they could check in code changes on the vacationing developer's behalf. This happened and the software was released to test.&lt;br /&gt;&lt;br /&gt;Then the testers needed help figuring out how to do the testing. That was a problem. One ghost developer had checked the code changes in. However knowing what the fix was fixing was beyond comprehension. I got the players involved on a conference call to clear up who was supposed to do what. Apparently the job of the two developers was to gain a better understanding of the actual problem that was being fixed. That makes sense. But you need to be explicit about this if you are giving out directions. That did not happen. This all could have been avoided if the original developer going on vacation had arranged and trained up someone who could provide coverage. That means somebody can do everything the vacationing developer would do if they were in the office. Sometimes the manager policies are actually there for a good reason.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-3106072324940638355?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/3106072324940638355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=3106072324940638355' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/3106072324940638355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/3106072324940638355'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/07/developer-coverage.html' title='Developer Coverage'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_7RXOll2bOJs/TETCKlyPxlI/AAAAAAAABpM/OLK336i27Zw/s72-c/Vacation.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-1094829996632220251</id><published>2010-07-14T23:01:00.003-04:00</published><updated>2010-07-14T23:08:27.257-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='skill'/><category scheme='http://www.blogger.com/atom/ns#' term='objective'/><category scheme='http://www.blogger.com/atom/ns#' term='Doctor Dobb&apos;s'/><category scheme='http://www.blogger.com/atom/ns#' term='use cases'/><title type='text'>Improving Requirements</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_7RXOll2bOJs/TD57mxtbcrI/AAAAAAAABpE/9FVZJkrfkKg/s1600/Requirements.gif"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 320px; DISPLAY: block; HEIGHT: 189px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5493964501547709106" border="0" alt="" src="http://3.bp.blogspot.com/_7RXOll2bOJs/TD57mxtbcrI/AAAAAAAABpE/9FVZJkrfkKg/s320/Requirements.gif" /&gt;&lt;/a&gt;Previously I had pondered about techniques to improve requirements analysis. That's why I read a recent Doctor &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;Dobb's&lt;/span&gt; Report article on this very topic. To start you need analysts that have skill. This is a tall order to fill. Then you need to make sure you have the right tools. Well we have IBM Rational &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;ReqPro&lt;/span&gt;. So we should be good.&lt;br /&gt;&lt;br /&gt;The analysts need to identify the business objectives. I know this is sorely lacking for many of our requirements. Often time nobody on the team understands why we are implementing the changes. We also must determine who can speak for the customer. This gets difficult when we have multiple customers that we work for. There is a sponsor, some executives, system acceptance, and different business divisions.&lt;br /&gt;&lt;br /&gt;Use cases are a good tool. But they do not solve everything. The analysts need to get down into the functional requirements. Often times our analysts struggle with the business requirements. In that scenarios, there is no chance to do functional requirements well if you are stuck at the business level. You should also do some testing of the requirements themselves to see if there are any holes.&lt;br /&gt;&lt;br /&gt;I think I should pass this article to our requirements analysis team. The problem might be the normal one. They are too busy to do anything other than write stuff down that the customer is saying.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-1094829996632220251?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/1094829996632220251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=1094829996632220251' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/1094829996632220251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/1094829996632220251'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/07/improving-requirements.html' title='Improving Requirements'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_7RXOll2bOJs/TD57mxtbcrI/AAAAAAAABpE/9FVZJkrfkKg/s72-c/Requirements.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-1150458532444324002</id><published>2010-07-13T00:46:00.004-04:00</published><updated>2010-07-13T00:51:59.859-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='requirements'/><category scheme='http://www.blogger.com/atom/ns#' term='customer'/><category scheme='http://www.blogger.com/atom/ns#' term='confusion'/><category scheme='http://www.blogger.com/atom/ns#' term='testers'/><title type='text'>Power of Documentation</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_7RXOll2bOJs/TDvw4rZ_OxI/AAAAAAAABoc/LfUHuHpYQZ8/s1600/Documentation.gif"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 320px; DISPLAY: block; HEIGHT: 272px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5493249027023518482" border="0" alt="" src="http://3.bp.blogspot.com/_7RXOll2bOJs/TDvw4rZ_OxI/AAAAAAAABoc/LfUHuHpYQZ8/s320/Documentation.gif" /&gt;&lt;/a&gt;We have a requirements analysis team. I think they are supposed to work with the customer to figure out what they want. That is a daunting task. It turns out that this team frequently comes to development to ask us what the requirements are. There is something very backwards about this arrangement.&lt;br /&gt;&lt;br /&gt;These requirements are then verified with the customer. They are also used by our internal testers, as well as the customer's acceptance test team. It is crucial that these requirements are clear and correct. Lack of clarity means someone is going to get confused. This confusion is a source of trouble. Customers will think they are getting something else. Testers will think the implementation is not correct.&lt;br /&gt;&lt;br /&gt;One thing is for sure. It is best to have the requirements correctly documented during the requirements analysis phase. Unfortunately this is not an easy task. And therefore it is not always the way work gets done. We must still strive for this optimal setup for design and development.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-1150458532444324002?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/1150458532444324002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=1150458532444324002' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/1150458532444324002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/1150458532444324002'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/07/power-of-documentation.html' title='Power of Documentation'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_7RXOll2bOJs/TDvw4rZ_OxI/AAAAAAAABoc/LfUHuHpYQZ8/s72-c/Documentation.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-8121797994028038807</id><published>2010-07-10T00:15:00.002-04:00</published><updated>2010-07-10T00:19:24.260-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='training'/><category scheme='http://www.blogger.com/atom/ns#' term='jobs'/><category scheme='http://www.blogger.com/atom/ns#' term='reward'/><category scheme='http://www.blogger.com/atom/ns#' term='tasks'/><title type='text'>Work Assignments</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_7RXOll2bOJs/TDf0DcSl6PI/AAAAAAAABoE/_poydYq2MHs/s1600/Work.gif"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 300px; FLOAT: left; HEIGHT: 265px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5492126610572568818" border="0" alt="" src="http://4.bp.blogspot.com/_7RXOll2bOJs/TDf0DcSl6PI/AAAAAAAABoE/_poydYq2MHs/s320/Work.gif" /&gt;&lt;/a&gt;Today was the last day at work before my week of training. I actually completed my tasks in the morning. However I did not want to get bogged down with any new jobs prior to my training. So I stayed low for the afternoon. Luckily nothing popped up.&lt;br /&gt;&lt;br /&gt;I have found that this is becoming a pattern with developers on my team. There is never a reward of leaving early if you work hard and get your tasks done. Your reward will be more work. More often than not, that new work will be something that keeps you late into the night.&lt;br /&gt;&lt;br /&gt;There is no specific reward for getting done early and taking on new tasks. This is a bad setup. Developers are smart and will make sure to minimize such "rewards" for hard work. I don't have the answer on how to fix this problem. Because I am one of those who does not volunteer for extra tasks that much. Why do it? It just does not make sense. Just saying.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-8121797994028038807?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/8121797994028038807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=8121797994028038807' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/8121797994028038807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/8121797994028038807'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/07/work-assignments.html' title='Work Assignments'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_7RXOll2bOJs/TDf0DcSl6PI/AAAAAAAABoE/_poydYq2MHs/s72-c/Work.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-5462891549399855793</id><published>2010-07-06T22:40:00.004-04:00</published><updated>2010-07-06T22:46:47.365-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nested loops'/><category scheme='http://www.blogger.com/atom/ns#' term='stored procedure'/><category scheme='http://www.blogger.com/atom/ns#' term='subroutines'/><title type='text'>Screaming to Refactor</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_7RXOll2bOJs/TDPqixL0SXI/AAAAAAAABnk/8EzGjzCnXTg/s1600/Refactor.gif"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 317px; DISPLAY: block; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5490990253734119794" border="0" alt="" src="http://1.bp.blogspot.com/_7RXOll2bOJs/TDPqixL0SXI/AAAAAAAABnk/8EzGjzCnXTg/s320/Refactor.gif" /&gt;&lt;/a&gt; I am in the middle of coding some change for our next incremental release of the software. After implementing some changes in a stored procedure, I ran my tests. Something was still not right. I traced it down to a trigger calling a stored procedure. It was undoing my changes on the fly. I needed to make another change.&lt;br /&gt;&lt;br /&gt;When I got into the other stored procedure, I was lost. The procedure was 850+ lines of code. There were nested &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;IFs&lt;/span&gt; that were six, seven, and even eight levels deep. I was around when this procedure was changed over the years. And I still was getting confused over the thing. I decided to print out the code, and line up the IF and &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;ELSEs&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;My goal was to refactor this massive procedure. The plan was to break down this monster &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;proc&lt;/span&gt; into many subroutines. In the end, the main procedure got down to 150 lines of code. It was much easier to follow. Of course all the lines of code went to small subroutines. I needed to do a bit of regression testing to make sure I did not break anything. With a change of this magnitude, there are going to be some bugs introduced. My unit tests helped flush them out. I am leaving this procedure is much better shape. I am proud.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-5462891549399855793?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/5462891549399855793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=5462891549399855793' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5462891549399855793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5462891549399855793'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/07/screaming-to-refactor.html' title='Screaming to Refactor'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_7RXOll2bOJs/TDPqixL0SXI/AAAAAAAABnk/8EzGjzCnXTg/s72-c/Refactor.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-7891954095062659583</id><published>2010-06-24T23:44:00.003-04:00</published><updated>2010-06-24T23:52:54.579-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cm'/><category scheme='http://www.blogger.com/atom/ns#' term='team leads'/><category scheme='http://www.blogger.com/atom/ns#' term='assignments'/><category scheme='http://www.blogger.com/atom/ns#' term='schedule'/><category scheme='http://www.blogger.com/atom/ns#' term='Release'/><title type='text'>Forced Management</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_7RXOll2bOJs/TCQmL_WT1QI/AAAAAAAABm0/fMc_qmM_3bA/s1600/Schedule.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 274px; FLOAT: left; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5486552233469531394" border="0" alt="" src="http://1.bp.blogspot.com/_7RXOll2bOJs/TCQmL_WT1QI/AAAAAAAABm0/fMc_qmM_3bA/s320/Schedule.jpg" /&gt;&lt;/a&gt;We have a quick turn around release coming up next month. The project manager provided the high level schedule to everybody. That was a good move. I am looking out for myself. The scheduled time for development is coming up quickly. But I had not seen any preparation done for this task.&lt;br /&gt;&lt;br /&gt;The work had not been divided and assigned to developers. The plan for configuration management of the changes had not been hashed out yet. I gave my team lead some time. But nothing was going down. So at a manager's tech meeting, I started asking some questions.&lt;br /&gt;&lt;br /&gt;I asked one of the leads how the configuration management was going to be done. We figured that out during the meeting. Then I asked my team lead when he was going to do the assignments. He said it was already done. I told him that nobody on the team knew what their assignments were. Essentially I informed him and the group that nothing was done. We also hashed out the assignments during this meeting. The meeting ran an hour longer than normal. But we got the essential decisions for the next release done.&lt;br /&gt;&lt;br /&gt;Should I have waited until the last minute, allowing none of these things to get done? No way. Then me and the team would have been working nights and weekends. Should I have taken the team leads aside individually and told them they needed to get their act together? Perhaps. I could have made the decisions get done. But then I would end up having to do this for every release. I figure I can &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-corrected"&gt;embarrass&lt;/span&gt; the guys a bit by calling them out in a meeting. Perhaps the next time they will be proactive without prodding from me. Maybe not. But if the next release comes around and this work has not been done, I will have to get even more forceful. I will have to call my own special meeting with the big bosses and inform them that some people are not doing their jobs.&lt;br /&gt;&lt;br /&gt;Yes I might be a pain. But this is pain with a purpose. I want to make sure planning is done before it is too late and I suffer. The rank and file developers love me because I am looking out for myself and them. The responsible team leads don't like getting called out. But I make it easy. Do your job and I won't bother you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-7891954095062659583?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/7891954095062659583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=7891954095062659583' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7891954095062659583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7891954095062659583'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/06/forced-management.html' title='Forced Management'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_7RXOll2bOJs/TCQmL_WT1QI/AAAAAAAABm0/fMc_qmM_3bA/s72-c/Schedule.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-6908348972626115735</id><published>2010-06-21T18:15:00.002-04:00</published><updated>2010-06-21T18:23:03.546-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='customer'/><category scheme='http://www.blogger.com/atom/ns#' term='documentation'/><category scheme='http://www.blogger.com/atom/ns#' term='priority'/><category scheme='http://www.blogger.com/atom/ns#' term='manager'/><title type='text'>Grunt Work</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_7RXOll2bOJs/TB_kqeZP1dI/AAAAAAAABms/GRYQim6OErU/s1600/P1005.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 274px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5485354289525151186" border="0" alt="" src="http://2.bp.blogspot.com/_7RXOll2bOJs/TB_kqeZP1dI/AAAAAAAABms/GRYQim6OErU/s320/P1005.jpg" /&gt;&lt;/a&gt;A few weeks ago I got an e-mail from a manager in my company. He wanted to know the status of a printer he bought for our office. I heard the thing was dead. So that is what I reported to the manager. This seems to infuriate him as he thought the thing had been in use during the past year. Now it was my job to get the thing running.&lt;br /&gt;&lt;br /&gt;Here is the problem. I am the senior guy on my project. That means I deal with a lot of emergencies from the customer. This keep me at work for long hours every day. How can I make time to get a broke down printer working? I like to apply balance to everything. And I also count the costs of choosing different tasks over each other. After a while I was &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-corrected"&gt;spending&lt;/span&gt; too much time explaining why the printer was still not working to the manager. Thus I made it a priority to fix it.&lt;br /&gt;&lt;br /&gt;I went to the local computer store to get some parts. Then I found some documentation online on how to setup and debug the printer. Doing these chores meant that I had to skip some meetings where I normally provide all the information. Let's just say those meetings did not go well today. I had a good excuse though. A high level manager wanted his this printer up and running. Finding the printers drivers was not that hard. It was tricky to figure out which things I needed to rip out of the printer to ensure prints went through fine. This is just part of the &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-corrected"&gt;drudgery&lt;/span&gt; of being a developer. People assume you can do &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;sys&lt;/span&gt; admin or help desk work. Since I am technical, at least I can. The printer is printing fine now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-6908348972626115735?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/6908348972626115735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=6908348972626115735' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/6908348972626115735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/6908348972626115735'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/06/grunt-work.html' title='Grunt Work'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7RXOll2bOJs/TB_kqeZP1dI/AAAAAAAABms/GRYQim6OErU/s72-c/P1005.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-8482112428467233714</id><published>2010-06-13T23:45:00.002-04:00</published><updated>2010-06-13T23:49:48.147-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='goals'/><category scheme='http://www.blogger.com/atom/ns#' term='boring'/><category scheme='http://www.blogger.com/atom/ns#' term='technical'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><category scheme='http://www.blogger.com/atom/ns#' term='business'/><title type='text'>Career Programmer</title><content type='html'>&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 292px; FLOAT: left; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5482470604384494354" border="0" alt="" src="http://2.bp.blogspot.com/_7RXOll2bOJs/TBWl96Hb4xI/AAAAAAAABmc/6qkXWnR4Hh8/s320/Career.jpg" /&gt;Got a gift card from Barnes and Nobles book store. So I decided to buy at least one technical book. It was The Career Programmer by Christopher Duncan. This one is not technically a technical book. It tries to help you navigate the politics and such of software development.&lt;br /&gt;&lt;br /&gt;I must confess that after reading the first 4 chapters of this book, I was bored as hell. But I invested the cash to buy the book. I needed to get something out of it. Then it hit me. I would start reading the chapters from the end of the book toward the beginning. And this is working for me now. It might get boring again when I get to the middle of the book.&lt;br /&gt;&lt;br /&gt;The themes I have read so far are simple. Understand that companies are about business. If you can arrange to make your boss look good, and further your goals as well, you win. I will fill you in when I complete reading of this beast. Right now I cannot recommend that you purchase this book. There has to be better material out there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-8482112428467233714?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/8482112428467233714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=8482112428467233714' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/8482112428467233714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/8482112428467233714'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/06/career-programmer.html' title='Career Programmer'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7RXOll2bOJs/TBWl96Hb4xI/AAAAAAAABmc/6qkXWnR4Hh8/s72-c/Career.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-3896092982764051405</id><published>2010-06-06T00:04:00.003-04:00</published><updated>2010-06-06T00:10:22.854-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='requirements'/><category scheme='http://www.blogger.com/atom/ns#' term='data'/><category scheme='http://www.blogger.com/atom/ns#' term='boss'/><category scheme='http://www.blogger.com/atom/ns#' term='documentation'/><title type='text'>True Understanding</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_7RXOll2bOJs/TAseRuu9a4I/AAAAAAAABmU/y7Z1cx22n90/s1600/Understanding.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 315px; FLOAT: left; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5479506661577943938" border="0" alt="" src="http://1.bp.blogspot.com/_7RXOll2bOJs/TAseRuu9a4I/AAAAAAAABmU/y7Z1cx22n90/s320/Understanding.jpg" /&gt;&lt;/a&gt;Recently the customers informed us that their most important problem had not been fixed. My manager called me to appease the customer. I took a peek in the production environment. Yes the data was messed up. I guess the last fix did not do the job.&lt;br /&gt;&lt;br /&gt;My boss was worried that the customer was going to continually think that the problem was unresolved. So he had me meet with the customer to define and document exactly what they wanted. I speak their language. So it was clear to me. I just wrote down all the unwritten and unsaid assumptions that I comprehended.&lt;br /&gt;&lt;br /&gt;In the end, I came up with a 4 page document. We met to ensure this document was correct and complete. My boss asked that the customer and I agree on any unusual boundary cases. So I discussed and documented what my data correction script would do if it ran into unexpected scenarios. The result was still 4 pages of documentation.&lt;br /&gt;&lt;br /&gt;Now most of this documentation was just regurgitating the basic information that I and the customer know. The reason for this document was that none of the managers or executives know the basics. The testers for the most part do not have a strong understanding of the basics either. I was reminded of this as we entered testing of my script. However they did get a solid tester on the scene. He just needed to learn some of the business rules before he could make heads or tails of the testing required. Our team loaned him a developer to assist him, but this guy needed more help to get through all his tests. Luckily this was a high priority task. So I was directed to make time for it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-3896092982764051405?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/3896092982764051405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=3896092982764051405' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/3896092982764051405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/3896092982764051405'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/06/true-understanding.html' title='True Understanding'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_7RXOll2bOJs/TAseRuu9a4I/AAAAAAAABmU/y7Z1cx22n90/s72-c/Understanding.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-1184597593752039331</id><published>2010-05-27T17:34:00.002-04:00</published><updated>2010-05-27T17:34:00.276-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='requirements'/><category scheme='http://www.blogger.com/atom/ns#' term='deliverables'/><category scheme='http://www.blogger.com/atom/ns#' term='scope'/><category scheme='http://www.blogger.com/atom/ns#' term='training'/><category scheme='http://www.blogger.com/atom/ns#' term='deadlines'/><title type='text'>Good Estimates</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_7RXOll2bOJs/S_xClKNdAWI/AAAAAAAABls/8OT5F5O86ZM/s1600/Estimate.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5475324453139054946" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 259px; CURSOR: hand; HEIGHT: 320px" alt="" src="http://4.bp.blogspot.com/_7RXOll2bOJs/S_xClKNdAWI/AAAAAAAABls/8OT5F5O86ZM/s320/Estimate.jpg" border="0" /&gt;&lt;/a&gt;Producing accurate software development estimates is an art. These days they mostly seem to be wrong. How can we correct this pattern? Start by defining your project scope. Without that you are doomed to fail. Period. When the requirements change, so does the scope. You then need to estimate again.&lt;br /&gt;&lt;br /&gt;Once you have the documented requirements, locate all the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;unknowns&lt;/span&gt;. Overestimate these items. Put together a list of &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;deliverables&lt;/span&gt; to manage expectations. Remember to cost in &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;security&lt;/span&gt; the first time around. There may also need to be time factored in for developer training.&lt;br /&gt;&lt;br /&gt;This might be obvious, but you need a lot of time for testing. The current fix I am doing requires double the amount of time testing as it does coding. This should be the norm and not the exception. Get your developers to agree to the estimate, and more importantly the deadlines.&lt;br /&gt;&lt;br /&gt;Add some slack in, no matter how well you think your estimate is. The estimation phase is the toughest one. Don't cave in to pressure to reduce the estimate. That will only lead to disaster.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-1184597593752039331?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/1184597593752039331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=1184597593752039331' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/1184597593752039331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/1184597593752039331'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/05/good-estimates.html' title='Good Estimates'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_7RXOll2bOJs/S_xClKNdAWI/AAAAAAAABls/8OT5F5O86ZM/s72-c/Estimate.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-4746439812829375527</id><published>2010-05-26T17:17:00.002-04:00</published><updated>2010-05-26T17:17:01.031-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='green card'/><category scheme='http://www.blogger.com/atom/ns#' term='US citizens'/><category scheme='http://www.blogger.com/atom/ns#' term='research'/><category scheme='http://www.blogger.com/atom/ns#' term='IT'/><category scheme='http://www.blogger.com/atom/ns#' term='pay'/><title type='text'>H1-B Visa Pay</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_7RXOll2bOJs/S_w-XQpHNGI/AAAAAAAABlk/yG4hQWcw9as/s1600/H1-B.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5475319816300999778" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 260px; CURSOR: hand; HEIGHT: 291px" alt="" src="http://3.bp.blogspot.com/_7RXOll2bOJs/S_w-XQpHNGI/AAAAAAAABlk/yG4hQWcw9as/s320/H1-B.jpg" border="0" /&gt;&lt;/a&gt;People brought into the company under an H1-B visa make less money than US citizens, right? This is another ploy like outsourcing to bring the salary of US citizens down lower. Here is something interesting. Recent research from the University of Maryland shows that the opposite may be true. H1-B visa workers make more money than their US citizen counterparts in the IT industry.&lt;br /&gt;&lt;br /&gt;The study took education and experience into account. It found that H1-B &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;visa&lt;/span&gt; holders made about 9% more in pay than US citizens. This is the inverse of the situation with green card holders making 13% less than US citizens. The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;UMD&lt;/span&gt; findings contradict other studies and information previously available. Back in the early 2000's, they found H1-B visa holders making $75k average salaries.&lt;br /&gt;&lt;br /&gt;Why is this so? One theory is that companies are getting specialized skills from outside the country, and they need to pay to attract the talent. The H1-B &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;visa&lt;/span&gt; holders are also temporary workers. Temp workers in general make more than long term employees. More than half of all H1-B visas are for IT work. Maybe their presence is not all that bad for the locals.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-4746439812829375527?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/4746439812829375527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=4746439812829375527' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/4746439812829375527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/4746439812829375527'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/05/h1-b-visa-pay.html' title='H1-B Visa Pay'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_7RXOll2bOJs/S_w-XQpHNGI/AAAAAAAABlk/yG4hQWcw9as/s72-c/H1-B.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-3689373345023328613</id><published>2010-05-26T12:37:00.002-04:00</published><updated>2010-05-26T12:42:29.689-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='resume'/><category scheme='http://www.blogger.com/atom/ns#' term='API'/><category scheme='http://www.blogger.com/atom/ns#' term='product'/><category scheme='http://www.blogger.com/atom/ns#' term='free tools'/><title type='text'>More on Jobs</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_7RXOll2bOJs/S_1OZbmmemI/AAAAAAAABl8/Yy1IpEnn0Gw/s1600/Job.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 246px; FLOAT: left; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5475618920765749858" border="0" alt="" src="http://3.bp.blogspot.com/_7RXOll2bOJs/S_1OZbmmemI/AAAAAAAABl8/Yy1IpEnn0Gw/s320/Job.jpg" /&gt;&lt;/a&gt;Software development is a field that is easy to get started in. You can download some free tools. And most of them will work on a normal PC. Get busy working on a product. If you don't think you are ready for that, try helping out on an open source project.&lt;br /&gt;&lt;br /&gt;You don't even need to start out coding. I would recommend it. However you can do some testing or documentation work first. There are some technical tasks that are not hard core coding. For example, you could develop a web site.&lt;br /&gt;&lt;br /&gt;Learn to program to an &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;API&lt;/span&gt;. Become proficient at developing mobile applications. These are good skills to have. If you cannot get a first job as a developer, try working for a non-profit organization or a small business. Alternatively you can get a regular job, then look for ways to move into your company's tech side.&lt;br /&gt;&lt;br /&gt;Doing some hand-on work can help make your resume stand out. This is crucial for getting that first real development job. I wish somebody had told me about this when I was in school. Luckily I did end up at an internship which gave me a great resume upon graduation from college. These days you need all the help you can get to enter the job market.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-3689373345023328613?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/3689373345023328613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=3689373345023328613' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/3689373345023328613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/3689373345023328613'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/05/more-on-jobs.html' title='More on Jobs'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_7RXOll2bOJs/S_1OZbmmemI/AAAAAAAABl8/Yy1IpEnn0Gw/s72-c/Job.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-2877238234948961826</id><published>2010-05-25T16:57:00.002-04:00</published><updated>2010-05-25T17:02:00.251-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='major'/><category scheme='http://www.blogger.com/atom/ns#' term='social media'/><category scheme='http://www.blogger.com/atom/ns#' term='skills'/><category scheme='http://www.blogger.com/atom/ns#' term='community college'/><category scheme='http://www.blogger.com/atom/ns#' term='conferences'/><title type='text'>Getting a Job</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_7RXOll2bOJs/S_w5u_uUsEI/AAAAAAAABlc/XzfWhZ66EbE/s1600/Job.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5475314726518173762" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 302px; CURSOR: hand; HEIGHT: 320px" alt="" src="http://2.bp.blogspot.com/_7RXOll2bOJs/S_w5u_uUsEI/AAAAAAAABlc/XzfWhZ66EbE/s320/Job.jpg" border="0" /&gt;&lt;/a&gt;So you want to be a computer programmer. How do you go about doing this? The job market right now is tough. You got to stand out somehow. I just read this blog entry on how one guy successfully got hired.&lt;br /&gt;&lt;br /&gt;You need to have a goal of becoming a great programmer. Go to college. However don't have a goal to get good grades. Get good skills instead. Make sure you do go to college. It can be a community college. But don't cop out and go to some institute like &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Devry&lt;/span&gt;. You will end up doing documentation or help desk work.&lt;br /&gt;&lt;br /&gt;Here is another surprising misconception. Your major does not matter that much. Choose a technical degree. But it does not have to be computer science or computer engineering. Do join user groups and attend conferences. Get your &lt;a href="http://blog-chief.blogspot.com/"&gt;social media&lt;/a&gt; on. When you apply for jobs, have a personalized cover letter. It would also help to customize the resume to address the job requirements as well. Good luck&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-2877238234948961826?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/2877238234948961826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=2877238234948961826' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/2877238234948961826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/2877238234948961826'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/05/getting-job.html' title='Getting a Job'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7RXOll2bOJs/S_w5u_uUsEI/AAAAAAAABlc/XzfWhZ66EbE/s72-c/Job.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-2729260135595166852</id><published>2010-05-24T15:24:00.001-04:00</published><updated>2010-05-24T15:26:38.456-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='quality'/><category scheme='http://www.blogger.com/atom/ns#' term='DoD'/><category scheme='http://www.blogger.com/atom/ns#' term='outsourcing'/><category scheme='http://www.blogger.com/atom/ns#' term='SaaS'/><category scheme='http://www.blogger.com/atom/ns#' term='integration skills'/><title type='text'>Software as a Service</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_7RXOll2bOJs/S_rSrVGKRVI/AAAAAAAABlU/uCpYboBTiHs/s1600/SaaS.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 208px;" src="http://4.bp.blogspot.com/_7RXOll2bOJs/S_rSrVGKRVI/AAAAAAAABlU/uCpYboBTiHs/s320/SaaS.jpg" alt="" id="BLOGGER_PHOTO_ID_5474919938861450578" border="0" /&gt;&lt;/a&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Software as a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;service&lt;/span&gt; is a hot topic these days. The main selling point is that you can quickly get high quality products developed. The only problem is that it is hard to find developers with the necessary skill sets to do the work. Such developers need integration skills.&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Outsourcing in general is a difficult task. Like many software development efforts, IT often fails in their outsourcing implementation. Know that software as a service is a kind of outsourcing in itself.  Security is important in the software as a service world. Normal &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;DoD&lt;/span&gt; security audits may not be sufficient to ensure your security is tight. You must test the security of the vendors you choose. &lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Software as a service depends on the Internet. So by definition there will be downtime. You need to prepare for this in advance. Make sure incoming mail also gets routed to an alternate system. And the outgoing mail backup should always be ready to go. Test your data recovery plans. And it would be best if you were in control of your own &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;DNS&lt;/span&gt; entries.&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-2729260135595166852?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/2729260135595166852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=2729260135595166852' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/2729260135595166852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/2729260135595166852'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/05/software-as-service.html' title='Software as a Service'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_7RXOll2bOJs/S_rSrVGKRVI/AAAAAAAABlU/uCpYboBTiHs/s72-c/SaaS.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-5510890124774948987</id><published>2010-05-19T14:51:00.002-04:00</published><updated>2010-05-19T14:55:41.845-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data'/><category scheme='http://www.blogger.com/atom/ns#' term='business logic'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><category scheme='http://www.blogger.com/atom/ns#' term='functions'/><title type='text'>Code Done Right</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_7RXOll2bOJs/S_QzQvgDR-I/AAAAAAAABks/ih-2C84EQDE/s1600/Right.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5473055809883817954" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 232px; CURSOR: hand; HEIGHT: 320px" alt="" src="http://4.bp.blogspot.com/_7RXOll2bOJs/S_QzQvgDR-I/AAAAAAAABks/ih-2C84EQDE/s320/Right.jpg" border="0" /&gt;&lt;/a&gt;I have this task to complete. The goal is to correct a lot of data corrupted in production by some bugs. The actual &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;SQL&lt;/span&gt; is not too difficult. Understanding the business logic is most tricky. We had a meeting with the customer to confirm the requirements. Based on the first meeting I banged out a script in no time.&lt;br /&gt;&lt;br /&gt;Now I made sure I did my script right. The main routine just makes a lot of calls to other functions. Those functions are ones that I wrote myself. They are in the script as well. However the main routine just implements the logic calling other routines. All the routines trap exceptions and deal with them to ensure the script will run on.&lt;br /&gt;&lt;br /&gt;Later we found out that there were some additional requirements for the script. Now the tough business logic became even tougher. However the way I set up the script helped make these new changes a breeze. There was a need for a new function or two. But the main script just needed a line or two tweaked. I had set myself up for success. With the time saved I assisted some other developers who were swamped with their full work loads. That's smart.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-5510890124774948987?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/5510890124774948987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=5510890124774948987' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5510890124774948987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/5510890124774948987'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/05/code-done-right.html' title='Code Done Right'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_7RXOll2bOJs/S_QzQvgDR-I/AAAAAAAABks/ih-2C84EQDE/s72-c/Right.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-7997326059515756739</id><published>2010-05-18T11:23:00.003-04:00</published><updated>2010-05-18T11:29:22.053-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='instinct'/><category scheme='http://www.blogger.com/atom/ns#' term='SOP'/><category scheme='http://www.blogger.com/atom/ns#' term='responsibility'/><category scheme='http://www.blogger.com/atom/ns#' term='matrix'/><title type='text'>Dedicated Administrators</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_7RXOll2bOJs/S_KxageqoQI/AAAAAAAABkU/dGTH01LqbJ4/s1600/Dedication.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5472631566161846530" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand; HEIGHT: 214px" alt="" src="http://1.bp.blogspot.com/_7RXOll2bOJs/S_KxageqoQI/AAAAAAAABkU/dGTH01LqbJ4/s320/Dedication.jpg" border="0" /&gt;&lt;/a&gt;For the past 10 years or so, we have had a dedicated system administrator at our computing center. They were responsible for our specific system. It was easy. If we needed something done on the back end, we would contact this person.&lt;br /&gt;&lt;br /&gt;I got a disturbing email from the person today. They are now being taken off the job. It is part of a enterprise wide shift in how work gets done. Instead of specific people being responsible for each system, the whole system administration staff if going to be responsible for all the systems.&lt;br /&gt;&lt;br /&gt;This means staff unfamiliar with our system will be &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;matrixed&lt;/span&gt; in to do the work. While this might work for stable systems with straight forward standard operating procedures, I bet this will not work well with our system. There is a lot that the administrators pick up over the years. And it is hard to train this instinct. I think we are going to have to suffer for a while until they realize that the new plan is not working. Great.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-7997326059515756739?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/7997326059515756739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=7997326059515756739' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7997326059515756739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7997326059515756739'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/05/dedicated-administrators.html' title='Dedicated Administrators'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_7RXOll2bOJs/S_KxageqoQI/AAAAAAAABkU/dGTH01LqbJ4/s72-c/Dedication.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-1132430391319005943</id><published>2010-05-17T10:35:00.003-04:00</published><updated>2010-05-17T10:40:58.976-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='requirements'/><category scheme='http://www.blogger.com/atom/ns#' term='conference call'/><category scheme='http://www.blogger.com/atom/ns#' term='peer review'/><category scheme='http://www.blogger.com/atom/ns#' term='data fix'/><title type='text'>A Work of Beauty</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_7RXOll2bOJs/S_FULMAELwI/AAAAAAAABkM/lrFDkym843s/s1600/Documentation.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5472247573408657154" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand; HEIGHT: 247px" alt="" src="http://4.bp.blogspot.com/_7RXOll2bOJs/S_FULMAELwI/AAAAAAAABkM/lrFDkym843s/s320/Documentation.jpg" border="0" /&gt;&lt;/a&gt;The customer wanted some data in our system fixed. A prior bug fix did not resolve the underlying data corruption caused by the bug. They were demanding this be resolve as our top priority.&lt;br /&gt;&lt;br /&gt;I got called in because I know the system well. We had a meeting where the customer told us the requirements. People get nervous when things like this are just rattled off. So a manager recommended we document the requirements as we heard them.&lt;br /&gt;&lt;br /&gt;After a while I called up the manager to ask who was going to write up that documentation, and whether it was going to be a team effort. Good thing I called. He said he wanted me to do it. Better to hear about this when I called than as a surprise at the last minute.&lt;br /&gt;&lt;br /&gt;Luckily I was fully engaged with the customer when we went through the requirements &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;clarification&lt;/span&gt;. I put together the flow of how our data correction script would run. I added all the details so that somebody familiar with the system would know exactly what we were doing. Got a tech guy to peer review the work. Then a manager added section titles. This document was becoming a good looking thing.&lt;br /&gt;&lt;br /&gt;Today we had our first set of meetings with the customer. This one was only with our sponsor to get the game plan for discussing the document with the end user. Our sponsor was very pleased with the document. It read easily. And it captured all the details of what we talked about during our requirements gathering. I was very proud of this document.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-1132430391319005943?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/1132430391319005943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=1132430391319005943' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/1132430391319005943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/1132430391319005943'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/05/work-of-beauty.html' title='A Work of Beauty'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_7RXOll2bOJs/S_FULMAELwI/AAAAAAAABkM/lrFDkym843s/s72-c/Documentation.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-2473531955300443624</id><published>2010-05-16T16:10:00.000-04:00</published><updated>2010-05-16T16:10:00.618-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='requirements'/><category scheme='http://www.blogger.com/atom/ns#' term='customer'/><category scheme='http://www.blogger.com/atom/ns#' term='routines'/><category scheme='http://www.blogger.com/atom/ns#' term='schedule'/><category scheme='http://www.blogger.com/atom/ns#' term='logic'/><title type='text'>Happy Camper</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_7RXOll2bOJs/S-2uJwqlpqI/AAAAAAAABkE/WybTQRsU-A0/s1600/Happy.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5471220605030606498" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand; HEIGHT: 240px" alt="" src="http://4.bp.blogspot.com/_7RXOll2bOJs/S-2uJwqlpqI/AAAAAAAABkE/WybTQRsU-A0/s320/Happy.jpg" border="0" /&gt;&lt;/a&gt;It is Friday afternoon, and I am loving life. Sure it is nice that the weekend is upon us. However I am smiling for a different reason. I got assigned to a high priority problem. No. That alone is not cause for joy. However the fix involves some interesting logic. And I get to code the whole thing myself.&lt;br /&gt;&lt;br /&gt;I started with an empty text file. Well I actually started with a small template. But it had no functionality in it. Then I started coding away at the requirements. Yes. I actually had documented requirements. I wrote them. Spoke to the customer. Got assigned to document what I heard. Now I can code to spec.&lt;br /&gt;&lt;br /&gt;Here I am, writing nice tight routines. They call subroutines. And guess what? I get to code the subroutines as well. There is actually enough time in the schedule to get all the work done. There is time to adequately test the functionality. I think they got a sense of the complexity when I spoke to the customer about their requirements. I kept going through significant scenarios until I understood what they wanted. There are a lot of combinations, and therefore many scenarios. Those will all be turned into unit test cases.&lt;br /&gt;&lt;br /&gt;I just like writing code. It is nice if it is new development. It also helps that the customer desperately needs this code to be correct for them to do their jobs. People are counting on me to deliver. I actually have a reasonable schedule to do my work. You bet I am happy. This is such an unusual situation for most software maintenance work. So I am here on a Friday afternoon. I am writing code and not looking at the clock. Why go anywhere else when I am having so much fun?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-2473531955300443624?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/2473531955300443624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=2473531955300443624' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/2473531955300443624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/2473531955300443624'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/05/happy-camper.html' title='Happy Camper'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_7RXOll2bOJs/S-2uJwqlpqI/AAAAAAAABkE/WybTQRsU-A0/s72-c/Happy.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-855995849126549255</id><published>2010-05-15T15:29:00.001-04:00</published><updated>2010-05-15T15:29:00.519-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='boss'/><category scheme='http://www.blogger.com/atom/ns#' term='problems'/><category scheme='http://www.blogger.com/atom/ns#' term='junior developer'/><category scheme='http://www.blogger.com/atom/ns#' term='maintenance'/><category scheme='http://www.blogger.com/atom/ns#' term='fix'/><title type='text'>Conference Call</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_7RXOll2bOJs/S-2kvWDtasI/AAAAAAAABj8/JSW2QcxG-6M/s1600/Meeting.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5471210255606966978" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand; HEIGHT: 290px" alt="" src="http://2.bp.blogspot.com/_7RXOll2bOJs/S-2kvWDtasI/AAAAAAAABj8/JSW2QcxG-6M/s320/Meeting.gif" border="0" /&gt;&lt;/a&gt;I saw a new high priority customer trouble ticket come in. It got assigned to a junior developer. Our team lead said he would help out as well. Then the test team shared some of their findings. I was hoping all was going well. Then I got the dreaded invite to the conference call.&lt;br /&gt;&lt;br /&gt;Reluctantly I dialed in. The boss asked whether this problem was related to any other fixes we recently deployed. I tried to stay out of this. People were trying to recall what changes went in to fix what problems. They were also trying to determine whether any of those changes were incomplete.&lt;br /&gt;&lt;br /&gt;Finally I could not take it any more. I said we really needed to get back on track. Somebody should find out whether what the customer is reporting is actually happening. Then they should find out why and fix it. After all that we can then investigate how such a problem slipped by. Eventually the boss and the team lead agreed. Then all the developers started saying they were unable to work this weekend. That's when I knew our conference call had become broke down again. Luckily I was able to switch to a higher priority task before conference call number 2 started up on this problem.&lt;br /&gt;&lt;br /&gt;Maintenance is not really that hard. You talk with users to find out what they are experiencing. Then find out what they are expecting. Determine if their expectations are valid. See if you can make the problem happen. Then code a fix to make the problem go away. If you are mature, go a little &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;further&lt;/span&gt; to find out how the problem can be resolved. Anything beyond these simple steps are going to be a waste of time. Seriously.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-855995849126549255?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/855995849126549255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=855995849126549255' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/855995849126549255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/855995849126549255'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/05/conference-call.html' title='Conference Call'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7RXOll2bOJs/S-2kvWDtasI/AAAAAAAABj8/JSW2QcxG-6M/s72-c/Meeting.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-4671927875960876740</id><published>2010-05-14T15:23:00.003-04:00</published><updated>2010-05-14T15:28:41.540-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='build'/><category scheme='http://www.blogger.com/atom/ns#' term='warning'/><category scheme='http://www.blogger.com/atom/ns#' term='registry'/><category scheme='http://www.blogger.com/atom/ns#' term='message box'/><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><title type='text'>Middle of the Function</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_7RXOll2bOJs/S-2jM84d3HI/AAAAAAAABj0/iCyMF-9X0CM/s1600/Middle.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5471208565221743730" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand; HEIGHT: 208px" alt="" src="http://4.bp.blogspot.com/_7RXOll2bOJs/S-2jM84d3HI/AAAAAAAABj0/iCyMF-9X0CM/s320/Middle.jpg" border="0" /&gt;&lt;/a&gt;A coworker has been struggling to resolve a bug in our system for about 5 days. Part of the problem is that he keeps getting distracted by other work. However he made a goal of knocking this thing out by the end of the week.&lt;br /&gt;&lt;br /&gt;Three were strange things happening. Perusing the code made it look like those things should never happen. So this developer put a bunch of breakpoints in the code. Actually he inserted a bunch of message boxes to slow things down and alert him to what was happening.&lt;br /&gt;&lt;br /&gt;He traced the code down into one particular call to a funciton. The function looked simple. It was supposed to retrieve a string from the registry. However it was coming back with the wrong string. So he traced in with the debugger. That's when he saw what was going on. In the middle of the function, somebody put some code to return a constant string. All the other code below it was not getting executed.&lt;br /&gt;&lt;br /&gt;You would think that the compiler would warn you about the unreachable code. It probably was. However that was getting lost in the million other warnings that race by in the build. Your eyes can deceive you when you trace code. However the debugger does not lie, not usually at least.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-4671927875960876740?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/4671927875960876740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=4671927875960876740' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/4671927875960876740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/4671927875960876740'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/05/middle-of-function.html' title='Middle of the Function'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_7RXOll2bOJs/S-2jM84d3HI/AAAAAAAABj0/iCyMF-9X0CM/s72-c/Middle.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-7381210387532754839</id><published>2010-05-12T13:56:00.001-04:00</published><updated>2010-05-12T14:00:57.311-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='workstation'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft Office'/><category scheme='http://www.blogger.com/atom/ns#' term='exception'/><category scheme='http://www.blogger.com/atom/ns#' term='reports'/><title type='text'>Desktop Environment</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_7RXOll2bOJs/S-rr-9mPq0I/AAAAAAAABjE/3uM6PCuxzKo/s1600/Environment.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5470444164314278722" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand; HEIGHT: 280px" alt="" src="http://3.bp.blogspot.com/_7RXOll2bOJs/S-rr-9mPq0I/AAAAAAAABjE/3uM6PCuxzKo/s320/Environment.jpg" border="0" /&gt;&lt;/a&gt;I have been working on a high priority problem for the customer. The behavior is strange. The software just does not work on some workstation. It generates an unknown exception. My boss told me to look into the version of Microsoft Office.&lt;br /&gt;&lt;br /&gt;We use Office to run the reports. Everybody has Office 2003. I drilled down to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;DLL&lt;/span&gt; from Office that we use. Everybody has the exact same version. But some people's stuff works, others does not.&lt;br /&gt;&lt;br /&gt;After a while the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;customer&lt;/span&gt; got frustrated. Luckily they wanted us to stop researching this problem. They have other teams that manage the configuration of all workstations. Now I am only going to assist the workstation folks to figure out the delta between the workstations.&lt;br /&gt;&lt;br /&gt;We got to have a stable workstation. Our documentation lists the required software and versions that we expect be configured on the workstation. It is tough when the customer manages the workstations. That means there is a variable outside of our control. But I guess that is life.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-7381210387532754839?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/7381210387532754839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=7381210387532754839' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7381210387532754839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7381210387532754839'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/05/desktop-environment.html' title='Desktop Environment'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_7RXOll2bOJs/S-rr-9mPq0I/AAAAAAAABjE/3uM6PCuxzKo/s72-c/Environment.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4415926011471879807.post-7013906059194918864</id><published>2010-05-11T13:56:00.003-04:00</published><updated>2010-05-11T14:01:54.042-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='verification'/><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows registry'/><category scheme='http://www.blogger.com/atom/ns#' term='disk space'/><title type='text'>More Build Woes</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_7RXOll2bOJs/S-maTnwqsEI/AAAAAAAABi8/KfRiXLdvlHQ/s1600/Build.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5470072884299477058" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand; HEIGHT: 212px" alt="" src="http://4.bp.blogspot.com/_7RXOll2bOJs/S-maTnwqsEI/AAAAAAAABi8/KfRiXLdvlHQ/s320/Build.JPG" border="0" /&gt;&lt;/a&gt;Our team is about to release a new version of our &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;system&lt;/span&gt; to the customer. Another developer is leading that effort. He found the latest version of our code had a lot of bugs. Not sure how it got this way. But the developer went in and fixed them. He then wanted another developer to go in and verify that his changes work.&lt;br /&gt;&lt;br /&gt;Here is the problem. Nobody on the development team seems capable of building the whole system. That's a big problem. I know some of the people are newer. But come on people. I was not ready to help because I had been assigned a high priority problem the production users are encountering.&lt;br /&gt;&lt;br /&gt;My team lead gave me a call. He said he tried to help verify the code changes. But he too could not build. Criminal. The he was "out of the office sick" today. Figure. He asked me to step in and assist. I told him I would need a reprieve from my current task. When he gave me the go ahead, I jumped on the verification.&lt;br /&gt;&lt;br /&gt;This is when I saw what the pain was about. One of our apps refused to build. Our C: drives are out of space. So developers build from the D: drive now. But this one app was not having it. I modified the environment to build from D:. Then I ran into additional problems. I hacked through that. The next two apps were easy to build. The hard part was writing a custom script that would set up the Windows registry for these apps to run. Something is just not right here. I was able to do the verification, but there should not be this much pain. Time to solve this problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4415926011471879807-7013906059194918864?l=susops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://susops.blogspot.com/feeds/7013906059194918864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4415926011471879807&amp;postID=7013906059194918864' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7013906059194918864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4415926011471879807/posts/default/7013906059194918864'/><link rel='alternate' type='text/html' href='http://susops.blogspot.com/2010/05/more-build-woes.html' title='More Build Woes'/><author><name>Maintenance Man</name><uri>http://www.blogger.com/profile/11251164494419993264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp3.blogger.com/_7RXOll2bOJs/RzDz9uI32rI/AAAAAAAAAAU/YtQkHJLbQ9k/s320/XeroSmiley.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_7RXOll2bOJs/S-maTnwqsEI/AAAAAAAABi8/KfRiXLdvlHQ/s72-c/Build.JPG' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
