SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
Software Development Forum 2012
Programming for Business: Real People, Real World
Marshal Yung
Software Engineering & Architecture
Background
Me, Myself, and Software
Background
●   1999
    ●   C++ MFC, integration API, PKI, CRM, ERP, etc.
●   2004
    ●   Software engineering and project
        management
    ●   Web services, open source, e-commerce
    ●   Corporate trainer
        –   Internet technologies
        –   LAMP platform
Background
●   2008
    ●   Software architecture design and build
●   2010
    ●   PAP for Internet Technology (Tunku Abdul Rahman
        College)
    ●   Platform & framework design and build
●   Now
    ●   Independent software project manager
    ●   Web OS
    ●   Coding as a hobby, passion in software engineering &
        architecture
Overview
Overview
●   Software Functionality
    ●   Building software for businesses
    ●   Functionalities that people really want
●   Program's Significance in Business
    ●   What goes in and what doesn't?
    ●   Users and UX
●   Costs vs. Returns
    ●   Software estimations and revenue models
    ●   Real People, Real World
Software Functionality
Software Functionality
●   Why do we build software?
    ●   To solve a certain problem
           ●   i.e. Business analytics, computation logics, etc.
    ●   To make life easier (for some)
    ●   To automate repetitive (mundane) tasks
    ●   To get more tasks done in shorter time
    ●   Because we're paid to do it
Software Functionality
●   Defining the software
    ●   Functional requirements
        –   Intricate details of software operations (functionality)
    ●   Non-functional requirements
        –   Compliance, business goals, standards, etc.
●   Quality software:
    ●   Verifiable with functional requirements
    ●   Comply with non-functional requirements
Software Functionality
●   Here's the irony
    ●   When programmers build software for
        themselves
        –   It's always minimalistic, usable, quick to deploy,
            and has only the necessary functionalities
    ●   When programmers build software for others
        –   It's always bloated, perplexed, delayed, and has
            many rarely needed functionalities
A Quick Example
An Appointment Scheduler
For Personal Use                                  For Others
Monthly view calendar                             Monthly, daily, weekly view calendars
Scroll by month and year                          Scroll by month and year
Pop-up appointment entry                          Pop-up appointment entry
Support only single calendar                      Support multiple calendars
                                                  Colour coded
Appointment list view (shows date/time and        Appointment list view (shows start-end
appointment name) only for the selected day       date/time, appointment name) sorted by day
                                                  in the week
Complete CRUD operations                          Complete CRUD operations
Simplified recurring events (i.e daily, weekly,   Recurring events (daily, day-weekly,
monthly)                                          weekday-weekly, weekend-weekly, monthly,
                                                  yearly)
                                                  Simple calendar sharing (non-server based)
                                                  Import calendar (i.e. csv, ical, etc.)
E-mail reminder (cron or scheduler based)         E-mail + pop-up reminder (daemon based)
UI concept: minimalistic, uncluttered             UI concept: uncluttered, icons, widgets, etc.
Deployment time: around 4 man-hours               Deployment time: around 8 man-hours
Software Functionality
●   Functionalities for real people, real world
    ●   Meets definition of a quality software
        –   Verified and validated
        –   People already knows what the software does, and they just
            want to get their job done
    ●   Non-bloated software
        –   Keep the good-to-haves for the next release
        –   Remember to KISS!
    ●   Sensible and consistent UI
        –   No surprises
        –   Meets general user expectations
In Retrospect
●   Consider practicality in the real world
    ●   Must-haves vs. good-to-haves
    ●   Agile development methodology
    ●   Evolutionary prototyping and incremental
        development
Finding the Significance of Each Program in the
Business World
“Every program that is created must have a
    purpose; if it does not, it is deleted”

             - Rama-Kandra, The Matrix Revolutions
User Centric Applications
●   Who are your users?
    ●   Business users falls into various types
    ●   Identifiable by business units
    ●   Each business unit have unique requirements
●   Programs that benefit users
    ●   Getting the job done
    ●   Work as expected (rarely exceed expectations)
    ●   User satisfactions
        –   Expectations and perspectives
Use Case Diagram
●   Straight forward communication
    ●   Business people
    ●   End-users
●   For the technical team
    ●   Clearly defines requirements and features
●   For the non-technical team
    ●   Validity of requirements
