Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Programming fundamentals for non-techies

Programming fundamentals for non-techies

An overview of some of the tools and techniques used by software developers. Aimed an non-dev or limited dev knowledge audiences.

Steven Ringo

June 20, 2012
Tweet

More Decks by Steven Ringo

Other Decks in Programming

Transcript

  1. /** Hardcore programming action: */ var undefined, xui, simpleExpr =

    /^#?([\w-]+)$/, idExpr = /^#/, tagExpr = /<([\w:]+)/, slice = function (e) { return [].slice.call(e, 0); }; try { var a = slice(document.documentElement.childNodes) [0].nodeType; } catch(e){ slice = function (e) { var ret=[]; for (var i=0; e[i]; i++) ret.push(e[i]); return ret; }; } window.x$ = window.xui = xui = function(q, context) { return new xui.fn.find(q, context); };
  2. Requirements Design Testing Maintenance Implementation Requirements Design Testing Maintenance Implementation

    Sprint #4 Requirements Design Testing Maintenance Implementation Sprint #3 Requirements Design Testing Maintenance Implementation Sprint #2 Sprint #1 time Short timeboxes ~ 2-4w
  3. Biggest challenge of software engineering is managing the mismatch between

    what the stakeholders want and what the developers can build
  4. Product perspective Product functions User characteristics Constraints, assumptions and dependencies

    Specific requirements External interface requirements Functional requirements Performance requirements Design constraints Logical database requirement Software system attributes Other requirements O M G !
  5. Few sentences in a user’s everyday language What a user

    does to achieve something. Define functions a system should provide Captures the 'who', 'what' and 'why' Simple, concise Small paper cards/post-it notes
  6. As a visitor to the Acme online store I wish

    to see the top 10 new Acmoids, listed by price, with large photos
  7. Repository for all programming assets Source of truth Shared among

    developers Conflict resolution Co-ordinating teams Bug fixing process Time machine in a box
  8. Repository for all project tasks Source of truth Developers, managers

    and stakeholders Logging of effort Co-ordinating teams Bug fixing process Links to source control