What does it take to get a soft­ware pro­ject setup?

SOFTWARE DEVELOPMENT

Once you know what it is that you want to build with your soft­ware pro­ject the ex­cite­ment to get those fea­tures built of­ten over­shad­ows some pro­ject re­alisms. We un­der­stand that it’s a jour­ney to be­gin de­vel­op­ment.

There are sev­eral steps that WorkingMouse clients progress through be­fore any hu­man writ­ten code is de­vel­oped; from align­ing on a prob­lem at Brief to val­i­dat­ing a so­lu­tion in scope. One of the re­alisms I am elud­ing to is get­ting the pro­ject setup cor­rectly be­fore the first de­vel­op­ment it­er­a­tion be­gins. At WorkingMouse we call this Iteration 0.

Iteration 0 is an es­ti­mated it­er­a­tion that al­lows the de­vel­op­ment team to com­plete a com­pre­hen­sive han­dover from the scop­ing team and get setup for suc­cess. It’s a vi­tal part of the soft­ware de­vel­op­ment life­cy­cle as in­vest­ing the time up­front mit­i­gates risks or block­ers to the pro­ject in de­vel­op­ment.

It is vari­able de­pend­ing on the pro­ject plat­forms and com­plex­i­ties. For ex­am­ple, if there is no Mobile Application, then App store cre­den­tials are not rel­e­vant. Iteration 0 usu­ally takes the de­vel­op­ment team be­tween 3-5 days to com­plete.

Personally, I used to think this was a sig­nif­i­cant amount of time that was lost in fea­ture de­vel­op­ment and would get frus­trated with the time spent. However, I changed my tune when one of our pro­jects be­came blocked by a third-party Application Programming Interface (API). It be­came a blocker for the de­vel­op­ment team and pre­vented them from com­plet­ing a de­vel­op­ment mile­stone. Since then, I’ve en­sured that all learn­ings are con­stantly fed back into our check­list. This check­list is de­liv­ered to our clients at the end of the it­er­a­tion and the team can quickly ref­er­ence back to it at any time.

Here’s our Iteration 0 check­list that we use at pre­sent. I have edited the check­list to re­move links to our in­ter­nal knowl­edge base and given an ex­pla­na­tion of the links where pos­si­ble in ital­ics.

Iteration 0 Checklist

Iteration 0 is the setup it­er­a­tion for each pro­ject. This is the time a de­vel­op­ment team has set aside to pre­pare for Iteration 1. It is im­por­tant to make sure that all items are ticked off to min­imise the risk of not achiev­ing your Iteration 1 com­mit­ments.