Use Case Diagram
User Experience (UX)
●   What's UX?
    ●   A personal experience of a user towards a
        system
    ●   Personal experiences including all things from
        aesthetics to usability
    ●   A good personal experience (good UX) gives
        higher rate of acceptance
Programming in the Real World
●   Consider these
    ●   Divide and conquer
    ●   Each program (or function) should do only
        one job, and does it exceptionally well
    ●   Learn from:
        –   GNOME, Apple, Mozilla Project
Costs vs. Returns
Software Estimations
●   Justification of software values
    ●   Based on effort and time spent
    ●   May also include other costs; i.e. hardware
        and other incurred charges
Software Estimations
●   Function point analysis
    ●   Quick and easy way to determine the amount
        of functionalities required
    ●   Does not include costs outside software
        development effort (i.e. Hardware, training,
        etc.)
    ●   Basis of cost per function is based on
        experience from past projects
Software Estimation
●   COCOMO/COCOMO II
    ●   Constructive Cost Model
    ●   Measurement of software costs and durations
    ●   Derived from per-man-month effort and
        expressed in KLOC
    ●   COCOMO II takes more considerations of PM
        attributes and modern software development
        processes (i.e. CMM-I levels)
Revenue Models
●   License based
    ●   Client access license (CAL), per-seat, per-installation
        license, bulk license
    ●   Common for install-based applications
●   Subscription based
    ●   Per user/month, per user/year, bulk subscriptions
    ●   Common in SaaS environment
●   Utility based
    ●   Pay per-use
    ●   Common in SaaS and cloud-computing environment
Software Returns – Real People
●   Maximise values of creative people
    ●   Who are the creative people:
        –   Programmers, designers, engineers
    ●   Understanding creative people:
        –   Creativity cannot be confined
        –   Creative people has to be let loose to explore
        –   Creative ideas come from the wild, not within
            cubicles
Software Returns – Real People
●   Communicating with creative people
    ●   Business people: top-down approach
    ●   Creative/technical people: bottom-up approach
    ●   Requirements should be delivered in the form of
        –   What is needed?
        –   Not how to do it
    ●   Business people lead business domain requirements
    ●   Creative people lead the process of design and build
        of the requirements
Finally...
●   Programming for real people, real world
    ●   Who are your users? They are very important
        (but not always right)
    ●   Let creative people free to explore possibilities
    ●   Business people ensure project direction and
        goals
    ●   SDLC and methodologies are important
    ●   But, let people build software for people
Thank You

  Q&A
Marshal Yung
Software Development Forum 2012
Programming for Business: Real People, Real World

Contenu connexe

En vedette

Presentatie sumoso
Presentatie sumosoPresentatie sumoso
Presentatie sumosoDecofleurs
 
The archived Canadian US Patent Competitive Intelligence Database (2014/5/27)
The archived Canadian US Patent Competitive Intelligence Database (2014/5/27) The archived Canadian US Patent Competitive Intelligence Database (2014/5/27)
The archived Canadian US Patent Competitive Intelligence Database (2014/5/27) Muchiu (Henry) Chang, PhD. Cantab
 
Rio Dialogues Backgrounder
Rio Dialogues BackgrounderRio Dialogues Backgrounder
Rio Dialogues Backgroundermitchelltoomey
 
[오픈소스컨설팅] Business Email How To
[오픈소스컨설팅] Business Email How To[오픈소스컨설팅] Business Email How To
[오픈소스컨설팅] Business Email How ToJi-Woong Choi
 
Belajar membuat blog
Belajar membuat blogBelajar membuat blog
Belajar membuat blogArifin Zaenul
 
Social Marketing Analyse
Social Marketing AnalyseSocial Marketing Analyse
Social Marketing AnalyseSocialOnline
 
The archived Canadian US Patent Competitive Intelligence Database (2015/11/3)
The archived Canadian US Patent Competitive Intelligence Database (2015/11/3) The archived Canadian US Patent Competitive Intelligence Database (2015/11/3)
The archived Canadian US Patent Competitive Intelligence Database (2015/11/3) Muchiu (Henry) Chang, PhD. Cantab
 
The Archived Canadian Patent Competitive Intelligence (Sept. 14, 2010)
The Archived Canadian Patent Competitive Intelligence (Sept. 14, 2010)The Archived Canadian Patent Competitive Intelligence (Sept. 14, 2010)
The Archived Canadian Patent Competitive Intelligence (Sept. 14, 2010)Muchiu (Henry) Chang, PhD. Cantab
 
