Date post: | 16-Jul-2015 |
Category: |
Documents |
Upload: | joseph-janecka |
View: | 36 times |
Download: | 0 times |
Software Design Principles
SAINBAIN LLC
March 2015
Overview
SAINBAIN’s design principles provide a high-level overview of our software design practices and processes. This document will address our:
• Agile Delivery Approach
• Agile Management Process
• Use Case Development
• Coding Approach
Agile Delivery
ProductionDeploymentDevelopment Test
Plan Code Build Test Release Deploy Operate
Agile Development
DevOps Phase 1 Continuous Development
DevOps Phase 2Continuous Delivery
DevOps Phase 3Continuous Improvement
Develop, QA, Deploy & IT Operations
Develop, QA &Deploy/Release
Developers & QA
Developers
AGILEDevelopment
Project
Product
Services
ITIL
BSM
Core Delivery Principles
• Focus on short, quick iterations• Priorities set by immediate
business value• Continuously integrating user
feedback is central to prioritization
• Releases can be frequent (daily) or sprint based (2 to 4 weeks)
• No release is approved without adequate internal and user documentation
• Deployment must integrate with configuration and change management
Agile Management Process
Management Principles
• Daily scrum and corrective actions reviews
• Developers and Analysts share responsibility for Requirements
• Leverages Requirements Backlogs and Continuous User Experience as well as Functional Testing
• Utilize code automation where feasible
• Focused on rapidly delivering a Minimum Viable Product
Use Case Development
Requirement Use Case
Application Single Sign On
API
By enabling an API to provide a single identity management
layer not only streamlines support for system to system
communications, but will reduce complexity and support
costs for end-users.
Application Infrastructure
API
Utilizing cookbooks from Puppet or Chef, developing an
infrastructure API layer that communicates with the
application. This layer allows for inline interrogation of
infrastructure performance and would allow the application
service to be re-provisioned, moved or automatically
expand/contract the server infrastructure based on near real-
time performance and monitoring data to enable self-healing
and autoscaling service capabilities.
CRM API Creating an API layer that supports direct integration to CRM
systems such as Salesforce, Microsoft Dynamics, Deltek CRM
and other systems would help streamline monitoring and
CRM administration activities which would translate to lower
administrative costs.
Use Case Development Approach
• Requirements should be kept simple and singular
• Use cases should clearly state all potential uses for the requirement
• Scope of use case may extend beyond the internal system boundary (to support integration)
• Use cases must be realistic and provide direct business value
• Use cases should drive implementable code
• Use cases must describe who or what utilizes the requirement as well as system dependencies
Common Services
Coding Approach
Core Modules
User Interfaces
Business Logic / LOB Entities
Data Models
• Authentication• Input Filtering• User Roles• Module
Permissions• Content
Management
• Shared APIs• Offline / Online
Contexts• Notification /
Workflow Engines
• HTML 5• JSON• JQuery• Angular
• Work Assignments
• Business Objects
• Data Structure• Data Integration /
replication interfaces
• DataReader API• DataImport API• DataExport API
For More Information
SAINBAIN’s staff is ready and waiting to assist with your software development needs. Whether it is creating custom applications, existing enhancing systems or providing software program management and leadership, we’re here to help.
Joseph JaneckaVice President, Operations
SAINBAIN LLC703.861.8123