780 likes | 954 Views
Agile Methodologies and Chaos Revisited. William (Bill) Myers Cinergy Corporation Information Builders Summit 2004 User Conference May 2004.
E N D
Agile MethodologiesandChaos Revisited William (Bill) Myers Cinergy Corporation Information Builders Summit 2004 User Conference May 2004 * The statements and opinions herein are those of the individual author. They are provided for informational purposes only and should not be relied upon for decision making. William (Bill) Myers
Introduction • Audience & Flow • General Agile reporting ( ~ 1/3 rd ) • WebFocus Agile reports (~ 1/3 rd ) • Agile Methodologies (~ 1/3 rd ) • Philosophy & Methods • Management & Coding • Questions • Follow-up questions at end • Appendix • Links • Additional Details / starts at References slide • Additional points • Supplemental Handout William (Bill) Myers
What is Agility • Ability to adapt • to Changing circumstances • to Changing requirements • Impact • Improves business climate • Provides competitive edge • Quick gratification • Customers & Developers • Faster Return on Investment William (Bill) Myers
Agile Methodologies / Perspective • How to Decide • Relationships & Responsibilities • 80 / 20 rule • Feature driven • Customer stories • Baseline high level • Emerge/Converge • Reduce reporting risks Note: Crystal Methodology IS NOT RELATED to the reporting product William (Bill) Myers
Reporting Population • Super User • Technical skills • Understands their piece of the data • May be tactical or strategic • Strategic User • Executive or analyst • Needs highly summarized and graphed snapshots • Limited technical skills • Tactical User • Needs up-to-minute detailed data to do their job • Limited technical skills William (Bill) Myers
Normal Report Development Process • Demand that customer predict the future • Forecast list of needed reports • Requires visualization / no data available • Data may support 20,000,000 variations • Design signoff in blood • Early code freeze • Rigid Change Control • More signoffs • Complain about scope creep • Accuse users of changing their mind • List all changes as bugs • Falsely implies a defective product Requirements List William (Bill) Myers
Agile Reporting • Bounded Chaos • Random actions inside of the boundary • Self Building • Developer builds 90% • User checks options • Program finishes writing itself • Program creates report • Broad Scope • Can replace millions of fixed reports • Requirements can be hazy up front William (Bill) Myers
Agile Reporting - Definitions • Report (definition) • Any output where user can not change data in database • More than printer • Core & Options • Core – on every report, fixed • Options – added to report based on user’s selections: columns & totals • Filters • Limits input data • Medium • Web page, paper, excel, pivot table, PDF file, lists, graphs, etc • Measures • Changes the core - unusual William (Bill) Myers
IBI Sample - ggorder2.fex • As Installed • Units by Product • For one date • Agile Modification • Add &sort1 • Standard front-end • Add dollar value • Immaterial to agile William (Bill) Myers
Core & Option - Web Page • Shows total sales of each product by state & sales rep • Refer to handout • Checking no boxes: one number only William (Bill) Myers
Agile ggorder2.fex • Core only • Boxes checked • None William (Bill) Myers
Agile ggorder2.fex • Same fex • No changes • Boxes checked • Vendor Name • Product William (Bill) Myers
Agile ggorder2.fex • Same fex • No changes • Boxes checked • Product • Totals • Store Name William (Bill) Myers
Agile ggorder2.fex • Same fex • No changes • Boxes checked • State, City, Store Name (totals), Vendor Name, Product • Options • 362,889 formats • ONE program • Risks managed William (Bill) Myers
Core & Option Executive Demo • IBI Sales Prototype • Used Production databases • Not standard IBI demo • Specs and Core & Option HTML were supplied • 4 Days development • Clear to all • Reports • Simple list – Volumes & Dollars (core & option) • Delta – Change since yesterday (core & option) • Complex Delta – Changes of averages • 3-D Graphs • Pies with drill downs William (Bill) Myers
Exclusions • Power not demonstrated • Combined databases • Reporting Cubes • Scheduling & Mailing • Super-user interface William (Bill) Myers
Risk Mitigation • End-User reporting • Normal recommendation • Risks • Mitigation for average user • Super-users William (Bill) Myers
Normal Reporting Recommendation • Reporting is simple, use… • MS Access • Excel • Pivot Tables • WebFocus • Crystal Reports • Etc • Training • Help • Manuals • Limited classes William (Bill) Myers
Risks • Complexity • Database structure • Queries • All tests against production databases • Overload servers & network • Over-reporting • Double counting data • Under-reporting • Not including data William (Bill) Myers
Mitigation • Target the skill sets • Developers • Handle complexity • Insure accuracy • Insure efficiency • Identify possible options • Set up “Core & Option” reports • End Users • Decide on core & options during development • Test during development • Understand the results William (Bill) Myers
Regular File Structure - WebFocus William (Bill) Myers
Core & Option Structure - WebFocus • Build JavaScrips • Options & Template • Options – SQL database • Template & Fields – text file • Hidden Fields fairly static William (Bill) Myers
File Naming Standards - WebFocus • Application prefix + Name + Suffix • Drilldown can be called from many reports • Name is first report written • Program field names – UpperLower_Case William (Bill) Myers
Development Steps • Build an original report • Identify the CORE • Use any BY statements for a sample set of options • Add options list to database • Write Pre-Load ( fex ) • Add filters now or later • Write web page ( htm ) • Add filters now or later • Add &sort1 to original report • You can add these front ends to existing reports William (Bill) Myers
Option Files • Common to all reports • INCLUDE files (4) • DATA files - static (2) • DATA file – field list unique to report (1) • Structure in handout – you add fields in database • Unique to each report • HTML web page • Left side (options) standard except report title in heading • Right side (filters) unique for each report • Listed in supplemental handout William (Bill) Myers
Option Files (list) • Pre-Load (scr_status_h.fex ) • opt_page_common.fex • OptionTbls.sql • opt_hid.dat • opt_mng.dat • Web Page (scr_status.htm) • Sample.htm ( copy JavaScript and certain sections of HTML) • !IBI.FIL.OPT_MNG; • !IBI.FIL.OPTJ_CLR; • !IBI.FIL.OPTJ_BOX; • !IBI.FIL.OPT_HIDN; • Report (scr_status .fex ) • &sort1 • opt_parent_drilldown.fex • Drilldown (scr_status_dr1.fex ) • opt_drill_headings.fex • opt_drill_where .fex • &wqlist William (Bill) Myers
Pre-Load (scr_status_h.fex ) -SET &ECHO=OFF; -* ********* Set the report program name ************* -SET &Rpt_Pgm = ‘scr_status’; -* ********* Set default date **************** -SET &riskdate = EDIT(&MDYY,'99/99/9999'); -SET &startmo = EDIT(&MDYY,'99'); -SET &startyr = EDIT(&MDYY,'$$$$9999'); -RUN -* ********* Add standard javascript and html code **************** -INCLUDE opt_page_common -RUN -* ********* Open web page **************** -HTMLFORM scr_status William (Bill) Myers
Option & Filter Web Page See summit_2004_demo1.htm in references Amper Variables from Pre-Load fex Standard Option Files HOLD File from Pre-Load fex William (Bill) Myers
Web Page – Java Script section William (Bill) Myers
JavaScript - Static William (Bill) Myers
JavaScript - Dynamic William (Bill) Myers
Web Page – HTML Check Boxes William (Bill) Myers
Hidden HTML Variable List William (Bill) Myers
Option & Filter – HTML section <body background="/images/Gray_Textured1152.gif" bgcolor="#FFFFFF" text="#000080" link="#0000FF" onload="reloadSort('summit_2004_demo');"> ------------------------------------------------------------------------ <td align=center width="45%" VALIGN="top"> <table cellpadding=1 cellspacing=1 border=0> !IBI.FIL.OPTJ_BOX; </table> </td> ------------------------------------------------------------------------ <td> <p align="left"> <input type="button" value="Submit" name="bttn_submit" style="font- weight: bold" onclick="javascript:presubmit(this.form);"></P> </td> ------------------------------------------------------------------------ </table> <input type='hidden' name='IBIAPP_app' value=""> <input type='hidden' name='IBIF_ex' value="summit_2004_demo"> !IBI.FIL.OPT_HIDN; </FORM> William (Bill) Myers
Report ( fex ) DEFINE FILE TRADES Cost/P12.2CB = VOLUME * Price; Value/P12.2 = VOLUME * STRIKE_PRICE; Net/P12.2 = Value - Cost; END TABLE FILE TRADES SUM VOLUME AS 'Volume' Cost Value &sort1 -* ***** add other BY statements here ***** END William (Bill) Myers
Report with Drilldown ( fex ) TABLE FILE TRADES SUM VOLUME AS 'Volume' Cost Value &sort1 ON TABLE COLUMN-TOTAL VOLUME Cost Value ON TABLE SET ONLINE-FMT &frmt ON TABLE SET STYLE * UNITS=IN, PAGESIZE='Letter', LEFTMARGIN=0.50, RIGHTMARGIN=0.50, TOPMARGIN=0.50, BOTTOMMARGIN=0.50, SQUEEZE=ON, ORIENTATION=PORTRAIT, $ TYPE=REPORT, GRID=OFF, FONT='TIMES NEW ROMAN', SIZE=10, COLOR=BLACK, BACKCOLOR=NONE, STYLE=NORMAL, $ -SET &optdrillfile = 'summit_2004_demo_dr1'; -SET &coredrillfile = 'summit_2004_demo_dr1'; -INCLUDE opt_parent_drilldown.fex ENDSTYLE END William (Bill) Myers
Drilldown ( fex ) TABLE FILE TRADES PRINT * Cost Value Net HEADING "Deals supporting Summary" " " -INCLUDE opt_drill_headings.fex -* ***** wqlist = field values to exclude surrounding quote marks **** -SET &wqlist='''PRODYEAR'' '' '' ''PRODMONTH'' '' '''; -INCLUDE opt_drill_where.fex END William (Bill) Myers
What is Agile Development? • Set of policies and conventions • Controls risk • Puts project into safety zone • Agile Methodologies • Changing environments • Philosophies • Products, Personal relationships, Timing, Documentation • Methods • Approach & Principles • Project management • Programming – low level practices • Traditional Methodologies • Rigid, knownenvironments • Static processes • Structured Methods • Waterfall project management & clones William (Bill) Myers
Agile Philosophieshttp://www.agilealliance.org • Agile Manifesto • Individuals and interactions • over processes and tools • Working software • over comprehensive documentation • Customer collaboration • over contract negotiation • Responding to change • over following a plan Quote from consortium: “While there is value in the items on the right (sub-topics above), we value the items on the left (major topics) more”. William (Bill) Myers
General Agile Principles • Deliver something useful to customer • Nothing counts until you deliver software • Deliver frequently • Four to eight weeks • Encourage collaboration • “Active customer involvement is imperative!” – find a champion • Daily meetings – very short • Provide technical excellence • Rely on the skills of your people • Do the simplest thing possible • Balance flexibility and structure • Self-correcting teams • Don’t let people suffer • Install when business needs it & technically feasible WebFocus is an Agile product William (Bill) Myers
Adaptability Scale RememberSarbanes-Oxley William (Bill) Myers
Project Management Styles • Command & Control • Defined process • Plan what you expect – make predictions • Enforce the predictions • “Change Control” • to manage change • Leadership – Collaboration • Empirical process • Start with a plan • Change plan frequently • Inspection & Adaptation • To control change William (Bill) Myers
Waterfall Methodsand clones • Process • Sequential • Analysis, design, construct, test, implement • Rigid • Paper intensive • Good with 1960’s mainframes with cards • When Useful • Known processes • Hardware & vendor software upgrades • Little creativity required William (Bill) Myers
Many Agile Methods • What methodology to use ? • Crystal & Crystal Light( helps with decision ) • Project management • Scrum ( broadest, variable end-point ) • DSDM Model ( construction oriented ) • Lean Development (domain, 80/20 approach ) • Feature-Driven Development - FDD (most structured) • Adaptive • Extreme Programming – XP • Programming oriented • Extreme Programming - XP • Customer Stories, programs, working conditions • Agile reporting ( core & option ) William (Bill) Myers
Agile Methodologies • Agile Software Development Ecosystems • Reference book & web site • by Jim Highsmith • http://www.jimhighsmith.com • Tom DeMarco: • Agility: 1 • everything else: 0 • Numerous books • Highlights only William (Bill) Myers
Observations - Agile Conference • Easy to go wrong • Mis-interpretation, mis-implementation, missed point • No silver bullet • One size does not fit all • Beware too much documentation • Offload legal requirements from developers • Always “on time, on scope, on budget” • Leads to mediocrity ( no risks taken ) • Cultural change • from - military Command & Control • to – cooperative Leadership & Collaboration • Productivity leaps • 77 function points / month when industry average 2 pts / mo • WebFocus fits agile development very well William (Bill) Myers
Reasons for Failure • One Size Methodology Fits All • Intolerant Methodology • Embellished • Do frivolous tasks • Ignore necessary tasks • Heavy • Untried • Tried Once • Limited applicability • Champion • Failure to Tune • Distractions • Dates can’t be met William (Bill) Myers
Crystal Methodology – Theory ( NOT RELATED to Crystal Reporting ) • Self-adapting "shrink-to-fit," software development methodologies • Different set of policies & conventions for each project • Projects are sensitive to people issues • Crystal is people-centric • other methodologies may be: • process-centric • architecture-centric • tool-centric • Keys • Communication intensive • Masses of paper do not improve communication • Experiment based • Requires feedback loops • Theory of Methodologies William (Bill) Myers
Crystal – Communication • Effectiveness of different methods • Courtesy of Alistair Cockburn • http://alistair.cockburn.us/crystal/articles/cpanfocisd/characterizingpeopleasnonlinear.html People are Non-Linear First-Order Components in Software Development William (Bill) Myers