The archived Canadian US Patent Competitive Intelligence Database (2016/2/2)
The archived Canadian US Patent Competitive Intelligence Database (2016/2/2) The archived Canadian US Patent Competitive Intelligence Database (2016/2/2)
The archived Canadian US Patent Competitive Intelligence Database (2016/2/2) Muchiu (Henry) Chang, PhD. Cantab
 
The archived Canadian US Patent Competitive Intelligence Database (2016/5/24)
The archived Canadian US Patent Competitive Intelligence Database (2016/5/24) The archived Canadian US Patent Competitive Intelligence Database (2016/5/24)
The archived Canadian US Patent Competitive Intelligence Database (2016/5/24) Muchiu (Henry) Chang, PhD. Cantab
 
Map+blue+free+world+map+ppt+powerpoint+background+template
Map+blue+free+world+map+ppt+powerpoint+background+templateMap+blue+free+world+map+ppt+powerpoint+background+template
Map+blue+free+world+map+ppt+powerpoint+background+templatetiny369
 
The archived Canadian US Patent Competitive Intelligence Database (2015/9/8)
The archived Canadian US Patent Competitive Intelligence Database (2015/9/8) The archived Canadian US Patent Competitive Intelligence Database (2015/9/8)
The archived Canadian US Patent Competitive Intelligence Database (2015/9/8) Muchiu (Henry) Chang, PhD. Cantab
 
The archived Canadian US Patent Competitive Intelligence Database (2014/7/8)
The archived Canadian US Patent Competitive Intelligence Database (2014/7/8) The archived Canadian US Patent Competitive Intelligence Database (2014/7/8)
The archived Canadian US Patent Competitive Intelligence Database (2014/7/8) Muchiu (Henry) Chang, PhD. Cantab
 
Intern
InternIntern
InternAwake9
 
The archived Canadian US Patent Competitive Intelligence Database (2016/6/7)
The archived Canadian US Patent Competitive Intelligence Database (2016/6/7) The archived Canadian US Patent Competitive Intelligence Database (2016/6/7)
The archived Canadian US Patent Competitive Intelligence Database (2016/6/7) Muchiu (Henry) Chang, PhD. Cantab
 

En vedette (17)

Presentatie sumoso
Presentatie sumosoPresentatie sumoso
Presentatie sumoso
 
The archived Canadian US Patent Competitive Intelligence Database (2014/5/27)
The archived Canadian US Patent Competitive Intelligence Database (2014/5/27) The archived Canadian US Patent Competitive Intelligence Database (2014/5/27)
The archived Canadian US Patent Competitive Intelligence Database (2014/5/27)
 
Rio Dialogues Backgrounder
Rio Dialogues BackgrounderRio Dialogues Backgrounder
Rio Dialogues Backgrounder
 
[오픈소스컨설팅] Business Email How To
[오픈소스컨설팅] Business Email How To[오픈소스컨설팅] Business Email How To
[오픈소스컨설팅] Business Email How To
 
Belajar membuat blog
Belajar membuat blogBelajar membuat blog
Belajar membuat blog
 
Social Marketing Analyse
Social Marketing AnalyseSocial Marketing Analyse
Social Marketing Analyse
 
Prop Escenario Hi FI
Prop Escenario Hi FIProp Escenario Hi FI
Prop Escenario Hi FI
 
The archived Canadian US Patent Competitive Intelligence Database (2015/11/3)
The archived Canadian US Patent Competitive Intelligence Database (2015/11/3) The archived Canadian US Patent Competitive Intelligence Database (2015/11/3)
The archived Canadian US Patent Competitive Intelligence Database (2015/11/3)
 
The Archived Canadian Patent Competitive Intelligence (Sept. 14, 2010)
The Archived Canadian Patent Competitive Intelligence (Sept. 14, 2010)The Archived Canadian Patent Competitive Intelligence (Sept. 14, 2010)
The Archived Canadian Patent Competitive Intelligence (Sept. 14, 2010)
 
The archived Canadian US Patent Competitive Intelligence Database (2016/2/2)
The archived Canadian US Patent Competitive Intelligence Database (2016/2/2) The archived Canadian US Patent Competitive Intelligence Database (2016/2/2)
The archived Canadian US Patent Competitive Intelligence Database (2016/2/2)
 