ItemDone (Y/N)Notes/Actions
Account Setup Setup ac­counts and ac­cess to: JIRA (this is the is­sue and pro­ject track­ing soft­ware we use cre­ated by Atlassian, an awe­some Aussie com­pany) Confluence (this is an ed­itable Wiki that we use for pro­ject notes and doc­u­men­ta­tion)
Update Partner URL’s page Depends on “Account Setup” Add Application en­try to Partner URLs
Design Handover Product suc­cess has pre­sented their kitchen sink (Design Language arte­facts eg. Buttons, fonts to use etc) and pro­to­type for the pro­ject Development team has ac­cess to kitchen sink and de­sign stan­dards
Email Setup Depends on “Account Setup” Setup email ac­count for send­ing emails from an ap­pli­ca­tion Record email ac­count de­tails in Application Partner Details page. Required Details: Email Host Port Username Password Protocol
Mailtrap Setup Create a mail­trap in­box for the pro­ject (if ap­pli­ca­tion) Invite the client(s) to the in­box (this is a fake SMTP email server we use to test sys­tem email send­ing in de­vel­op­ment)
Backlog Review Review the back­log cre­ated dur­ing scope for pos­si­ble changes: Behaviours Model Entity Attributes Model Properties It’s best to iden­tify these is­sues early and get on top of them.
Backlog into JIRA Depends on “Backlog Review” Import Scope back­log (from es­ti­ma­tions) into JIRA Includes Estimates (with risk, with­out al­lo­ca­tion) Includes Priorities Includes Risk Ensure notes taken dur­ing es­ti­ma­tions are vis­i­ble on the is­sues We save our scope back­log in our es­ti­ma­tions sheet: see our es­ti­ma­tions ar­ti­cle here
Codebots Customer Setup Customer with Codebots (eg. ”.codebots.app”) Setup Customer read-only ac­cess Codebots is the soft­ware de­vel­op­ment PAAS we use to model the ap­pli­ca­tion and gain de­vel­op­ment ef­fi­cien­cies
Codebots Application Depends on “Codebots Customer” Create the Application(s) Do a build (to setup the repos­i­to­ries)
Entity Model (this is where we model the Application in­for­ma­tion ar­chi­tec­ture) Depends on “Codebots Application” Create model (if it does­n’t al­ready ex­ist) Review model (created dur­ing scope) for: Validation on at­trib­utes Validation on as­so­ci­a­tions New be­hav­iours re­leased or up­dated since scop­ing
View Model (this is where we model the Client side Applications views link to the en­tity di­a­gram) Depends on “Codebots Application” Create model (if not al­ready ex­ists) Review model (created dur­ing scope) for: Breakup of Pages/Tiles
Environment and Operations Setup Beta / Prod Environment (with SSL) Note any ad­di­tional de­tails for con­sid­er­a­tions or cus­tomi­sa­tions Setup a BitWarden (Open source pass­word man­ager) Group for Customer To do this, sub­mit an in­ter­nal sup­port ticket Internal Ticket Details Title:New Application Environment Setup Type: IT Help Priority: Major Component: WorkingMouse Dev Application re­lated tasks Description Please setup: Beta and Production Environment SSL Certificate:Beta URL:Beta Location:Prod URL:Prod Location:Customer Name:Application Name:Special Requirements: <Details or N/A> Create BitWarden group forAdd the fol­low­ing squad:This is the beta and pro­duc­tion pub­lic cloud host­ing en­vi­ron­ments which is com­pleted by out Dev Ops team, see our ar­ti­cle on host­ing here.
App Store Accounts Setup Apple Developer ac­count Setup Google Play Store ac­count Enrolled in the “Apple Developer Program Enrolment” This is rec­om­mend, even if not build­ing an app, just to re­serve the name of the com­pany and app.
Apple Bundle Certificates Depends on “App Store Accounts” Setup Bundle IDs for iOS apps Once you’ve re­ceived ac­cess to the Apple Development Program, be sure to visit the Apple Connect ac­count and add a new ac­count. You will re­ceive the fol­low­ing mes­sage: You have no el­i­gi­ble Bundle IDs for iOS apps… Follow the prompts to com­plete.
DUNS Number (DUNS and Bradstreet num­ber re­quired for cor­po­ra­tions to re­lease IS ap­pli­ca­tions) Depends on “App Store Accounts” Customer has reg­is­tered a DUNS num­ber
Clone Repositories Depends on “Codebots Application” Clone the ap­pli­ca­tion repos­i­to­ries on all team mem­ber ma­chines This is our GIT ver­sion­ing. Read about GIT here.
Development Environment (via Docker) (effectively a way to ef­fi­ciently run apps that are in de­vel­op­ment lo­cally) Depends on “Clone Repositories” On all team mem­ber ma­chines: Install Docker (Do not use Docker Toolbox if pos­si­ble) Windows - Direct Download - Docker Desktop Mac - Direct Download - Docker Desktop Check in­stalled and work­ing Run `docker ps` Get de­vel­op­ment con­tain­ers run­ning In ap­pli­ca­tion dir, run `docker-compose up -d` Check URL SpringBot - “localhost:8000” C#Bot - “localhost:8001″
Development Testing Depends on “Development Environment (via Docker)” Get bot writ­ten tests run­ning and pass­ing lo­cally on all team mem­ber ma­chines Get tests run­ning on Jenkins (Automation server for test­ing) Setup Application on Jenkins Wallboard
Development Debugging Depends on “Development Environment (via Docker)” Setup ap­pli­ca­tion de­bug­ging on all team mem­ber ma­chines

There are a few ad­di­tional steps that we look out for when set­ting the pro­ject up. These are es­pe­cially im­por­tant in the lat­ter stages of de­vel­op­ment and when re­leas­ing.

ItemDone (Y/N)Notes/Actions
Repository Initial Setup Depends on “Clone Repositories”, “Email Setup” Initial theme setup Favicon Logos Email con­fig DNS set­tings
Development Mobile App Depends on “Clone Repositories” On all team mem­ber ma­chines: Setup Mobile App Get Mobile App run­ning in the Android Emulator
Setup Sonaqube (helps write cleaner and safer code) Depends on “Codebots Application” Setup ap­pli­ca­tion sta­tic analy­sis on Sonaqube
Traceability Matrix Depends on “Codebots Application” Setup and con­fig­ure Traceability Matrix Use one of the fol­low­ing op­tions: Codebots Platform (CSV im­port) Jenkins (JIRA Integration) Manual Spreadsheet
Security Page (how we con­trol user ac­cess and se­cu­rity via the code­bots model) Depends on “Account Setup”, “Codebots Application” Setup / up­date the Security page in Confluence Note all key se­cu­rity re­quire­ments Note key API al­lowances Note key API ac­cess lim­i­ta­tions
Testing Third Party APIs (enables us to link the ap­pli­ca­tion with any other ser­vices Eg. Twilio for SMS send­ing) Document Third Party API de­tails Test/Verify API ac­cess is work­ing
Testing API Depends on “Development Environment (via Docker)” Validate that Application APIs are ac­ces­si­ble and work­ing via Postman
API Reference (our ap­pli­ca­tions API) Depends on “Codebots Application” Validate that Library Reference doc­u­men­ta­tion in Codebots is built / work­ing

In re­view­ing, I am sure you’ll agree, its com­plex and there’s a lot of mov­ing parts! We’re al­ways im­prov­ing our processes, but we hope you find this in­for­ma­tion use­ful for un­der­stand­ing every­thing that will need to go into your pro­ject.

If this list is a lit­tle to tech­ni­cally daunt­ing, don’t worry that’s ex­actly why we’re here to help!

Discover Software
Secrets

ABOUT THE AUTHOR

David Burkett

Growth en­thu­si­ast and res­i­dent pom

Get cu­rated con­tent on soft­ware de­vel­op­ment, straight to your in­box.

Your vi­sion,

our ex­per­tise

Book a con­sul­ta­tion