Real World

Software Development

Talking Points

  • About me & my company, SST Software.

  • Scrum

  • Team member roles and responsibilities

  • Environments and servers

  • Development process

  • Q&A

About Me

  • Chuck Han
  • 9 yrs of professional experience
  • Software/Web developer
  • Full time at SST
  • @chuck_peter_han
  • www.CourageousCoder.com

About SST Software

  • World leader in precision agriculture data management
  • We serve the farming industry by providing farmers with decision support tools that help them run their businesses more efficiently and profitably.
  • In US alone, we process over 120 million acres of data, about 1/4 of the entire US.
  • We offer
    • Ag industry leading platform - agX Platform
    • Desktop app - SST Summit
    • iOS app - Sirrus
    • Various web apps - account and data mgmt, online GIS, agX store, etc. 

Scrum

Team Roles/Responsibilities

  • CEO (Chief Executive Officer)
  • COO (Chief Operating Officer)
  • CTO (Chief Technology Officer)
  • PO (Product Owner)
  • BA (Business Analyst)
  • UI/UX Designer
  • Software Developer (t-shirt link)
  • Technical Lead
  • DBA (Database Admin)
  • Database Developer

Team Roles/Responsibilities Cont'd

  • Software Architect
  • System Architect
  • QA (Quality Assurance)
  • IT (Information Technology)
  • Marketing
  • Sales
  • Customer Support
  • Contractors

Development Environments & Servers

Environments

  • Local
  • Dev/QA
  • Staging/QA
  • Production

 

Development Environments & Servers

Servers

  • Build server
  • Source control server
  • Web server
  • Database server
  • Cache server
  • Files/documents server
  • Email/messaging server
  • External/3rd party server

Development Environments & Servers

General comments

  • Usually each environment is a complete environment by itself.
  • For eg, the local environment in a web dev's machine contains
    • web server - IIS/IIS Express
    • database server - SQL server, Oracle, etc
    • cache server - Couchbase server
    • build - Visual Studio MS Build
    • source control - TFS client (VS), Git client

Development Process

First, a question:

 

Why do we care about the PROCESS???

Development Process

For each step, we will discuss 3 things:

  • who
  • why
  • what

Development Process

  • Gather and analyze requirements
  • Document requirements
  • Create UI mockups and prototypes
  • Create PBIs (and bugs if existing software)
  • Have project planning meeting with developers.
  • Create high level software architecture. (link)
  • Create low level detailed code design.
  • Write tasks and estimate hours for each PBI and bug.
  • Have sprint kick-off meeting.

Development Process (Cont'd)

  • Software construction.
  • Daily scrum meetings.
  • Write unit tests.
  • Do peer code reviews.
  • Deploy to Dev/QA environment for QA.
  • QA will test in Dev/QA environment.
  • Fix bugs.
  • Demo software internally.
  • Deploy to staging environment for final QA.
  • QA will test again in staging environment.
  • Fix bugs.
  • Have pre-deployment meeting before deploying to production.
  • Deploy to production & test.
  • Rollback to previous state if deployment goes bad.
  • Sprint retrospect meeting.
  • Demo to key users and stakeholders.
  • Continue to engage our users for feature requests and bugs.
  • Plan for next sprint.

Development Process (Cont'd)

The result of a good process lived out:

 

SST is a well-oiled machine when it comes to cranking out software.

 

This is NOT the norm!

Development Process (Cont'd)

Q & A

Real World Software Development v2 (yr 2016)

By Chuck Han

Real World Software Development v2 (yr 2016)

  • 338