The archived Canadian US Patent Competitive Intelligence Database (2016/5/24)
The archived Canadian US Patent Competitive Intelligence Database (2016/5/24) The archived Canadian US Patent Competitive Intelligence Database (2016/5/24)
The archived Canadian US Patent Competitive Intelligence Database (2016/5/24)
 
Congreso agesport
Congreso agesportCongreso agesport
Congreso agesport
 
Map+blue+free+world+map+ppt+powerpoint+background+template
Map+blue+free+world+map+ppt+powerpoint+background+templateMap+blue+free+world+map+ppt+powerpoint+background+template
Map+blue+free+world+map+ppt+powerpoint+background+template
 
The archived Canadian US Patent Competitive Intelligence Database (2015/9/8)
The archived Canadian US Patent Competitive Intelligence Database (2015/9/8) The archived Canadian US Patent Competitive Intelligence Database (2015/9/8)
The archived Canadian US Patent Competitive Intelligence Database (2015/9/8)
 
The archived Canadian US Patent Competitive Intelligence Database (2014/7/8)
The archived Canadian US Patent Competitive Intelligence Database (2014/7/8) The archived Canadian US Patent Competitive Intelligence Database (2014/7/8)
The archived Canadian US Patent Competitive Intelligence Database (2014/7/8)
 
Intern
InternIntern
Intern
 
The archived Canadian US Patent Competitive Intelligence Database (2016/6/7)
The archived Canadian US Patent Competitive Intelligence Database (2016/6/7) The archived Canadian US Patent Competitive Intelligence Database (2016/6/7)
The archived Canadian US Patent Competitive Intelligence Database (2016/6/7)
 

Similaire à Programming for Business: Real People, Real World

Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringSADEED AMEEN
 
Integrating User Experience Design into the Product Lifecycle
Integrating User Experience Design into the Product LifecycleIntegrating User Experience Design into the Product Lifecycle
Integrating User Experience Design into the Product LifecycleICS
 
Fast track RTC Innovate India 2013
Fast track  RTC Innovate India 2013Fast track  RTC Innovate India 2013
Fast track RTC Innovate India 2013Daniel Leroux
 
Indix Engineering Culture Code (2015)
Indix Engineering Culture Code (2015)Indix Engineering Culture Code (2015)
Indix Engineering Culture Code (2015)Rajesh Muppalla
 
Agile software development
Agile software development Agile software development
Agile software development saurabh goel
 
Managing software projects & teams effectively
Managing software projects & teams effectivelyManaging software projects & teams effectively
Managing software projects & teams effectivelyAshutosh Agarwal
 
Resume SAGAR DHAKATE
Resume  SAGAR DHAKATEResume  SAGAR DHAKATE
Resume SAGAR DHAKATESagarDhakate1
 
Why Agile? Back to Basics.
Why Agile? Back to Basics.Why Agile? Back to Basics.
Why Agile? Back to Basics.Lucas Hendrich
 
Workshop-BuildingSoftware-June2023.pptx
Workshop-BuildingSoftware-June2023.pptxWorkshop-BuildingSoftware-June2023.pptx
Workshop-BuildingSoftware-June2023.pptxRajmohan Kathiresan
 
Intoduction to software engineering part 1
Intoduction to software engineering part 1Intoduction to software engineering part 1
Intoduction to software engineering part 1Rupesh Vaishnav
 
unit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshunit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshsagarjsicg
 
Accelerate Time to Market by Pipelining UX with Development - Part 1
Accelerate Time to Market by Pipelining UX with Development - Part 1Accelerate Time to Market by Pipelining UX with Development - Part 1
Accelerate Time to Market by Pipelining UX with Development - Part 1ICS
 
Deeply Embedding UX Practices Into Your Organization by Grafting them Into Yo...
Deeply Embedding UX Practices Into Your Organization by Grafting them Into Yo...Deeply Embedding UX Practices Into Your Organization by Grafting them Into Yo...
Deeply Embedding UX Practices Into Your Organization by Grafting them Into Yo...UXPA Boston
 
From prototype to production - The journey of re-designing SmartUp.io
From prototype to production - The journey of re-designing SmartUp.ioFrom prototype to production - The journey of re-designing SmartUp.io
From prototype to production - The journey of re-designing SmartUp.ioMáté Lang
 

Similaire à Programming for Business: Real People, Real World (20)

Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Integrating User Experience Design into the Product Lifecycle
Integrating User Experience Design into the Product LifecycleIntegrating User Experience Design into the Product Lifecycle
Integrating User Experience Design into the Product Lifecycle
 
