670 likes | 898 Views
SOLVING THE REQUIREMENTS PROBLEM IN LEGACY MODERNIZATION How do we manage when the requirements are wrong or incomplete?. May 7, 2015,11:00 AM EST. Don Estes President Don Estes Consulting, Inc. donestes@donestes.com www.donestes.com. Hosted by: Jessica Dahbour ITMPI
E N D
SOLVING THE REQUIREMENTS PROBLEM IN LEGACY MODERNIZATIONHow do we manage when the requirements are wrong or incomplete? May 7, 2015,11:00 AM EST
Don EstesPresidentDon Estes Consulting, Inc. donestes@donestes.comwww.donestes.com Hosted by: Jessica Dahbour ITMPI Jessica_Dahbour@compaid.com
About Presenter’s Firm Don Estes has been specializing in modernizing legacy applications since 1990, starting when “modernization” meant converting from assembler to COBOL, through 4GLs to object oriented and relational paradigms. He is now actively involved with applying semantic web technologies as the modernization paradigm of the future, using OWL/SWRL declarative modeling and RDF data access. A graduate of MIT and the University of Texas, Don is a member of the Cutter Consortium and a frequent contributor to various IT publications.
CAI Achieves IT Operational Excellence www.compaid.com
PDU Credits Available for this Webinar • The PMI has approved this webinar with PDUs • You will be eligible to receive 1.0 PDU credits • Your PDU email will be sent to you
Online Webinar RecordingsNOW AVAILABLE • Anytime Access • Hundreds of Topics Visit: www.ITMPI.org/library
Enjoy the benefits of ITMPI MembershipJOIN TODAY! • UNLIMITED Free Webinar Recordings • UNLIMITED Free PDU Credits • Hundreds of Topics Visit: www.ITMPI.org/subscribe
Agenda • Introduction • Definitions • Business Rule Invariance Across Modernization • Business Rule extraction • Summary
Introduction “The hardest part of the software task is arriving at a complete and consistent specification, and much of the essence of building a program is in fact the debugging of the specification.” • Fred Brooks, author ofThe Mythical Man-Month,in a 1987 essay 10
Introduction • Symptom: fully tested systems show significant errors when placed into production • This was the genesis of the NY Fed project • Existing testing methodologies are fundamentally flawed when applied to application modernization • When you test against flawed requirements, you can pass the tests but still be wrong
Introduction • NY Fed project – 2.3 million lines of IMS COBOL rewritten into Java and Oracle • A pure technology refresh with “like for like” functionality • 4 sources of specifications: • Group of code readers updating the documentation • Business analysts • Automated business rule extraction from legacy source codes • Our team: “comparative testing”
Introduction • Our team’s goal was 100% testcoverage of the legacy code • In the process, correct errors and omissions in the specifications (“dynamic business rule extraction”) • Test cases would be created by the testing group using the same information used to rebuild the system • Result, they got it right about 50% of the time • Bottom line: even with the best analytical information, your specs will be wrong or incomplete by ~30-50%
Introduction • Mostly applies to large to verylarge scale projects (butsometimes with smaller too) • “Very large” defined as > 10,000,000 lines of COBOL (or 5,000,000 lines of Java) • “Large” defined as 1,000,000-10,000,000 lines of COBOL or equivalent • “Moderate” defined as 100,000-1,000,000 lines • “Small” defined as < 100,000 lines • Our webinar focuses on large to very large projects
Introduction • Solving the requirements problem involves some uncomfortable truths: • Technically “successful” projects can fail or overrun budgets due to insufficient or defective specifications • The users can review and sign off on the delivered system, but does it do what it was supposed to do? • By your tests? Yes • By the business? (They may not be able to tell) • Errors and omissions may not be recognized immediately but come to light over time • Not reasonable to expect the business to articulate all the complex criteria to thoroughly vet an application
Introduction • It’s not that we are building the new system incorrectly, we are building it and testing it against flawed plans. • This is the source of the functional errors and shortfalls in application modernization • And of the cost overruns and late deliveries • And of the occasional project failures
Introduction • This is the requirements problem in legacy modernization: • The requirements are incomplete and in some cases just plain wrong. • Today, we will present a practical solution to this problem.
Introduction • Agile & waterfall methodologies are based on • Deriving the requirements, • Then building the system, and • Testing the system against the requirements • There is a fundamental flaw in both methodologies • People can’t tell you what they don’t know • No one, including the original programmers, know everything in these old systems • Or in new systems either!
Introduction • Modernization is more difficult than greenfield development • Primum non nocere - “First do no harm” • The business is dependent on the current processing of business transactions • Especially true in highly regulated industries • We must have all the rules and have them accurately or the results of processing will be different
Introduction • So how do we manage when the requirements themselves are incomplete or wrong? • How do we cope when the SME’s cannot recognize a defect in all cases? • Detecting the defect is the essence of the solution • We break down the problem until it is manageable
Introduction • If a functional requirement is missing or in error, it will be immediately evident • This is, relatively speaking, straightforward. • When it breaks or found to be missing, we fix it. • If a business rule is missing or in error, the defect may not be evident • Detecting the error can be a significant problem • It doesn’t usually “break” – some aspect of the output will be wrong indicating a defect, but not obvious • Detecting the defect is the essence of the solution
Introduction • Solving the requirements problem means debugging the specification,per Fred Brooks • Debug the specification before we build the software rather than after we have built it • Debugging the specification will mean discovering the errors and omissions • In the functional requirements • In the business rules • Significantly cheaper, quicker and less risky
Introduction Or here? • ~200:1 Ratio – Defects fixed in production vs. requirements and design Do you want to find defects here? 24 24 Michael Lundblad and Moshe Cohen, Software Quality Optimization: Balancing Business Transformation And Risk, IBM, March 2009. 24 24
Definitions • To solve the requirements problem, we must speak precisely • Specifications ≠ requirements ≠ business rules • Too often we speak as if terms were interchangeable • Definition: {Specifications} = {requirements} U {business rules}
Definitions • Recognize the differences between requirements and business rules • Requirements are what we need to do • Business rules are how we are supposed to do it • Manage the “what” differently from the “how” • Now, we are free to manage requirements one way and business rules another • Managing requirements will not change much from your current procedures • Managing business rules will change considerably
Definitions • Business rules must be proven correct by executionand proven to be completewith code coverage analysis • Definition: complete = all cases covered • Usually interpreted as all logical pathways covered • Tedious but doable within a reasonable budget • Costs more in beginning, saves more overall
Definitions: Non-functional Vs. Functional Requirements • Non-functional requirements have no relationship with business rules • Expressed as "system shall be<requirement>" • Technical characteristics: performance, high availability, auditability, backup, etc. • Technical standards: code quality, user interface, etc. • http://en.wikipedia.org/wiki/Non-functional_requirement
Definitions: Non-functional Vs. Functional Requirements • Functional requirements do relate to business rules • Expressed as "system shall do <requirement>" • Functions may be queries or updates to persistent data • The “what” also requires the “how”
Definitions: Conceptual Vs. Transactional Business Rules • Conceptual business rules define what is: • They define the semantics of the transactional business rules • Define semantics of elements: “account” entity, “primary” attribute of account, and “balance” attribute of account, signed numeric attribute of “balance”, etc. • Define relationship: “each primary account will contain a balance”, etc. • Transactional business rules control change: • “The balance in the primary account must never go below zero”
Definitions • Definition: conceptual business rule • Defines terms – business vocabulary or semantics, materialized in a data model • Defines facts – association among two or more terms • A derived fact is created by an inference or a mathematical calculation • aka “structural assertion” by Business Rules Group • Query functions conceptual business rules • Static state – no data is changing with functional queries • Optimizing work process will frequently change the queries and when data updates are performed – but will not change the business rules controlling the updates! • {Conceptual business rules} = Ontology
Definitions • Definition: transactional business rule • … a business rule expresses specific constraints on the creation, updating, and removal of persistent data in an information system. • aka “action assertion” by Business Rules Group • Statement that concerns some dynamic aspect of the business. It specifies constraints on the results that actions can produce. • Updates conceptual & transactional rules • Updates still follow the same rules as the legacy system – unless the business rules are changing while modernizing • Updates are the greatest risk of damage from a defect – where changes are allowed and results persisted to disk • Instead of a single point defect, persisted incorrect results can cascade and trigger other defective results
Definitions: Example Requirements • Functional requirements: • I want to be able to reprint a mailing label for an account without updating the mailing date in the account. • I must request a mailing label from a workstation that has the ability to print it. • I cannot request a mailing label if the account is not in a state that allows a mailing label to be printed.
Definitions: Related Business Rules • Related transactional business rules: • Mailing labels can only be requested for accounts which exist, are active, have a status indicating that some processing has occurred against them, and do not have a status indicating that the currently due mailing has taken place. • The date, identity and location of the requester of a mailing label must be recorded. • The update of the account record and the information updated must be recorded. • Transactional rules use conceptual rules
Business Rule Invariance • In physics we use an invariance principle to simplify complex problems • So, we can transform • Into • Makes life a lot easier!
Business Rule Invariance • The same principle applies to modernization • No change in business rules = simplification • This makes sense: if the business is not changing, business rules should not change • Conceptual business rules • Transactional business rules
Business Rule Invariance • Work flow, new queries, user interface, everything can change when modernizing • Queries (including reports and analytics) may change as much as desired • Except – the results of processing cannot change • Unchanged queries must return the same results • The same inputs to an update must produce the same results in the persistent data store
Business Rule Invariance • Requirements can change as desired • Business processes can be optimized to create value • Requirements can be informed by legacy artifacts, but are not ruled by legacy
Business Rule Invariance • We say that the business rules are invariant across a modernization • If business rules are changing, then you have a greenfieldproject to replace, not modernize, a legacy application • If requirements and business rules are being expanded • You have a hybrid modernization & greenfield project
Business Rule Invariance • Hybrid projects are a reality • Business rule changes may have been waiting for a long time (possibly years) to be implemented • New functionality and new business rules are also waiting (these can be accommodated) • Pressure to do it all at once can be overwhelming • Reality is that doing it all at once will take longer and cost more • Re-read The Mythical Man-Month
Business Rule Invariance • The invariance rule enables risk management • We can use the legacy system as the standard of truth • If invariance is violated, you have no standard of truth • Refer risk decisions to business • Modernization should be low risk • Hybrid and greenfield expose the business to greater risk, which require business decisions
Business Rule Invariance • Invariance allows a 100% complete and correct set of active business rules • All implemented functions will be correct • If you are missing a requirement, you may be missing a function, but what you have will be right
Business Rule Extraction Discovering Business Rules Without Errors Or Omissions
Business Rule Extraction • Business rules are the core of a modernization – get them right and everything else will fall into place • Get them wrong – and nothing will be dependable • Unfortunately, easier said than done Requirements User Interface Data Analytics Business Rules - Updates Queries Reports Work Flow
Business Rule Extraction • We assert that - • A 100% complete and correct set of the active business rules cannot be elicited via traditional business analysis or static business rule extraction tools, either alone or in combination. • Complexity and ambiguities will prevent reaching 100%
Business Rule Extraction • 3 stages to get 100% of the rules: • Stage 1: standard business analysis • Stage 2: static business rule analysis (analyzing inactive source code) • Stage 3: dynamic business rule analysis (object code is executing) • Think about that – • Stages 1 and 2 are limited by ambiguities • Stage 3 is based on executing code comparing new against old – no ambiguities!
Business Rule Extraction – Stage 1 • A classic diminishing returns curve • Nobody analyzes until they get to 100% • You are lucky to get 70% (and some of those wrong) % of active business rules extracted People give up somewhere around 50-70% to avoid analysis paralysis Effort