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!