Fast track RTC Innovate India 2013
Fast track  RTC Innovate India 2013Fast track  RTC Innovate India 2013
Fast track RTC Innovate India 2013
 
Indix Engineering Culture Code (2015)
Indix Engineering Culture Code (2015)Indix Engineering Culture Code (2015)
Indix Engineering Culture Code (2015)
 
Agile software development
Agile software development Agile software development
Agile software development
 
Slides môn Công nghệ phần mềm Software Engineering
Slides môn Công nghệ phần mềm Software EngineeringSlides môn Công nghệ phần mềm Software Engineering
Slides môn Công nghệ phần mềm Software Engineering
 
Managing software projects & teams effectively
Managing software projects & teams effectivelyManaging software projects & teams effectively
Managing software projects & teams effectively
 
Module 1 - SE.pptx
Module 1 - SE.pptxModule 1 - SE.pptx
Module 1 - SE.pptx
 
Resume SAGAR DHAKATE
Resume  SAGAR DHAKATEResume  SAGAR DHAKATE
Resume SAGAR DHAKATE
 
Why Agile? Back to Basics.
Why Agile? Back to Basics.Why Agile? Back to Basics.
Why Agile? Back to Basics.
 
Se 20150507
Se 20150507Se 20150507
Se 20150507
 
Workshop-BuildingSoftware-June2023.pptx
Workshop-BuildingSoftware-June2023.pptxWorkshop-BuildingSoftware-June2023.pptx
Workshop-BuildingSoftware-June2023.pptx
 
Intoduction to software engineering part 1
Intoduction to software engineering part 1Intoduction to software engineering part 1
Intoduction to software engineering part 1
 
Requirement designer
Requirement designerRequirement designer
Requirement designer
 
unit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshunit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbsh
 
Accelerate Time to Market by Pipelining UX with Development - Part 1
Accelerate Time to Market by Pipelining UX with Development - Part 1Accelerate Time to Market by Pipelining UX with Development - Part 1
Accelerate Time to Market by Pipelining UX with Development - Part 1
 
Software Project management
Software Project managementSoftware Project management
Software Project management
 
Deeply Embedding UX Practices Into Your Organization by Grafting them Into Yo...
Deeply Embedding UX Practices Into Your Organization by Grafting them Into Yo...Deeply Embedding UX Practices Into Your Organization by Grafting them Into Yo...
Deeply Embedding UX Practices Into Your Organization by Grafting them Into Yo...
 
Asocialwaypr4
Asocialwaypr4Asocialwaypr4
Asocialwaypr4
 
From prototype to production - The journey of re-designing SmartUp.io
From prototype to production - The journey of re-designing SmartUp.ioFrom prototype to production - The journey of re-designing SmartUp.io
From prototype to production - The journey of re-designing SmartUp.io
 

