arrow-left

Only this pageAll pages
gitbookPowered by GitBook
1 of 36

TPW Data & Technology Services Wiki

Loading...

Loading...

Loading...

Loading...

Basics

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Onboarding

Loading...

Loading...

Working at DTS

Off boarding

Loading...

Loading...

Product Ops

Loading...

Loading...

Loading...

Loading...

Loading...

Developer

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

APPLICATIONS

Loading...

Loading...

Resetting Your Network Password from a Mac

Learn how to reset your City of Austin Network password remotely from a Mac using Citrix AnyConnect.

  1. Get set up with a PC assigned to your Citrix profile. You may have to contact Scott Reedy for assistance with this step, but you'll need a PC assigned to your Citrix profile.

  2. Connect to the VPN via Cisco AnyConnect.

  3. Log in to using your CoA username and password. URL: Username: coacd\ + your last name and first initial. Ex: coacd\clarkem Password: your CoA Network password (same as Outlook)

  4. Click the Settings ⚙️ icon in the top right, then "Account Settings."

  1. Click "Change password."

  1. Fill out the Change Password form and click "OK."

  2. Once you change your password in Citrix, immediately log out of AnyConnect. It is possible to lock yourself out because you are logged into AnyConnect with the old password at that time. You can reach out to Scott Reedy to unlock you if that happens.

Citrix Store Frontarrow-up-right
https://coastore.austintexas.gov/Citrix/COASTOREWeb/arrow-up-right

Agile Project Management with GitHub + Zenhub

The Data and Technology Services team is using GitHub and Zenhub for agile project management. This is an overview of our process.

hashtag
Set up

  1. Create a GitHub accountarrow-up-right if you don't have one already.

  2. Have someone on the DTS team add you to the organization and the team as a Maintainer.

  3. Add the to your browser.

  4. Log into the using your normal GitHub credentials to activate your account.

hashtag
Pipelines

The Zenhub board uses a -like format where issues are represented as cards and move across the board as they enter various stages of completion. Our workspace pipelines are:

  • New Issues - Awaiting triage by Level I Support or Product.

  • Icebox - Recorded and understood, but not committed to. Lack of evidence of overall value or applicability. We don't want to delete these and create a cycle of raising duplicate issues, so we keep them in our icebox with just enough information attached that we can pick it up sometime in the future — if and when we choose to do so.

  • Needs Scoping - Potential projects or features that require clarification or exploration before presenting to builders for estimation and prioritizing.

hashtag
Issues

Tracking our work in issues not only helps us stay organized, it gives us data on where we're spending our time. To create an issue, click the green "New issue" button in the upper right corner of the or our .

You will see a list of our custom issue templates. These are handy for creating bug reports, meetings, etc. with boilerplate information and structure.

hashtag
Issue Titles

Issue titles should begin with a verb* and summarize the work to be completed. This convention improves data readability and helps keep our tasks action-oriented and unambiguous. Since you'll be using Product: and Type: labels, you don't need to spell out application names or issue types.

*Consider Update, Implement, Add, Remove, Review, Discuss, Troubleshoot...

Use this
Not this

hashtag
Labels

You can apply labels by clicking the "Labels" heading in an issue's right-hand sidebar and beginning to type the label name.

You can also .

hashtag
The importance of labels

Accurate labeling is necessary for several reasons:

  • Labels allow us to view related issues across the Zenhub pipelines. For example, during Apps Team Sprint Planning, we filter down to Service: Apps and during our periodic meetings with AMD we use the Workgroup: AMD label to look at all the work — across teams, of all sizes — that we're doing for them.

  • Labels are also used to populate .

  • Finally, labels are critical to the

hashtag
Required labels

  • — the customer we're serving; Workgroup: DTS for internal work and Workgroup: TPW for department-wide work. Every issue should have one, and only one, Workgroup: label.

  • — The DTS service team who will be doing the work. If there are two teams working on the same thing, copy the issue so there's one for each team. Every issue should have one, and only one, Service:

hashtag
Optional labels

A DTS team or individual product manager may find these additional label categories helpful

  • — The effect of a bug, infrastructure failure, etc.

    • Impact: 1-Severe — Severely impacts TPW service delivery

    • Impact: 2-Major

hashtag
Estimates

Estimates are how we track the level of effort of issues. Every issue should have an estimate once it is pulled on deck or into progress, and estimates can be adjusted as needed. Check estimates for accuracy whenever you close an issue. Use 0 estimates for duplicates and other issues we don't work on.

Like labels, estimates are required because they are a critical component of the we use to track, analyze, and improve our work. Estimates are also useful for

  • Sprint planning — to see when a person or team has too many issues (or too few!) issues assigned to them

  • Stakeholder discussions when prioritizing features — being able to show stakeholders easily that we can accomplish, say, three small tasks, two medium, or one large

  • — i.e. predicting the likelihood we can complete a project by a given date

about the hows and whys of estimates with ZenHub.

hashtag
Assignees

An issue should be assigned to the person/people who will tackle it. This enables team members to filter down to issues they are responsible for easily.

hashtag
Epics

Epics are a powerful feature that Zenhub adds to Github. They allow you to group related tasks and easily track them from one place. . Here from another City of Austin project.

For ongoing tasks such as a recurring meeting, it may help to create an epic and put the individual instances of the tasks inside it. of that type of usage for a task performed for a customer regularly.

Epics do not need estimates assigned to them manually. Instead, the effort is represented by the total of all the story points in the epic's issues. That said, you can add estimates to the epic issue to represent the effort used to managing the sub tasks, i.e. meetings with stakeholders as the work progresses.

Ultimately, epics can group whatever makes sense for you and your collaborators. Some people prefer . That's fine as long as the issue doesn't require more effort than we can represent in our for a single issue.

circle-info

Github recently introduced , and on top of them. The DTS Product team hasn't yet decided if/how we will modify our workflow to incorporate these new features. For now, we're continuing to use epics as we always have.

hashtag
Learning More

Here are some additional guides for some of our most relied-upon Zenhub functionality:

  • "Use multi-action to make bulk Issue updates" on

