align:right

SAS AF/SCL Modernisation

align:right

About 4GL Apps

SAS App Migration, Modernisation & Manifestation

Products Services Customers
SASjs - DevOps for SAS SAS 9 SPWA Migration Europe
SASensei - 5000 players AF/SCL + SAS IntrNet Modernisation UK
Data Controller for SAS SAS App Development Canada
align:right

AF/SCL

  • AF + SCL
  • Catalog Centric
  • Manual Deployment
align:right

Modern Apps

  • JS + SAS
  • GIT / DB Centric
  • Continuous Integration
align:right

SASjs Workflow

align:right

Pain / Gain

Pain Gain
SECURITY End user identity, embedded passwords.. SASLogon, LDAP, SSO
SCALABILITY Messy, Manual, Desktop Deploys CI/CD to cloud instance
SUPPORT Highly specialist, customer specific Commodity Skill, Industry Standard Frameworks
align:right

Project Objections

Topic Suffering
❌ Inertia App worked fine for decades. Why change it?
❌ Resource Availability We're all super busy and the developer quit in 2003. Documentation? Ha!
❌ Scope Uncertainty Theres so much code & complexity, this project is guaranteed to cost more and take longer
❌ House of Cards Our data is sensitive, and our infrastructure brittle - systems access is also super difficult to obtain
align:right

Rebuffals

Topic Prognosis
Inertia ✅ Vastly superior UX and lower maintenance / upgrade costs
Resource Availability ✅ Code review + carefully planned video interviews for minimal customer impact
Scope Uncertainty ✅ Phase 0 estimation followed by regular (functional) production deliveries
House of Cards ✅ Deliver offsite with sample data
align:right

Success Factors

🎯 Business WANTS the upgrade
🎯 IT support for regular deployments
🎯 Internal champion(s) on daily calls & milestones

align:right

SASjs Tools

  • sasjs/cli - commands include sasjs deploy, sasjs test and sasjs doc
  • sasjs/adapter - clean & robust JS <-> SAS connectivity
  • sasjs/core - hundreds of open source macros for Application Development
align:right

More Tools

align:right
       SCLssssssssssssssssssssssssss

SCL Kit

Functions

align:right

SCL Kit

Submit Blocks

align:right

SCL Kit

Object Methods

align:right

SCL Kit

Method Blocks

align:right

SCL Kit

After / Before

align:right

SAS/FSP

  • FSBROWSE: View one record at a time
  • FSEDIT: Edit one record at a time
  • FSVIEW: View or edit a table of data

Much of the above functionality is available in Data Controller for SAS®. The remaining parts are fairly trivial to build as standalone web apps.

align:right

Project Approach

  • Preparation (pre-sales)
  • Initial Proposal (pre-sales)
  • Phase 0 (estimates and initial interface)
  • Phase 1-N (milestone deliveries)
  • Testing & Warranty (X days over X months)
  • Support / SLA Proposal (IF preferred vendor)
align:right

Preparation

To prepare a meaningful proposal, we must know what we are proposing!

  • Scan code + logs
  • Review docs + process notes
  • 1 or 2 Recorded Interviews
align:right

Initial Proposal

  • Vendor Neutral - make clear that customer or ANY vendor can maintain, no lock-in
  • Tailored to Customer (preparation stage)
  • Full Details of:
    • Delivery Team
    • SASjs Framework
    • Project Approach
align:right

Phase 0

Duration - 1 or 2 weeks depending on project size. Outcome - a document, plus a basic app that can be immediately deployed.

  • Detailed Plan + Estimates + ARIaD
  • Environment setup (driven from GIT repo)
  • Basic Interface with integrated docs
  • Initial services, tests, CI/CD
align:right

Subsequent Phases - Functional

  • Daily Calls
  • Deliver early, deliver often
  • Documentation (user, admin guides)
  • End of Phase demonstration
align:right

Subsequent Phases - Backend

  • SCL elimination
    • Stateless SAS Jobs & Web Services (STP / JES)
    • SCL Transcoding where necessary
  • Catalog elimination
    • SLISTs -> Database
    • Code -> Source Control (GIT)
  • Tests (sasjs test, test data)
  • Documentation (sasjs doc + user / developer guides)
align:right

Subsequent Phases - Frontend

Working from inputs/outputs defined in SAS Service Header

  • Tests (specs + cypress)
  • Documentation (TypeDoc + Developer docs)
  • Accessibility Requirements
align:right

Testing

Continuously delivered - NOT at the end of the project

align:right

Documentation

Continuously delivered - NOT at the end of the project

align:right

Testing & Warranty

align:right

Resources

15-30 minute daily standups mandatory what use and what DON'T use offsite generally means MUCH faster iterations