Real World Software Development Process

Start -->  Finish

Talking Points

  • About me & my company, SST Software.

  • What is Scrum? A quick intro.

  • What are the team member roles and responsibilities in a software company?

  • What are the different development environments and servers?

  • What are the steps in the development process?

  • Q&A

About Me

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

About SST Software

  • World's leading precision agriculture data management company
  • 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 mgmt, data sync, online viewer, agX store, etc. 

What is Scrum?

  • Where the word Scrum comes from?
  • Scrum was defined by 2 Japanese professors for a new approach to product development.
  • The Scrum process (link).
    • The Scrum process from my own experience.
  • Why Scrum?
  • Daily Scrum meetings.

Team Roles/Responsibilities

  • CEO (Chief Executive 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
  • 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
    • database server - SQL server, Oracle, etc
    • cache server - Couchbase server
    • build - Visual Studio MS Build
    • source control - TFS client (VS), Git client

Steps In The Development Process

First, a question:

 

Why do we care about the PROCESS???

Steps In The Development Process

For each step, we will discuss 3 things:

 

  • who
  • why
  • what

Steps In The 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.

Steps In The 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.

Steps In The Development Process (Cont'd)

  • 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.

Steps In The 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!

Q & A

Real world software dev process

By Chuck Han

Real world software dev process

  • 1,382