610 likes | 624 Views
This session discusses the business issues faced in IT, lessons learned from real-world experiences, managing IT projects, software development methodologies, and other relevant topics.
E N D
INFM 603: Session 10The IT Business – Software and Business Issues Paul Jacobs The iSchool University of Maryland Thursday, Nov. 10, 2016 This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United StatesSee http://creativecommons.org/licenses/by-nc-sa/3.0/us/ for details
Today’s Topics • Overview of IT Business Issues (as They Relate to What We’ve Covered) • Some Lessons from the “Real World” • Managing IT Projects • Software development and engineering methodologies • Other issues (project management and people)
Overview of Business Issues • Technology Only “Works” When It is Accepted • Has to meet business and user needs, get “buy in” • Has to be affordable, doable, on time • People have to be able and willing to use it • “IT and Organizational Context” - The Information Ecology: Business goals, funding, politics, culture, technology, human resources Context Overview of Business Issues The Real World Software Development Content Users Audience, tasks, user behavior, experience, vocabulary Data types, content objects, metadata, volume, existing structure
IT in the “Real World” What is the Real World? Anywhere where our work affects profits, social justice, public service, organizational efficiency, … Companies, universities, nonprofits, government services, … Almost anywhere but here! (Not class, not research) What’s the same (between the Real World and our in-class “textbook” experience) Fundamentals (concepts, web technology) Most of the technologies (HTML/CSS, scripting, CMS, …) What’s different? Overview of Business Issues The Real World Software Development
“In the 21st century, setting up a Web site where people can go on and buy something is not that complicated” Sen. Marco Rubio, Republican of Florida Fox News Sunday, Oct. 20, 2013 New York Times, Oct. 21 Overview of Business Issues The Real World Software Development
Overview of Business Issues The Real World Software Development
IT in the “Real World” (cont’d) What is different? Organizational issues (esp., but not limited, to politics) Money (sometimes it’s there, sometimes not) Timelines and time pressures Diversity of backgrounds, views, ages, etc. (with respect to technology) Scale and stakes (e.g. billions of users, up to $1bs) More emphasis on getting it done, often less on novelty/leading edge Overview of Business Issues The Real World Software Development
How Does This Affect IT? Organizations Remember “information ecology” – content, users, context Web sites reflect organizational strategy, culture, and values Stakeholders need to be identified, included Approval process (e.g. business case, ROI) Legacy systems, predetermined choices Overview of Business Issues The Real World Software Development
An eBay Case Study Overview of Business Issues The Real World Software Development
Time & Money Most organizations are highly budget-driven Skilled labor (especially IT!) is a precious commodity That said, people are sometimes easier to come by than capital (“fixed” cost vs. incremental) Usually projects involve a mix of vendors, consultants, staff, but mix can be skewed (by budget, politics) “Twice as long and twice as much” mantra – little reward for optimism in the real world Overview of Business Issues The Real World Software Development
Working with Different Groups Explaining technical concepts, benefits to non-technical people Embracing marketing Tolerating “bean counting” Managing the “FUD” factor (Fear, Uncertainty, Doubt) Overview of Business Issues The Real World Software Development
Industry standards • Motivation for standards • Interoperability • Extend system lifecycle • Focus innovation • Legal compliance (e.g., ADA) • The dark side of standards • May be limiting • Not always “standard”
Build vs. buy decisions • Find the best way to meet requirements • Consider time and cost • “Total cost of operations” • Fit with requirements • Where does this usually lead us? • What parts are most likely to be “custom”? Overview of Business Issues The Real World Software Development
Simple Requirements Matrix Overview of Business Issues The Real World Software Development
Business Issues (What Goes Wrong) We’re late, and we’re over budget – why? Overly optimistic projections Done in by the vendor/consultant sales team Client doesn’t supply needed input Can’t find the right people (“mythical person month”) Nothing seems to work – why? Other vendor/people issues It looks great to me, but the client doesn’t agree Requirements creep Management changes Business changes Overview of Business Issues The Real World Software Development
Application Integration “Typical” Business Problems Manage a fundraiser or other campaign, make sales force more productive Keep track of projects and budgets Hire, manage and pay workers Get goods into inventory or on shelves “just in time” Streamline purchasing “Typical” Data Sources Customer mailing list Org chart Payroll data Inventory data Overview of Business Issues The Real World Software Development
Application Integration (cont’d) “Typical” Existing Resources Company web site or intranet Vendor/partner web service, web site E-mail system or other “Real World” Technology Projects Can be Mash-Ups Buy software or Saas from major provider Develop some custom features (e.g. business rules, page layouts, etc.) Integrate with existing data and infrastructure Overview of Business Issues The Real World Software Development
Overview of Business Issues The Real World Software Development
Cloud Example: SalesForce Overview of Business Issues The Real World Software Development
Cloud Example: SalesForce Overview of Business Issues The Real World Software Development
The IT Business Software and systems development
The System Life Cycle • Systems/Requirements Analysis • How do we know what kind of system to build? • User-centered Design • How do we discern and satisfy user needs? • Implementation • How do we build it? • Management • How do we use it? • Software/Systems Engineering Methodologies Aim for Predictable, Repeatable, Principled Results Overview of Business Issues The Real World Software Development
Prehistoric Software Development • Heroic age of software development: • Small teams of programming demigods wrestle with many-limbed chaos to bring project to success… sooner or later … maybe … • Kind of fun for programmers ... • … not so fun for project stakeholders! Overview of Business Issues The Real World Software Development
Next Came …The Waterfall Model • Key insight: invest in the design stage • An hour of design can save a week of debugging! • Share across organizations • Control results • Three key documents • Requirements • Specifies what the software is supposed to do • Specification • Specifies the design of the software • Test plan • Specifies how you will know that it did it Overview of Business Issues The Real World Software Development
The Waterfall Model Requirements Specification Software Overview of Business Issues The Real World Software Development Test Plan
The Waterfall Model • Why a waterfall? • Theoretically, steady progress toward a goal • Always drawn as a series of cascades, because there are breaks (presumably, document and review) • Strengths • Formalizes what may have been informal • Enforces accountability • Can detect issues before it’s too late (e.g. building the wrong thing, failing to test, etc.) • Issues • Perceived as slow and bureaucratic • Little room for adjustments (e.g. changes to requirements) • Design tradeoffs, features aren’t always known from the onset Overview of Business Issues The Real World Software Development
Coding Standards Examples • Use set and get methods (initialize variables) • Limits unexpected “side effects” • Check entry conditions in each method • Flags things as soon as they go wrong • Write modular code • Lots of method calls means lots of checks Overview of Business Issues The Real World Software Development
Version (Revision) Control • Supports asynchronous revision • Checkout/Checkin model • Good at detecting incompatible edits • Not able to detect incompatible code • Revision Tree • Named versions • Described versions • Standard tools are available • SVN (centralized), git (distributed) • Key idea: store only the changes Overview of Business Issues The Real World Software Development
Types of “Testing” • Design walkthrough • Does the design meet the requirements? • Code walkthrough • Does the code implement the requirements? • Functional testing • Does the code do what you intended? • Usability testing • Does it do what the user needs done? Overview of Business Issues The Real World Software Development
Functional Testing • Unit testing • Components separately • Integration testing • Subsystems • System testing • Complete system (with some coverage measure) • Can also include “stress testing” (does it scale, performance) • Regression testing • Invariant output from invariant input Overview of Business Issues The Real World Software Development
Types of Errors • Syntax errors • Detected at compile time • Run time exceptions • Cause system-detected failures at run time • Logic errors • Cause unanticipated behavior (detected by you!) • Design errors • Fail to meet the need (detected by stakeholders) Overview of Business Issues The Real World Software Development
Bug (Defect) Tracking • Bugs are alleged errors • System-level or component level • Development or deployment • True bugs or misuse/misunderstanding • Bug tracking is needed • Particularly on large projects • Standard tools are available • e.g., Bugzilla Overview of Business Issues The Real World Software Development
Debugging is harder than coding! “Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it” – Brian W. Kernighan and P. J. Plauger, The Elements of Programming Overview of Business Issues The Real World Software Development
The Rapid Prototyping Model • Goal: explore requirements • Without building the complete product • Start with part of the functionality • That will (hopefully) yield significant insight • Build a prototype • Focus on core functionality, not in efficiency • Use the prototype to refine the requirements • Repeat the process, expanding functionality Overview of Business Issues The Real World Software Development
Objectives of Rapid Prototyping • Quality • Build systems that satisfy the real requirements by focusing on requirements discovery • Affordability • Minimize development costs by building the right thing the first time • Schedule • Minimize schedule risk by reducing the chance of requirements discovery during coding Overview of Business Issues The Real World Software Development
Characteristics of Good Prototypes • Easily built (about a week’s work) • Requires powerful prototyping tools • Intentionally incomplete • Insightful • Basis for gaining experience • Well-chosen focus (DON’T built it all at once!) • Easily modified • Facilitates incremental exploration Overview of Business Issues The Real World Software Development
Prototype Demonstration • Choose a scenario based on the task • Develop a one-hour script • Focus on newly implemented requirements • See if it behaves as desired • The user’s view of correctness • Solicit suggestions for additional capabilities • And capabilities that should be removed Overview of Business Issues The Real World Software Development
The Spiral Model • Build what you think you need • Perhaps using the waterfall model • Get a few users to help you debug it • First an “alpha” release, then a “beta” release • Release it as a product (version 1.0) • Make small changes as needed (1.1, 1.2, ….) • Save big changes for a major new release • Often based on a total redesign (2.0, 3.0, …) Overview of Business Issues The Real World Software Development
The Spiral Model 2.3 1.2 0.5 1.1 2.2 Overview of Business Issues The Real World Software Development 1.0 2.1 2.0 3.0
Iterative and Incremental Development Overview of Business Issues The Real World Software Development
Unpleasant Realities • The waterfall model doesn’t work well • Requirements usually incomplete or incorrect • The spiral model is expensive • Rule of thumb: 3 iterations to get it right • Redesign leads to recoding and retesting • Other models (incremental, rapid prototyping, rapid application development) have advantages but are incomplete Overview of Business Issues The Real World Software Development
The Changing World • Since the 1960s, the “Backdrop” Has Changed • Large government projects no longer set the standard • Competition is rampant, but so is sharing • More software tools are available • Programming Has Changed • Relatively easy to get something that looks real • Environments are much faster, more dynamic (from punched cards, mainframes to virtualization) • “Smart kids” program • The Result of Lessons Learned and the Changing Nature of Programming Is…. Overview of Business Issues The Real World Software Development
Agile Methods • Prototypes that are “built to last” • Planned incremental development • For functionality, not just requirements elicitation • Privileges time and cost • Functionality becomes the variable Overview of Business Issues The Real World Software Development
Agile Methods Specification Release Implementation Overview of Business Issues The Real World Software Development Requirements Establishment Experience
SCRUM Overview of Business Issues The Real World Software Development
Basic SCRUM Cycle • The sprint: • Basic unit of development • Fixed duration (typically one month) • End target is a working system (not a prototype) • Sprint planning meeting • Discussion between product owner and development team on what can be accomplished in the sprint • Sprint goals are owned by the development team Overview of Business Issues The Real World Software Development
SCRUM: Key Concepts • Roles: • Product owner: voice of the customer • Development team: small team software engineers • Scrum master: primary role as facilitator • User stories: short non-technical description of desired user functionality • “As a user, I want to be able to search for customers by their first and last names” • “As a site administrator, I should be able to subscribe multiple people to the mailing list at once” Overview of Business Issues The Real World Software Development
Standup Meetings • Short, periodic status meetings(often daily) • Three questions: • What have you been working on (since the last standup)? • What are you planning to work on next? • Any blockers? Overview of Business Issues The Real World Software Development
Advantages of SCRUM • Fundamentally iterative, recognizes that requirements change • Development team in charge of the sprint backlog • Favors self-organization rather than top-down control • Reprioritize in response to changing requirements and progress • Time-limited sprints ensure periodic delivery of new product increments • Allows opportunities to receive user feedback, change directions, etc. • Buzzword = velocity Overview of Business Issues The Real World Software Development