← iOS

Process

This page will serve as a starting point for us to document our development process.

Although the current team knows how we do things, documenting our processes will help new employees, both full-time and interns, when they come onto the team.

Currently, we have processes we follow, but they are not documented well, if at all. Any documentation we create needs to be easily available and structured so it makes sense.

I don’t want this to be draconian. Everybody hates that. The impetus for this has been both my own experience as a new employee, and recent questions from interns. At least having a place to start for learning how we develop will help to alleviate some of the issues we all face when starting in a new environment.

Here’s a stab at what we may want to document. I would prefer we break these down into smallish chunks. Easier to write, maintain, and absorb. I realize we may have pieces and parts to some of these already, as well as videos.

  • Overall development flow, from Trello card creation to PR close (higher level doc)
  • Trello card creation and prioritization
  • Use of Github Issues
  • Selecting/assigning work and getting started
  • Unit testing
  • UI testing
  • Xcode bots
  • PR creation
  • PR review
  • PR close
  • Release process
  • Merge conflict resolution ** project file ** xib files
  • Git issues in everyday work

Also,

  • Workstation and development tool setup

  • Setting up Xcode

  • Developer accounts

  • Bot and Github server setup

  • Developer portal/device setup

  • Coding standards

  • Firefighting

  • HockeyApp

  • Build config tutorial

  • Institution IDs

  • Add a link to auto-generated DocSets for the project.

  • Look into how to automate this

Slim down the banno-ios Readme to cover the App more than our process. Move process to here. Link to the process docs from the Readme.

  • Figure out how we want to organize and track the process wiki.
  • Look into how other Banno projects are doing it. Create a separate repo, versus putting it in banno-ios.

Helps to document as issues arise. Rather than later, when the details of the issue may not be clear, and better to get peer review while in the moment.

Lifecycle of a code change

These are the basic steps to making a code change to the Banno app codebase:

  1. Create a Jira task, issue, or story for the change if one does not already exist.
  2. Assign the above to yourself and mark it as In Progress
  3. Create a branch for the change. Normally this is done from develop but may be from a release branch (the typical “Gitflow” method).
  4. Name the branch using the template [YourName]/[Jira Id]_[short description] for example simon/IOS-123_fix_layout
  5. Make your change and include the Jira Id in your commit message
  6. Push the change to remote and create the PR in github. In the PR be sure to reference the Jira ticket in the Fixes section and fill out the other sections as appropriate
  7. Assign two reviewers to the PR and post in #team-ios for example : @dwilliams @felipe I requested a review from you on this PR https://github.com/Banno/banno-ios/pull/8546
  8. Respond to reviews comments. Once one has manually tested the PR, both have approved, and bots have passed you or anyone else is free to merge the change.
  9. Update the Jira ticket to Ready for Test