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