Programming for Business: Real People, Real World

  • 1. Software Development Forum 2012 Programming for Business: Real People, Real World Marshal Yung Software Engineering & Architecture
  • 3. Background ● 1999 ● C++ MFC, integration API, PKI, CRM, ERP, etc. ● 2004 ● Software engineering and project management ● Web services, open source, e-commerce ● Corporate trainer – Internet technologies – LAMP platform
  • 4. Background ● 2008 ● Software architecture design and build ● 2010 ● PAP for Internet Technology (Tunku Abdul Rahman College) ● Platform & framework design and build ● Now ● Independent software project manager ● Web OS ● Coding as a hobby, passion in software engineering & architecture
  • 6. Overview ● Software Functionality ● Building software for businesses ● Functionalities that people really want ● Program's Significance in Business ● What goes in and what doesn't? ● Users and UX ● Costs vs. Returns ● Software estimations and revenue models ● Real People, Real World
  • 8. Software Functionality ● Why do we build software? ● To solve a certain problem ● i.e. Business analytics, computation logics, etc. ● To make life easier (for some) ● To automate repetitive (mundane) tasks ● To get more tasks done in shorter time ● Because we're paid to do it
  • 9. Software Functionality ● Defining the software ● Functional requirements – Intricate details of software operations (functionality) ● Non-functional requirements – Compliance, business goals, standards, etc. ● Quality software: ● Verifiable with functional requirements ● Comply with non-functional requirements
  • 10. Software Functionality ● Here's the irony ● When programmers build software for themselves – It's always minimalistic, usable, quick to deploy, and has only the necessary functionalities ● When programmers build software for others – It's always bloated, perplexed, delayed, and has many rarely needed functionalities
  • 11. A Quick Example An Appointment Scheduler For Personal Use For Others Monthly view calendar Monthly, daily, weekly view calendars Scroll by month and year Scroll by month and year Pop-up appointment entry Pop-up appointment entry Support only single calendar Support multiple calendars Colour coded Appointment list view (shows date/time and Appointment list view (shows start-end appointment name) only for the selected day date/time, appointment name) sorted by day in the week Complete CRUD operations Complete CRUD operations Simplified recurring events (i.e daily, weekly, Recurring events (daily, day-weekly, monthly) weekday-weekly, weekend-weekly, monthly, yearly) Simple calendar sharing (non-server based) Import calendar (i.e. csv, ical, etc.) E-mail reminder (cron or scheduler based) E-mail + pop-up reminder (daemon based) UI concept: minimalistic, uncluttered UI concept: uncluttered, icons, widgets, etc. Deployment time: around 4 man-hours Deployment time: around 8 man-hours
  • 12. Software Functionality ● Functionalities for real people, real world ● Meets definition of a quality software – Verified and validated – People already knows what the software does, and they just want to get their job done ● Non-bloated software – Keep the good-to-haves for the next release – Remember to KISS! ● Sensible and consistent UI – No surprises – Meets general user expectations
  • 13. In Retrospect ● Consider practicality in the real world ● Must-haves vs. good-to-haves ● Agile development methodology ● Evolutionary prototyping and incremental development
  • 14. Finding the Significance of Each Program in the Business World
  • 15. “Every program that is created must have a purpose; if it does not, it is deleted” - Rama-Kandra, The Matrix Revolutions
  • 16. User Centric Applications ● Who are your users? ● Business users falls into various types ● Identifiable by business units ● Each business unit have unique requirements ● Programs that benefit users ● Getting the job done ● Work as expected (rarely exceed expectations) ● User satisfactions – Expectations and perspectives
  • 17. Use Case Diagram ● Straight forward communication ● Business people ● End-users ● For the technical team ● Clearly defines requirements and features ● For the non-technical team ● Validity of requirements
  • 19. User Experience (UX) ● What's UX? ● A personal experience of a user towards a system ● Personal experiences including all things from aesthetics to usability ● A good personal experience (good UX) gives higher rate of acceptance
  • 20. Programming in the Real World ● Consider these ● Divide and conquer ● Each program (or function) should do only one job, and does it exceptionally well ● Learn from: – GNOME, Apple, Mozilla Project
  • 22. Software Estimations ● Justification of software values ● Based on effort and time spent ● May also include other costs; i.e. hardware and other incurred charges
  • 23. Software Estimations ● Function point analysis ● Quick and easy way to determine the amount of functionalities required ● Does not include costs outside software development effort (i.e. Hardware, training, etc.) ● Basis of cost per function is based on experience from past projects
  • 24. Software Estimation ● COCOMO/COCOMO II ● Constructive Cost Model ● Measurement of software costs and durations ● Derived from per-man-month effort and expressed in KLOC ● COCOMO II takes more considerations of PM attributes and modern software development processes (i.e. CMM-I levels)
  • 25. Revenue Models ● License based ● Client access license (CAL), per-seat, per-installation license, bulk license ● Common for install-based applications ● Subscription based ● Per user/month, per user/year, bulk subscriptions ● Common in SaaS environment ● Utility based ● Pay per-use ● Common in SaaS and cloud-computing environment
  • 26. Software Returns – Real People ● Maximise values of creative people ● Who are the creative people: – Programmers, designers, engineers ● Understanding creative people: – Creativity cannot be confined – Creative people has to be let loose to explore – Creative ideas come from the wild, not within cubicles
  • 27. Software Returns – Real People ● Communicating with creative people ● Business people: top-down approach ● Creative/technical people: bottom-up approach ● Requirements should be delivered in the form of – What is needed? – Not how to do it ● Business people lead business domain requirements ● Creative people lead the process of design and build of the requirements
  • 28. Finally... ● Programming for real people, real world ● Who are your users? They are very important (but not always right) ● Let creative people free to explore possibilities ● Business people ensure project direction and goals ● SDLC and methodologies are important ● But, let people build software for people
  • 29. Thank You Q&A
  • 30. Marshal Yung Software Development Forum 2012 Programming for Business: Real People, Real World