The are super-solid, and we encourage you to peruse them at your leisure. Remember that some functionality—renaming and reordering pipelines themselves, for example—will affect the workspace for the whole team. We're always looking for ways to improve our process, so if you come across an approach or functionality you think is promising, add it to the agenda for our weekly Product Sync or share it in the #atd-product Slack channel!

  • Backlog - Issues that are ready to be tackled by the team when the time comes. This pipeline is prioritized: the higher an issue is on this list, the higher the priority.

  • On Deck - Slated for work in the current sprint. During Sprint Planning, we pull all issues that we intend to work on during the sprint into On Deck.

  • Blocked - Issues that cannot be completed — often waiting on CTM or user feedback.

  • In Progress - This one is self-explanatory. Each Issue in this pipeline should have an assigned owner who is responsible for its completion.

  • Ongoing - Continually supported products and activities.

  • Review/QA - Proposed as complete but awaiting approval — code review and/or acceptance testing — before closure.

  • Ready to Deploy - Code or configuration that is ready to be deployed to production.

  • Closed - Done! 🙌

  • that we use to track, analyze, and improve our work.
    l
    abel
  • Typearrow-up-right — The type of request or task. Every issue should have one, and only one, Type: label

  • Project and/or Product labels, if applicable

    • Projectsarrow-up-right refer to a substantial scope of related work that will reach a state of relative completion, such as the AGOL Auditarrow-up-right

    • Productsarrow-up-right are solutions that we continue to support over time, including all in-house applications, such as the Vision Zero Crash Data System

    • Often, a major feature or enhancement to an existing product will require enough resources and coordination that it qualifies as a project. , for example, was a major set of features and enhancements to AMD Data Tracker and the Finance and Inventory App, so it needed both Product and Project labels

  • — Causes a major interruption of TPW service delivery
  • Impact: 3-Minor — Deteriorates TPW service delivery

  • Impact: 4-None — Does not affect TPW service delivery

  • Needarrow-up-right — To designate priority of a potential feature or enhancement

    • Impact: 1-Severe — Severely impacts TPW service delivery

    • Impact: 2-Major — Causes a major interruption of TPW service delivery

    • Impact: 3-Minor — Deteriorates TPW service delivery

    • Impact: 4-None — Does not affect TPW service delivery

  • Providerarrow-up-right — The external team or vendor executing the issue

  • Add task order fields to "Funding" tab

    AMD staff can't track all funding information

    Publish new CCTV camera thumbnails

    CCTV map issues

    Replace Vision Zero Editor council district dataset

    — or — Replace VZE council district dataset

    Outdated council district AGOL resource in Vision Zero Editor

    City of Austinarrow-up-right
    Transportationarrow-up-right
    Zenhub extensionarrow-up-right
    Zenhub web apparrow-up-right
    Kanbanarrow-up-right
    "Issues" pagearrow-up-right
    Zenhub boardarrow-up-right
    apply labels in bulk from on our Zenhub boardarrow-up-right
    content on the DTS websitearrow-up-right
    service delivery dataarrow-up-right
    Workgrouparrow-up-right
    Servicearrow-up-right
    Impactarrow-up-right
    service delivery dataarrow-up-right
    Velocity trackingarrow-up-right
    This is a good articlearrow-up-right
    Here is a solid guide to how they workarrow-up-right
    is an examplearrow-up-right
    Here is an examplearrow-up-right
    issues with task lists inside themarrow-up-right
    estimate scalearrow-up-right
    sub-issuesarrow-up-right
    Zenhub added layers of functionalityarrow-up-right
    Filtering the Boardarrow-up-right
    this pagearrow-up-right
    Zenhub docsarrow-up-right
    Screenshot of the Issues page with the "New issue" button circled.
    Screenshot of Github label UI predictive typing: "SM" is typed and "Workgroup: SMD" is suggested in the drop down with the description "Signs and Markings Division"
    Label descriptions help with acronyms, "Type:" definitions, etc.
    Estimates (1-5) align with shirt sizes (XS-XXL). Complexity, uncertainty, and time increase as numbers/sizes increase
    Warehouse Inventoryarrow-up-right

    Pypgrest (Python Client)

    We've created a Python client, , for interacting with the Postgrest API.

    Pypgrestarrow-up-right

    Jobs-API

    The Jobs API is a tool for logging the outcome of ETL scripting jobs. It is designed to support the task of "incremental" data loads—i.e., loading only new or updated records from a source database to a destination database.

    The typical ETL workflow using the Job API is:

    1. At the beginning of your ETL job, query the Job API to retrieve the timestamp of the last time your job ran successfully.

    2. Use this timestamp as a temporal filter to extract new/modifed records from the source database.

    3. At the completion of your ETL job, register the successful outcome with the Job API.

    hashtag
    Querying the API

    The postgREST-provided jobs API is available at , and it can be queried using, as described in the . VPN access is required. You can also query the api.jobs table directly from our Postgres read replica.

    hashtag
    Field Definitions:

    hashtag
    Python Example

    We've written a Python utility to interact with the jobs interface. It's included in our pacakge. tdutils requires Python 3 and can be installed with $ pip install tdutils.

    Begin by importing the jobutil library and creating a new job instance:

    Assuming you've run this job successfully in the past, you can use the most_recent method to return a unix timestamp from the last successful job run:

    Register your new job with job.start(). The API returns a JSON representation of newly created job record:

    We have successfuly registered a new job. Note that the status was automatically set to in_progress. If we were to call job.most_recent() again, the results are the same as before, because the status of current job is not success:

    From here, continue your ETL process as needed. When your ETL is complete, use job.result() to update your job status accordingly. Again, a JSON representation of the job record is returned:

    Note that the end_date was populated automatically. Because the job was successful, calling job.most_recent() now returns the timestamp of our current job:

    You should also register job failures. The errror result is availabe for such purposes:

    The job's end datetime

    message

    TEXT

    Optional message

    status

    TEXT NOT NULL

    The status of the ETL job. Use 'in_progress', 'success', or 'error'

    records_processed

    INTEGER

    The number of records processed by the job.

    source

    TEXT NOT NULL

    The name source database of the ETL job.

    destination

    TEXT NOT NULL

    The name of the destination database of the ETL job

    Fieldname

    Field Type

    Description

    id

    SERIAL PRIMARY KEY

    System-generated incremental ID

    name

    TEXT NOT NULL

    Name descriptor of the job which uniquely identifies the ETL job

    start_date

    TIMESTAMP WITH TIME ZONE NOT NULL

    The job's start datetime

    end_date

    https://atd-postgrest.austinmobility.io/legacy-scripts/jobsarrow-up-right
    PostgREST documentationarrow-up-right
    transportation-data-utils (tdutils)arrow-up-right

    TIMESTAMP WITH TIME ZONE

    >>> from tdutils import jobutil
    
    >>> job = jobutil.Job(
            name='my_etl_job',
            url='http://transportation-data-test.austintexas.io/jobs',
            source='inventory_system',
            destination='data_warehouse',
            auth='secret-json-web-token-issued-by-admin')
    >>> job.most_recent()
    1529252405
    # 2018-06-17T16:20:05+00:00
    >>> job.start()
    
    {'destination': 'data_warehouse',
     'end_date': None,
     'id': 31801,
     'message': None,
     'name': 'my_etl_job',
     'records_processed': None,
     'source': 'inventory_system',
     'start_date': '2018-06-17T17:18:53+00:00',
     'status': 'in_progress'}
    >>> job.most_recent()
    1529252405
    # 2018-06-17T16:20:05+00:00
    >>> job.result('success', records_processed=503)  #  records_processed is optional, but preferred
    
    {'destination': 'data_warehouse',
     'end_date': '2018-06-17T17:35:08+00:00',
     'id': 31801,
     'message': None,
     'name': 'my_etl_job',
     'records_processed': 503,
     'source': 'inventory_system',
     'start_date': '2018-06-17T17:18:53+00:00',
     'status': 'success'}
    >>> job.most_recent()
    1529256005
    # 2018-06-17T17:18:53+00:00'
    try:
        # do ETL stuff
    
    except psycopg2.DatabaseError as e:
        job.result('error', records_processed=0, message='A database error occured.')

    Server Operation

    hashtag
    Script Management

    hashtag
    shows an active job status log.

    Application Management

    We have an that we manage on our DTS Portal. This inventory list will show the various applications that our department uses and that we manage.

    Some of the main functions our team does is:

    • Software Support

    Working at DTS Basics

    hashtag
    Municipal Civil Service

    The rules govern the process for employee hiring, promotions, lateral transfers, reduction-in-force, disciplinary actions, and appeals. If any supplemental information included here conflicts with the official MCS rules, those rules take precedence.

    hashtag

    O365 (ex. SharePoint, Teams, Forms, Planner, Lists, etc..)
  • Socrata Open Data Portal

  • Solution Architecture and Configuration

    • Knack, AMANDA, Fulcrum

  • Hardware Support

    • AirWatch - Tablet Management

  • Data Management

    • Database design, creation, maintenance

  • Business Intelligence (BI)

    • Power BI

    • CliqSense

    • Tableau

  • Service Desk

    • DTS Request forms - triage

    • Wiki

    • Slack Channel

  • Application Inventoryarrow-up-right
    It's very important that the job server keeps from timing out.

    hashtag
    knack-proxyarrow-up-right was a flask app, but has been taken down.

    Its functionality was no longer needed after Boomi replaced the Enterprise Service Bus (ESB). Boomi is able to communicate directly with Knack. The change-over occurred in January, 2026.

    hashtag
    cctv-servicearrow-up-right is a sanic app.

    Since we converted this code into an async Sanicarrow-up-right app we haven't had issues with it failing. But we did previously with Flask and never really got to understand the root issues.

    If it goes down, log into atd-data01 via ssh and restart the containerized app with docker restart cctv-service.

    hashtag
    atd-data01 is our main/production data publishing server.

    If atd-data01 crashes, it would just need to be restarted. Insert bash command sudo reboot. All of the data scripts are on cron jobs and will restart at various times. The two service app in docker containers on atd-data01 do need to be restarted manually. Those restart scripts live in their respective Github READMEs.

    hashtag
    Bash Commands

    hashtag
    Allocate Disk Space

    1. List volumes and usage:

    2. Check the free available space in the Volume group

    3. Extend the volume (here, adding 8GB)

    4. Expand the volume:

    5. All done.

    hashtag
    Miscellaneous:

    run all shell scripts inside a folder

    scp transfer files from local to remote directory:

    hashtag
    Amazon AWS

    connect to instance

    Data Publication Logarrow-up-right
    Work Schedule

    Official City of Austin holiday schedulearrow-up-right

    All Austin Transportation Department employees are required to work 8.5 hours/day. That includes a mandatory 30-minute lunch. You can take a longer lunch but can’t count it as work time. You can work through lunch but still need to put in 8.5 hours.

    Your start time can range between 8am and 9:30am. We ask that you work the same schedule consistently and post your daily stand-up when you log on.

    When meetings get scheduled outside your regular work hours, you’re expected to attend them. Let your team lead know in advance when you cannot attend a meeting that requires your attendance.

    hashtag
    Flexing Hours

    You can occasionally flex your hours to accommodate doctor appointments, errands, etc.; give your team lead a heads-up in advance. We understand that unexpected absences can come up.

    “Non-exempt,” aka "hourly" employees, can flex hours within a single work week (Sunday-Saturday), so long as you reach 40 total hours. "Exempt" employees can flex hours across the two-week pay period, so long as your hours total 80.

    hashtag
    Leave Time

    If you can’t or don’t want to flex, you can use sick time for doctor appointments and personal time (vacation, personal holiday hours, comp time, etc.) for anything else. You may also use leave without pay (LWP), but LWP requires pre-approval and should be discussed with your supervisor at least two weeks in advance.

    Non-exempt employees can earn overtime and comp time, which require advance approval from your supervisor.

    If you are a new regular employee, you, unfortunately, can’t use vacation or personal holiday leave during your six-month probation period. If you need to take time off during probation, you have three options: flex hours, use sick time, or take leave without pay.

    Regardless of the leave you use, you must submit a leave request in advance through the eTimesheet system (see below).

    hashtag
    Timesheets (Needs to be updated for UKG)

    circle-info

    You'll have to fill out a paper timesheet during your first two weeks. Your supervisor will help you get one from HR.

    ​E-Timesheet Training (On-Network)arrow-up-right​

    • Part 1: eTimekeepingarrow-up-right​

    • Part 2: Task Ordersarrow-up-right​

    • Part 3: Leave Requestsarrow-up-right​

    • Part 4: ​

    • Part 5:

    Your timesheet must be submitted in the eTimesheetarrow-up-right system every Thursday by 10am.

    Learn how to submit your timesheet with the E-Timesheet Training Guidearrow-up-right (on-network) and timesheet codearrow-up-right reference.

    Municipal Civil Service (MCS) arrow-up-right

    Where to Eat Near Cameron Rd

    The Data & Technology Services office is at .

    hashtag
    Nearby Lunch Options

    We have . 🙂

    $ df -h
    $ vgdisplay /dev/mapper/root_vg
    $ lvextend -L +8G /dev/mapper/root_vg-var_lv
    for shfile in *.sh; do sudo bash ./$shfile; done
    scp /Users/ZWL/Documents/GitHub/transportation-data-publishing/transportation-data-publishing/config/secrets.py liangz@atdatmsscript:transportation-data-publishing/transportation-data-publishing/config/
    ssh -i "<rse_key_filename>"  ec2-user@<server_ip>
    Overtime Requestsarrow-up-right
    Deadlines and Testsarrow-up-right
    $ sudo xfs_growfs /dev/mapper/root_vg-var_lv
    8700 Cameron Road, Austin TXarrow-up-right
    a map for thatarrow-up-right

    Network Access

    hashtag
    Wifi

    Cameron Road: coa-atd-secure-wifi — password in 1password

    hashtag
    VPN & Remote Access

    You need to be on the City of Austin internal network to access various resources such as shared network drives, the HR Portal, the original CitySpace, and many City of Austin Sharepoint sites.

    • Cisco AnyConnect VPN is the client we use to remotely connect to the City network from a Mac.

    hashtag
    Use of Personal Devices on the City Network

    If you use your personal computer for work at the any CoA office be advised that you should never directly connect to the CoA Ethernet network. You can connect to the CoA internal network via VPN when necessary. CTM runs occasional security scans for devices that shouldn't be on the network and if they discover your personal computer, they reserve the right to take your computer, run scans, and review files.

    About

    The Data & Technology Servicesarrow-up-right team at Transportation and Public Works applies user-centered design, agile software delivery, and progressive civic tech values to build impactful solutions with Austin’s mobility planners, engineers, technicians, and staff.

    We use many modern tools and technologies to deliver solutions to our stakeholders. We build enterprise business systems using Knackarrow-up-right, a no-code workflow management service, and we also have a team of developers who build custom software when out-of-the-box doesn’t cut it. We embrace mature frameworks with an eye toward maintainability and long-term stability. We love web mappingarrow-up-right and champion open sourcearrow-up-right and open dataarrow-up-right across the City of Austin.

    hashtag
    Our Mission

    We leverage high-quality data and modern technologies to empower Transportation and Public Works staff to improve operations, make data-informed decisions, and deliver excellent mobility services to the Austin community. We solve real problems for real people.

    hashtag
    Our Values

    The principles that guide us as we carry out our work

    hashtag
    Embrace change

    Business needs change; technologies evolve. We welcome new challenges and improve by adapting to and embracing change. We are stubborn about our goals but flexible in our methods.

    hashtag
    Users first and always

    We build only what people need, nothing more. User needs are the driver for all decisions. We build with our users, keeping them involved in our process through ideation, sprint reviews, demos, and usability testing.

    hashtag
    Empower great people

    Our work empowers civil servants to discover and cultivate new skills. We aim to provide opportunities for personal and professional growth and to empower the public to engage with their government through open information and collaboration.

    hashtag
    Default to open

    The residents of Austin are at the top of our org chart. We share everything we do so that we can collaborate with the public and receive critical feedback. Before restricting access to a line of code, a dataset, a design brief, or an app, we ask, “Why?”

    hashtag
    Nurture, include, and grow together

    Delivering great tech cannot come at the cost of our wellbeing. We commit to building a safe and inclusive workplace by looking out for each other, listening to each other, and advocating for each other.

    CTM Help Desk Remote Access Request Formarrow-up-right

    Installerarrow-up-right
    Instructions for installing and configuring to work in OSX Catalinaarrow-up-right

    DTS Offices

    hashtag
    8700 Cameron Road

    Aka "8700", "Cameron"

    Data & Technology Services is located at Transportation Public Works' Cameron Road location. Our offices are in 8700 Cameron Road, alongside Arterial Management offices and the Mobility Management Center.

    hashtag
    Ben White

    We have an area at Ben White for DTS Staff. Ask your supervisor before attempting to work from that location.

    hashtag
    DTS Hoteling

    • Ben White

    • Permitting and Development Center (Public Spaces)

    Using Google as a City Employee

    Using Google within these parameters ensures we comply with CTM's security protocols. We can fulfill PIRs, follow records-retention policies, and maintain access to employees' work when they leave the City.

    hashtag
    Account creation

    Employees should not use personal Google accounts for City work since all City-related email correspondence must reside in Office 365. So you will need to create a Google account with your @austintexas.gov email address that is not attached to a Gmail account:

    1. Visit .

    2. Click "Use my current email address instead."

    3. Enter your @austintexas.gov email address.

    4. Check your email, including your junk/spam folder, and confirm your account.

    Remember, never add a Gmail address to this account! It's against City policy and creates a permissions headache for your supervisor.

    hashtag
    Permissions

    All your documents should be saved within a folder owned by a shared resource account, coaatdamd@austintexas.gov. This means we can all search and access each other's files, even if someone is out of the office or leaves the team.

    hashtag
    Sensitive information

    Under no circumstances should sensitive information be stored in Google Drive. This includes and data, along with any personally identifiable information about individuals in the community.

    Working Remotely from a Mac

    There are a few special procedures and applications for City of Austin staff who want to work remotely using a Mac.

    triangle-exclamation

    hashtag
    This documentation has not been updated since CTM updated their Mac policies and procedures.

    hashtag
    Antivirus Software

    Per the , all City-owned computers must have up-to-date virus protection installed and active.

    The TrendMicro website has Mac installers and installation instructions . You will need the serial number in CTM's doc.

    hashtag
    Network Access with Cisco Secure Client VPN (formerly Anyconnect)

    You need to be on the City of Austin's internal network to access resources such as shared network drives, the HR Portal, and enterprise web applications like eCombs and eCapris. You can use Cisco Secure Client (formerly AnyConnect) to connect to the City's Virtual Private Network (VPN) when working remotely.

    hashtag
    Installing AnyConnect

    1. Download the installer by visiting .

    2. Double-click the downloaded file to open the disk image, then double-click on AnyConnect.pkg.

    3. When the installer opens, click "Continue," "Agree," and leave the defaults on for the installation type:

    4. When prompted, provide the password you use to log in to your computer, and the installation will begin. It will take a few minutes to run.

    5. Once told the installation has been completed successfully, click "Move to Trash" to delete the installer.

    6. You should now see a Cisco folder in your Applications folder. Double-click on the Cisco Secure Client to open the application.

    hashtag
    Using Secure Client

    1. Open the application. In the empty field below "Ready to Connect," enter the IP address of the City's VPN server.

    circle-info

    The IP address is sensitive information. Get it directly from your supervisor or another Mac user.

    2. Click the "Connect" button.

    2. A warning will appear. Do not check the "Always trust..." option and click "Connect Anyway."

    1. A new browser window/tab will open and you will be prompted to login to the City of Austin SSO portal. Once complete, the browser window will close and your VP

    hashtag
    Uninstalling AnyConnect

    When troubleshooting your VPN connection, you may want to wipe all installs of AnyConnect and start fresh. You can use Uninstall AnyConnect, located in the Cisco folder in Applications.

    hashtag
    Shared Drive Access

    You must access the G Drive from the City of Austin Network. If you don't have a wired connection, .

    1. From the Finder menu, select Go > Connect to Server.

    2. Enter smb://coacd.org/dfs/ATD in the Server Address field and click "Connect."

    3. You will be prompted for your City of Austin Network Username and Password. Once submitted, a Finder window will open to the G Drive.

    Slack

    We use Slack to stay in touch with our teammates. Your supervisor will provide you with an invitation to the .

    Please join Austin Transportation channels, prepended with atd. These include:

    • atd

    City of Austin Anti-Virus Policyarrow-up-right
    herearrow-up-right
    Anti-Virus for Non-COA Computersarrow-up-right
    https://coa-vpngw.austintexas.gov/connectssoarrow-up-right
    use AnyConnect

    Your Last Day

    1. Complete exit interview

    2. Turn in all hardware issued from Austin Transportation back to IT Hardware DTS Staff

    atd-data-tech - open to all City employees, default for team discussions
  • atd-data-tech-real-talk - private channel for sensitive information/conversations or those completely irrelevant to anyone else, e.g. "Turn in your timesheets"

  • atd-dev​

  • atd-product​

  • atd-standup - everyone on the DTS team posts a daily standup here

  • hashtag
    Daily Stand Up

    We keep each other up to date on our progress and blockers by posting in #atd-standuparrow-up-right every day:

    • What did you do yesterday?

    • What are you doing today?

    • Any blockers?

    It's helpful to cite specific Github issues you're working on.

    City of Austin Slackarrow-up-right
    Create your Google Accountarrow-up-right
    CJISarrow-up-right
    HIPAAarrow-up-right
    Screenshot of Google account creation page with "Use my current email address instead" link circled

    Essential Resources & Wikis

    ​Welcome to the Austin Transportation Data & Technology Services team! 👋Here's a bevy of links to get you started.​

    hashtag
    Data & Technology Services

    • Austinmobility.ioarrow-up-right — Data & Technology Services and our work

    • — Transportation and Public Works dashboards we build and maintain

    • — Service Requests, Data Inventory, Technician Equipment Tracker

    • - SharePoint site

    • - a handful of info that is too sensitive to include in this public wiki

    hashtag
    Our Wikis

    We also have end-user documentation for , , the , and

    hashtag
    Transportation Public Works

    - Intranet

    - Overview of each division's purpose and operations

    - style guides, fonts and document templates

    hashtag
    Videos

    hashtag
    Public Websites

    • - public-facing department site

    • - Transportation and Public Works' infrastructure roadmap

    hashtag
    Department Newsletters

    • - Weekly newsletter covering projects and programs related to Austin Transportation and Public Works.

    • - Monthly newsletter featuring mobility-focused events and ways to convert your car-based commute and other trips to other transportation modes.

    • - Quarterly newsletter providing project updates on Austin's urban trails program.

    hashtag
    City of Austin

    • - Bloomfire

    hashtag
    Employee Resources

    • or 512-974-4357 (4-HELP from a City phone) - CoA enterprise IT, see for details on what tech they support

    • - job postings, policies and procedures, news

    hashtag
    Staff Training

    • - free classes available through single-sign-on

    Document Storage

    We use our shared Google Drive for most of our work, but there are a few exceptions.

    hashtag
    DTS Google Drive

    We love Google Drive, Docs, Sheets, and Slides for collaborative document editing and management. Since CTM does not have an enterprise Google subscription, we follow these procedures carefully.

    Using Google within these parameters ensures we can fulfill PIRs, follow records-retention policies, and maintain access to employees' work when they leave the City.

    To prevent the proliferation of different versions of multi-editor documents, all collaborative documents are stored in a single location:

    • ​​ - ​​

    hashtag
    Windows-only File Types

    GIS files, Visio documents, and other files that can only be used on a Windows operating system are stored on the .

    hashtag
    Everything Else

    Other documents can be stored in Google Drive or our G drive, whichever is most practical for the team and customer.

    circle-info

    Be aware that anything stored on your local drive — the Windows C drive or Mac HD — is not backed up or accessible via other devices.

    hashtag
    How to Connect to Network Drives on a Mac

    You will need to be either hard-connected to the City network or . From Finder on Mac: Go > Connect to Server then type the address in the Server Address field

    • H drive: smb://coacd.org/home/PWDhome/[your username]

    • G drive: smb://coacd.org/dfs/ATD

    Welcome to DTS

    We are so happy to have you here. Let's configure some tools and ensure you have access to all the resources needed to hit the ground running. 💪👟⚡

    hashtag
    Day 1 🐣

    These are the high-priority tasks. Let your supervisor know if you are unable to complete any of them on your first day.

    triangle-exclamation

    All your passwords relating to work should be stored 1Password and only in 1Password.

    hashtag
    Week 1 🐥

    Let your supervisor know if you are unable to finish any of these during your first week.

    hashtag
    Week 3 🐓

    Unless you are a contractor, you have a few last to-dos! The HR and DTS Portals are updated every 2 weeks with employee information from the City's enterprise HR system, so wait until week 3 for these ones.

    Ask questions! Be a sponge and absorb it all! 🧽💦🌈

    Bonus: if you find broken links or missing information! 😉

  • Install the Microsoft Authenticator apparrow-up-right
    this guidearrow-up-right
    create a Github accountarrow-up-right
    Transportation Github Teamarrow-up-right
    two-factor authentication for your Github accountarrow-up-right
    Windowsarrow-up-right
    Macarrow-up-right
    Set yourself up for remote workarrow-up-right
    Set up Cameron Road printerarrow-up-right
    Windowsarrow-up-right
    Macarrow-up-right
    herearrow-up-right
    herearrow-up-right
    Telework Request Formarrow-up-right
    Take-Home Equipment Trackerarrow-up-right
    Update this wikiarrow-up-right

    Email signature templatearrow-up-right

    DTS Open Dataarrow-up-right
  • DTS Service Desk Knowledge Base (private)arrow-up-right

  • GIS Community arrow-up-right- Bloomfire

    Workdayarrow-up-right - pay, benefits, training, jobs

  • Active employee benefitsarrow-up-right (external site)

  • Municipal Civil Service rulesarrow-up-right - City of Austin rules regarding employee hiring, promotions, lateral transfers, reduction-in-force, disciplinary actions, and appeals

  • Data and Performance Hubarrow-up-right
    DTS Portalarrow-up-right
    Google Drivearrow-up-right
    Document templatesarrow-up-right
    Slides templatearrow-up-right
    Docs templatearrow-up-right
    Division intranetarrow-up-right
    Private GitBook pagearrow-up-right
    DTS Devarrow-up-right
    DTS Knack Operationsarrow-up-right
    DTS Geospatialarrow-up-right
    Signs & Markings Trackerarrow-up-right
    SXSW Command Centerarrow-up-right
    TPW Sharepointarrow-up-right
    TPW Divisions and Officesarrow-up-right
    TPW Org Chartsarrow-up-right
    TPW Brandingarrow-up-right
    Inside Austin Transportation and Public Worksarrow-up-right
    Walk Bike Rollarrow-up-right
    Austin Transportation and Public Worksarrow-up-right
    Austin Strategic Mobility Planarrow-up-right
    Austin Mobility Newsarrow-up-right
    Get There ATX Newsletterarrow-up-right
    Urban Trail Mixarrow-up-right
    Org chartarrow-up-right
    Open Data Portalarrow-up-right
    Open Data Communityarrow-up-right
    CTM Service Requestarrow-up-right
    Sharepointarrow-up-right
    Official City of Austin holiday schedulearrow-up-right
    City Intranetarrow-up-right
    City of Austin LinkedIn Learningarrow-up-right
    Document templatesarrow-up-right
    DTS Google Drivearrow-up-right
    ​account setuparrow-up-right
    ATD departmental network G drivearrow-up-right
    connected via VPNarrow-up-right

    Team Lead Checklist for New DTS Team Members

    circle-info

    Team leads are responsible for tracking new team members' onboarding in Github:

    Create an epic "Onboard [Name]" with two issues:

    • "Perform DTS Team Lead onboarding tasks," assigned to yourself and the new team member's supervisor—i.e. the person who will sign their timesheets. Copy and paste the checklist from this page into the issue body.

    • "Perform DTS onboarding tasks," to assign to the new team member once they have a Github username. In the meantime you can direct them to the Gitbook page.

    • Add these checklists into the issue bodies. If you have issues with formatting, you can take these steps:

      • Copy text below

      • Convert it to Markdown using

    hashtag
    Hardware & Office

    hashtag
    Network Account & Distribution Lists

    If the employee is using city-issued equipment, submit a New Employee Request Form. Otherwise, use submit a Third-Party Remote Access Request Form.

    hashtag
    New Employee Request Form

    hashtag
    Third-Party Remote Access Request Form

    For a full (18 page) explanation of this process, refer to . In short:

    hashtag
    Next Steps

    After the network account is created and you have their @austintexas.gov email address:

    After they've created their Google and Github accounts:

    After they notify you that they've uploaded their :

    After they notify you that their Miro account was created:

    Once HR has added regular/temp employees to the UKG timekeeping system, their supervisor—Peggy, Amenity, or Diana— must:

    chevron-righthashtag

    Index Issue Specifications

    We use "index" Github issues to centralize information about each of our projects and products. It is critical that these issues follow a standard labeling scheme and content format so that DTS' project dataarrow-up-right is accurate, team members work is coordinated and efficiently tracked, and we have an accessible, high-level view of the project/product on the DTS Websitearrow-up-right.

    circle-info

    Create a new Project or Product Index by selecting the appropriate issue templatearrow-up-right from the atd-data-techGithub repository.

    hashtag
    Project Index

    All projects which have been scoped require a project index issue to be placed in the appropriate Zenhub pipeline. The issue title, description, and labels should follow the below guidelines.

    hashtag
    Title

    The issue title should be prefixed with Project: . For example, Project: Warehouse Inventory Management.

    hashtag
    Labels

    • Project Index

    • Project: xzy — A project-specific label that you will create, following our

    • Workgroup: xyz

    hashtag
    Assignees

    All DTS team members who contributed substantially to the project, including at least one product manager or team lead.

    hashtag
    Description

    Follow the issue template.

    hashtag
    Image

    See below.

    hashtag
    Product Index

    All products require a product index issue to be placed in the appropriate Zenhub pipeline. Once a product has been released, it should be placed in the Ongoing pipeline indefinitely until it is removed from service. The issue title, description, and labels should follow the below guidelines.

    hashtag
    Title

    The issue title should be prefixed with Product: . For example, Product: Data Tracker

    hashtag
    Labels

    • Product Index

    • Product: xzy — A product-specific label that you will create, following our

    • Workgroup: xyz

    hashtag
    Assignee

    The product manager.

    hashtag
    Issue description

    Follow the issue template.

    hashtag
    Image

    See below.

    hashtag
    Index Issue Images

    All projects and products should have at least one image so that missing thumbnails don't disrupt the website design. We prefer these thumbnails options:

    • A or other of the data generated in the app

    • Photos of the project/product's or the related /; the is a fantastic source for these. We also have a you can add to or use.

    • A

    Please avoid using

    • Full-screen screenshots or large diagrams as the first image - these don't render well in tiles. if they are helpful way to communicate the work.

    • Vendor logos - these doesn't give any information about the platform or use case and promote a commercial companies

    The image should be at least 1000px wide, with a 3:2 aspect ratio. makes it easy to crop/resize as needed.

    Project Delivery Workflow

    Productsarrow-up-right are the solutions we build for our customers, including Knack apps, AMANDA apps, custom software, and data systems. We improve and extend our products over time so that they deliver continuous value to Austin Transportation as business needs evolve.

    Projectsarrow-up-right are time-boxed endeavors. They accomplish a singular goal and have a defined completion date. Examples include:

    • Recommending an off-the-shelf externally-supported solutionarrow-up-right

    • Delivering the first iteration (MVP) of a new DTS product

    hashtag
    Project Initiation

    Oftentimes, our customers initiate a project by submitting a DTS service request that is notably large and/or important.

    A DTS team member may also create a project when there is significant work to be done on an internal product—such as , , or .

    In either case, we begin by verifying that all our DTS project prerequisites are met:

    • Dedicated product owner to support requirements gathering, user research, and user onboarding

    • Division Manager sponsor to champion the project at the executive level

    • A commitment from the customer to collaborate in DTS's iterative, user-centered development process

    Then either or convert the existing issue to match the . Either way, make sure that the 'Project Index' label is on the issue so that an evaluation record for the project is added to the DTS Portal and it appears on the website.

    circle-info

    Don't worry about building out a robust project index before scoping the request. Just make sure the name and description (the first 1-2 sentences) are good and that it has all the right labels. You can comment out the rest of the template to fill out when you have more information.

    Move the issue to the "Needs Scoping" Zenhub pipeline.

    hashtag
    Scoping

    • PM schedules an intake meeting. Ideally, this will include actual users as well as the workgroup manager.

    • Prepare .

    • Meet and take notes; photos/recording may also be helpful.

    hashtag
    Builder Huddle

    • PM sets up meeting with potential builders, e.g. Dev for a Vision Zero Viewer project, Apps for a ROW Portal project. If we aren't sure which route we'll go or the solution will require both, add to the to discuss.

    • Prepare a summary of request. Here's an ().

    • At the meeting, discuss the recommended approach and fill out the "Effort" section of the .

    circle-info

    Sometimes we realize that the request isn't actually project-sized during the intake meeting or the builder huddle. No worries, we had a good opportunity to learn more about our customers' work. Might make sense to organize this work as an , once the time comes.

    hashtag
    Product Sync

    After assessing effort with the builders, it's time to assess value with the product team.

    • Add to for a "Refinement-week", i.e. the second Wednesday in a sprint. If feedback is needed sooner, or the project was initiated internally (like work on our technical infrastructure), bring it to instead.

    • As a group, fill out the "Value" section of the .

    After the evaluation is complete, the Austinmobility.io script will pick them up and you will be able to see the project in relation to other projects in our backlog using the .

    Move the index issue into the "Backlog" pipeline.

    hashtag
    Prioritization

    hashtag

    Google presentation used for Product Ops onboarding and TPW Executive communications.

    hashtag
    Working docs

    hashtag
    Activation

    Once the time comes to work on the project:

    • Move the issue to the "In Progress" pipeline.

    • If you don't already have regular Sprint Reviews with the project's stakeholders, set up recurring meetings for the duration of the project so that you can demo work and get feedback.

    • Create a folder in the Projects/Products DTS Drive.

    • Convert the project index issue into an epic and assign future issues to the epic moving forward. Zenhub allows you to nest epics or assign issues to multiple epics, so feel free to use that functionality if you find it helpful.

    • Ensure that everyone who has stake in the project, from potentially impacted staff to interested executives, is aware the project is moving forward. Invite stakeholders to come to sprint reviews and/or participate in user research. Ask them who else should be included.

    • Optionally, hold a with your stakeholders.

    hashtag
    Delivery

    • Perform requirements gathering with users. We often begin with and store requirements either as for in-house applications or in a software comparison matrix for off-the-shelf solutions.

    • Document bugs, feature requests, and enhancements as Github issues. You may want to encourage your users to contribute using the .

    circle-info

    When you click the "New Issue" button in the upper righthand corner of most pages in Github, you'll find issue templates for bug reports, features, and enhancements. You have to scroll to the bottom of the page and click to the "Open a blank issue" link to get a plain issue. To skip all that, bookmark the and add it to your browser bar.

    • Work with the team lead—via Github comments or in a planning/refinement/sync meeting—to assign an to each issue. Zenhub's is also a fun way to estimate asynchronously.

    • Bring complex issues to Backlog Refinement ( | ) to discuss with builders. Break them up into smaller issues as necessary, document the agreed-upon approach, and align on an .

    • Prioritize work with stakeholders during Sprint Reviews.

    hashtag
    Completion

    A project is considered complete when the minimum viable product—captured in the "Scope and Deliverables" section of the issue's project index—is delivered to users.

    circle-info

    For complex projects, you might consider making an "Onboarding and Stabilization" epic in the project to capture any critical bugs documentation needs that surface during roll out and keeping the project open until those issues are addressed.

    • Often, there are still issues in the backlog that are not actually must-haves. Remove the project label, remove them from the epic, and review them the next time you meet with stakeholders so they can prioritize those against any of their other ongoing requests.

    • Retire the project label by adding "[Archive]" to the "Description" field and update the hex code to #B8B8B7.

    • Write a final update as a comment on the index issue and close the issue.

    • By default, completed projects show on of the website, but you can apply the Archived Project label to prevent that. We like to curate this page to showcase our most compelling, impactful, and well-documented work.

    Release Process

    This is the general process we use to release new code to one of our custom applications. The Apps team has defined a separate, specialized process for deploying custom code in Knackarrow-up-right.

    • The Product Manager & Dev Lead collaboratively plan what issues will be included in the release

    • The Dev Lead ensures that all issues are assigned, completed, and tested before the release

    • After a pull request is reviewed by several devs, the PM reviews and adds any new functionality to the QA test script

    • The Dev Lead creates a single pull request that includes the scope of the release Example:

    • The Dev Lead cleans up release notes Example:

    • The release branch is deployed to Staging and the PM performs QA testing

    • The PM notifies users of scheduled downtime

    • Release party 🎉

      • PM merges pull request

      • Dev Lead notifies #atd-dev that the pull request has been tested, approved, and merged

    Application-specific versions of this process are written as issues so they can be tracked collaboratively for each release. Example:

    Dockless-Mobility

    This page contains technical details related to our management of dockless mobility data (e-scooters, bicycles, etc).

    hashtag
    Mobility Data Specification (MDS)

    We require dockless mobility operators to provide us with real-time trip reporting feeds in compliance with the .

    Offboarding Checklist

    hashtag
    IT Permissions and Access

    DTS Website Management

    We use the Data & Technology Services website, Austinmobility.io, to showcase our work and communicate with stakeholders. The content is driven by Github, Zenhub, and the DTS Portal.

    hashtag
    Basics

    An issue will appear on the or pages if it:

    Docker

    We use to manage runtime environments. Our Docker Hub is .

    hashtag
    Useful Commands

    Start docker engine

    View all images

    Show running containers

    Copy ☝️ and use Text Cleanerarrow-up-right to replace bullet points with task lists. Find "- "and replace with "- [ ] "
    Add them to all relevant Slack channels and introduce the new team member to everyone in the main DTS channel.
  • Welcome to DTS
    Paste to Markdownarrow-up-right
    New Employee Request Formarrow-up-right
    CTM's Third-Party Remote Access Request Quick Reference Guidearrow-up-right
    City of Austin Third-Party Remote Access Connection Acceptable Use Agreementarrow-up-right
    Third-Party Remote Access Request Formarrow-up-right
    add the new team member to 1Passwordarrow-up-right
    City of Austin Slackarrow-up-right
    DTS SharePointarrow-up-right
    DTS Google Drivearrow-up-right
    Transportation Github teamarrow-up-right
    City of Austin Github organizationarrow-up-right
    City of Austin Zenhub organizationarrow-up-right
    headshotarrow-up-right
    DTS Orientation presentation team slidearrow-up-right
    the Austin Transportation and Public Works Miro teamarrow-up-right
    PM sends release notes to stakeholders and users
  • Team debriefs on the process and updates the steps as needed

  • Dev Lead creates an issue for the next release

  • https://github.com/cityofaustin/atd-vz-data/pull/496arrow-up-right
    https://github.com/cityofaustin/atd-vz-data/releasesarrow-up-right
    https://github.com/cityofaustin/atd-data-tech/issues/16094arrow-up-right
    — the project stakeholder workgroups
    — the workgroup(s) of the product's primary users

    For mobile-focused apps, we have a templatearrow-up-right to show off the application on different devicesarrow-up-right​

    project label conventionsarrow-up-right
    Project Indexarrow-up-right
    product label conventionsarrow-up-right
    Product Indexarrow-up-right
    maparrow-up-right
    visualizationarrow-up-right
    end users at workarrow-up-right
    hardwarearrow-up-right
    servicearrow-up-right
    TPW Flickr feedarrow-up-right
    stash of nice photosarrow-up-right
    close-up screenshot of a unique part of the UIarrow-up-right
    Include these later on in the issuearrow-up-right
    This toolarrow-up-right
    Index Issue Images
    Index Issue Images

    Add notes/photos/recording to Github issue.

  • If necessary, update issue description to ensure it clearly summarizes request.

  • Create a Project: label in Githubarrow-up-right. Fill out the "Description" field and use the hex code #3D3D3D for "Color." Use this label for all issues moving forward so that they render on the projects' website page and are easy to surface on Zenhub/Github.
  • Fill out the rest of the project index including background, outcomes, timeline, etc. Add these headings to the issue:

  • If practical, release versions of an application on a regular basis.

  • Perform usability testing to surface improvements to the user experience. Since we don't have dedicated user researchers at DTS, we love think-aloud usability testingarrow-up-right for its simplicity and depth of insight. Here are some think-aloud test plansarrow-up-right we've done. It's handy to record sessions on Teams so that you can expand on your notes, embed screenshots/clips in issues, etc.

  • Building a major feature for an existing DTS projectarrow-up-right
    Refactoring a datasetarrow-up-right
    Delivering a complex maparrow-up-right
    updating Austinmobility.ioarrow-up-right
    a technical refactor of the Vision Zero Databasearrow-up-right
    migrating our CCTV image service from a local server to the cloudarrow-up-right
    create a new project index issuearrow-up-right
    project index templatearrow-up-right
    Intake Meeting Agendaarrow-up-right
    Dev/Product Sync agendaarrow-up-right
    example done as a presentation deckarrow-up-right
    templatearrow-up-right
    project evaluation in the DTS Portalarrow-up-right
    epic
    DTS Product Sync agendaarrow-up-right
    Dev + Product Syncarrow-up-right
    project evaluation in the DTS Portalarrow-up-right
    prioritization matrixarrow-up-right
    Project Prioritization Process as of 5/24arrow-up-right
    Project Prioritization workflowarrow-up-right
    DTS + OPM workflowarrow-up-right
    kick-off meetingarrow-up-right
    user interviewsarrow-up-right
    user storiesarrow-up-right
    DTS Service Requestarrow-up-right
    direct link to the blank issue formarrow-up-right
    estimatearrow-up-right
    Planning Pokerarrow-up-right
    Appsarrow-up-right
    Devarrow-up-right
    estimatearrow-up-right
    "Complete" tab on the “Projects" pagearrow-up-right

    Show all containers

    Build image from Dockerfile

    Run docker container in interactive mode and mount local volume inside container:

    Start docker with docker-composearrow-up-right:

    hashtag
    Update Docker Image on Docker Hub

    1. Build the new image and tag with a new version number. Suppose your image name is atddocker/my-image:

    1. Push to Docker Hub:

    Dockerarrow-up-right
    https://hub.docker.com/u/atddockerarrow-up-right
    ## Scope & Deliverables
    
    What are we delivering? What’s in scope, and what isn’t? Describe constraints you’re working with, e.g. “Can’t impact **\_**‘s workflow,” known roadblocks.
    
    ## Desired Outcomes
    
    Impact this project can have, success metrics
    
    ## Timebox
    
    How long should this take to build; optional section w/ caveats for more complex projects.
    
    ## References
    - Google Drive link 
    sudo systemctl start docker
    sudo docker images
    sudo docker ps
    sudo docker ps -a
    docker build --no-cache -t my-docker-image-name .
    sudo docker run -it -v /home/liangz:/app --rm -w /app/transportation-data-deploy atddocker/tdp bash
    sudo `which  docker-compose` restart
    docker build --no-cache -t atddocker/my-image:2.0.1 .
    docker push atddocker/my-image
    hashtag
    Data Capture

    We collect dockless trip records from each provider using a Python mds client which stores processed data in a Postgrestarrow-up-right database.

    • transportation-dockless-processingarrow-up-right

    • MDS Provider Clientarrow-up-right

    hashtag
    Public Trip Records and Privacy

    We believe strongly that we do our best work when we work openly. It’s why we’ve built all of our reporting infrastructure on top of open data, and we’re continuing that practice with dockless mobility data.

    We publish anonymized dockless trip records to our open data portal on an hourly basis. The dataset is herearrow-up-right.

    We have been very thoughtful about how we are approaching the release of this data. We are following the recommendations outlined in the Civic Analytics Network’s recent open letterarrow-up-right, which was signed by Chief Data Officers and industry experts across the country.

    Specifically, our trip records:

    • Do not include any vendor-provided identifiers. The trip IDs and device IDs in our dataset are completely arbitrary and cannot be traced to a specific operator.

    • Have start and end times rounded to the nearest 15 minutes.

    • Use latitude and longitude values rounded to three decimal degrees (roughly the area of a city block).

    hashtag
    Reporting Dashboard

    You can view monthly dockless trip summaries herearrow-up-right

    This is a public website that pulls directly from our public datasets. Here's the source codearrow-up-right.

    hashtag
    Trip Explorer

    We have built an interactive web map which visualizes where dockless trips are starting and ending. We’re calling it the Dockless Data Explorer, available at dockless.austintexas.ioarrow-up-right.

    hashtag
    Open Source

    The source code for our dockless mobility tools is freely available in five repositories (and counting):

    • Dockless Data Processingarrow-up-right

    • Transportation Datahubarrow-up-right

    • Dockless APIarrow-up-right

    hashtag
    Reporting Queries

    Here are some handy queries for fetching dockless data summaries from the Open Data Portalarrow-up-right

    hashtag
    Scooter and Bike trips by Month/Year*

    hashtag
    Dockless Trips by vehicle type and month/year*

    *Denotes that the query includes a filter for min/max distance (.1 miles / 500 miles) and max time (24 hours)

    hashtag
    Dockless Trips by Day

    The where clause can be modified to specify year and month. This selects february and march 2019 date_extract_m(start_time) in (2, 3) and date_extract_y(start_time) = 2019

    mobility data specificationarrow-up-right

    Amenity or Diana must complete

    Vision Zero Editor

    Moped

    Knack Applications

    Apps Team member must complete

    Amenity, Frank, Diana, or Tracy must complete

    Reassign

    Amenity or Frank must complete

    Google Drive

    Fill out

    Supervisor must complete

    DTS email distribution list

    Remove after SERF is processed

    Create Github issue for

    hashtag
    Recover organization assets

    Review Equipment Checkout form submitted

    Name

    Type

    Badge access

    General access

    Parking sticker

    General access

    Laptop

    Hardware

    Docking station

    Hardware

    Monitors (if applicable)

    Hardware

    hashtag
    Exit Interview

    1. Schedule exit interview

    2. Complete exit interview

    3. Analyze interview and retrieve insights

    hashtag
    Transfer of Ownership

    1. Make sure stakeholders know who to contact, that projects and products have been re-assigned

    2. Give stakeholders status report of all ongoing projects

    3. Gather list of outstanding tasks

    4. Know where important files, documents, resources are located

    5. Inform Diana and Karo to update the Service Desk documentation and calendar.

    To Do

    Notes

    1Passwordarrow-up-right

    Diana must complete

    Slackarrow-up-right

    Diana or Amenity must complete

    Has a "Product: xyz" or "Project: xyz" name
  • Has the "Product Index" or "Project Index" label

  • hashtag
    Tiles

    Each project or product is rendered as a tile using content from the index issue:

    Various Github content is used for the project/product "tiles"

    hashtag
    Issues and activity

    All issues with the Product: label for a given product will be rendered on the Issues tab (examplearrow-up-right) and all comments on the project/product Index issue itself will show on the Activity tab (examplearrow-up-right).

    hashtag
    Evaluation

    In order for the Evaluation tab (examplearrow-up-right) to render correctly, the project must have an evaluation completed in the DTS Portalarrow-up-right.

    Once an issue is labeled Project Index, it will automatically be added as a project in the DTS Portalarrow-up-right.

    If your project is not listed in Knack, the ETL may not yet have run. You can manually create a new entry in Knack, just make sure you provide the correct github issue # when creating the entry. The ETL will overwrite any project name you supply manually.

    You can manually create a project if your project is not listed

    hashtag
    Evaluating effort

    Product Managers work with builders—the Apps, Dev, Data Science, or Geo teams—to assess the level of effort for a project.

    hashtag
    Evaluating value

    A project's predicted value is added to the Product Sync agendaarrow-up-right so that the Product team can review it as a group and determine a score together.

    Projectsarrow-up-right
    Productsarrow-up-right

    PostgREST

    We use PostgRESTarrow-up-right to generate APIs for our PostgreSQL databases.

    • Waze CCP Feed Incident Archivearrow-up-right

    • Job Historyarrow-up-right

    • [CoA Public Safety Traffic Incident Reports)[]

    Python

    hashtag
    Install package in editable mode

    From parent directory of package:

    $ pip install -e <your package name>

    hashtag
    Updating and Publishing Packages to PyPi:

    See

    1. Your python envrionment will require the following pacakges:

    2. Update the number in the package's setup.py.

    3. From the same directory as setup.py build the new version:

    Product Manager Portfolios

    hashtag
    Divisions

    hashtag
    Products

    https://data.austintexas.gov/resource/7d8e-dm7r.json?$query=select avg(trip_duration)/60 as avg_duration_minutes, sum(trip_distance) * 0.000621371 as total_miles, avg(trip_distance) * 0.000621371 as avg_miles, count(trip_id) as total_trips, date_extract_m(start_time) as month, date_extract_y(start_time) as year where trip_distance * 0.000621371 >= 0.1 and trip_distance * 0.000621371 < 500 and trip_duration < 86400 group by year, month
    https://data.austintexas.gov/resource/7d8e-dm7r.json?$query=select vehicle_type, avg(trip_duration)/60 as avg_duration_minutes, sum(trip_distance) * 0.000621371 as total_miles, avg(trip_distance) * 0.000621371 as avg_miles, count(trip_id) as total_trips, date_extract_m(start_time) as month, date_extract_y(start_time) as year where trip_distance * 0.000621371 >= 0.1 and trip_distance * 0.000621371 < 500 and trip_duration < 86400 group by vehicle_type, year, month
    https://data.austintexas.gov/resource/7d8e-dm7r.json?$query=select vehicle_type, avg(trip_duration)/60 as avg_duration_minutes, sum(trip_distance) * 0.000621371 as total_miles, avg(trip_distance) * 0.000621371 as avg_miles, count(trip_id) as total_trips, date_trunc_ymd(start_time) as date_ where trip_distance * 0.000621371 >= 0.1 and trip_distance * 0.000621371 < 500 and trip_duration < 86400 and date_extract_m(start_time) in (2, 3) and date_extract_y(start_time) = 2019 group by vehicle_type, date_trunc_ymd(start_time)
    Dockless Datavizarrow-up-right
    MDS Provider Clientarrow-up-right
    Micromobility Dataarrow-up-right
    https://data.austintexas.gov/Transportation-and-Mobility/Real-Time-Traffic-Incident-Reports/dx9v-zd7xarrow-up-right

    Upload the new version to PyPiarrow-up-right. (You'll be prompted to enter your username/password):

    Packaging Python Projects (python.org)arrow-up-right
    semantic versionarrow-up-right
     $ twine upload dist/*
     python=3
     setuptools
     twine
     $ python setup.py bdist_wheel --universal

    Desk riser

    Office equipment

    Chair

    Office equipment

    Miroarrow-up-right
    Transportation GitHub organizationarrow-up-right
    open Github issuesarrow-up-right
    Gitbookarrow-up-right
    Zenhubarrow-up-right
    Separated Employee Request Form (SERF)arrow-up-right
    About Us pagearrow-up-right
    DTS Orientation Slidesarrow-up-right
    TDS Operationsarrow-up-right
    Moped
    DTS Knowledge Base triage informationarrow-up-right