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.

D02b5e0b9a348fa8d9bd2cac025eead3?s=128

Steven Ringo

June 20, 2012
Tweet

Transcript

  1. Programming fundamentals for non-techies Tuesday, June 19 2012 Steven Ringo

    | stevenringo | steven@dynamicclarity.com
  2. None
  3. None
  4. None
  5. None
  6. None
  7. /** 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); };
  8. Science meets art Components Getting real Management Life-cycle

  9. Eggs Larvae Pupa Emergence Butterfly Requirements Design Implementation Testing Maintenance

    Phases
  10. Requirements Design Implementation Testing Maintenance Waterfall

  11. Requirements Design Testing Maintenance Implementation Iterative / Agile Requirements Design

    Testing Maintenance Implementation
  12. 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
  13. COWBOY coding

  14. Biggest challenge of software engineering is managing the mismatch between

    what the stakeholders want and what the developers can build
  15. None
  16. The recipe is different. Every. single. time.

  17. Requirements

  18. 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 !
  19. User stories

  20. 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
  21. As a visitor to the Acme online store I wish

    to see the top 10 new Acmoids, listed by price, with large photos
  22. None
  23. Fake it ‘til you make it

  24. Fake it ‘til you make it Wireframes → Prototypes →

    Product
  25. None
  26. None
  27. None
  28. Architecture

  29. Server: “back end” Internet Client: “Front end”

  30. Server, or “back end”

  31. Operating System Web Server Database Server Application Server

  32. Operating System Web Server Database Server Application Server

  33. Server: “back end” Internet Client: “Front end”

  34. Client, or “front end”

  35. None
  36. Information Design Interactivity

  37. Interactivity Information Design

  38. Keeping code safe

  39. Repository for all programming assets Source of truth Shared among

    developers Conflict resolution Co-ordinating teams Bug fixing process Time machine in a box
  40. None
  41. Project tracking

  42. 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
  43. None
  44. None
  45. The cloud computing and storage as a service to consumers

  46. Cheap Elastic Flexible Secure Location Convenient The cloud

  47. Expensive Dependent Regulatory Unmanaged Location The cloud

  48. None
  49. Focus

  50. None
  51. Dynamic Clarity Thank you stevenringo | steven@dynamicclarity.com