Presentation - School of Computer Science

advertisement
Ebor Computing
9 August 2007
Program
Bill Cumpston
Commercial Issues
Andrew Robb
Working with Defence
Tour
David Bryce
Working in the commercial world
Nick van Heeswyk
Software Development
Commercial Issues
Surviving despite government support
Legal Structure
People
Generally look for
Graduates — computer science,
mathematics, science …
Don’t expect graduates to be ‘work
ready’
For Defence clearance
Must be an Australian citizen
Must have a background checkable
for the past 10 years
Service v Product
Paid by the hour
‘time and materials’ or ‘cost plus’
Service
_
Paid to produce something
No continuity
Own the product
Product
Need to persuade people to buy it
+
More profitable if successful
Where does the work come from?
Defence Science and Technology Organisation (DSTO)
Research and development support
Service
Typical contract is 3 to 9 months for 1 to 2 people
Defence Materiel Organisation (DMO)
Product
Typical contract is 1 to 3 years for 5 to 10 people.
Royal College of Pathologists Quality Assurance Programme
Product
SmartMove taxi dispatching system
MedFePS fee-for-service payments to doctors
Requirements
Requirements
Cashflow
Reliability
Fault diagnosis
Evolution
Driven by sales
Conclusions
Big bang solutions don’t work
Reliability, but people will tolerate faults
No single answer
Can’t survive on handouts
The Defence World
Feeding hungry Software Engineers with
crumbs from Dr Nelson’s table
Defence Materiel Organisation
Large
Reasonably homogeneous
Very process driven
Currently REALLY BIG on schedule: ‘Schedule is King’
Defence Science & Technology Organisation
Moderately large
Non-homogeneous
Less process driven than DMO
Jobs range from “bodies” to finished applications, but all there as
tools for their research
Getting work
Getting the client’s attention
Informal discussions through personal contact
Unsolicited proposals
ROI, RFT/RFQ (Open, Confined, Sole Source)
Gazette (AusTender “Approach To Market”)
Conferences, Tradeshows & general marketing
(Contract Change Proposals)
RETURN BUSINESS!
Getting into contract
ASDEFCON (RFTs etc.)
Strategic Material, Complex Material (High/Low Risk),
Support, Services, Standing Offers for Goods/Services
Preferred tender >> contract negotiation
Be vigilant for scope creep and risk-shifting
Requirements, requirements, requirements!
Standards for Development of Software-Based Systems
ISO/IEC12207
MIL-STD-498 (obsolete)
Developed in reviews/Captured in documents
System Requirements Review, Preliminary Design Review,
Detailed Design Review
Concept of Operations, Functional Outline (tender), Functional
Requirements Document, System/Subsystem Specifications,
Module and Interface Specifications
Management
Requirements Traceability Matrix
Verification Cross Reference Matrix
Functional and Physical Configuration Audits
Functional Performance (Test & Evaluation outcomes)
Negotiating a contract
Intellectual property
Typically they will want to own it all, but it is negotiable
GFE (Government Furnished Equipment)
This is their main exposure to excusable delay
Emergent work rates
CCPs, follow-on support
Deliverables and payment schedules
30 days minimum, look out for review process delays
Third parties
‘Prime Contractors’, sub-contractors, DSTO (in DMO contracts)
Multiple Stages vs Multiple Tenders
Concept Demonstrator, FSED, production
Schedule is king
System Engineering progression
System Requirements Review
Preliminary Design Review
Detailed Design Review
T&E progression
Configuration Audits
Factory Release Testing
Acceptance Testing
Q&A progression
Audit schedule & execution
Project management progression
Effective Date
Routine Progress Reviews
Project Completion
Schedule is king
Stage 3 Schedule Summary
2005
Sep
Oct
2006
Nov
Dec
Christmas
Break
Jan
Feb
Mar
Australia
Day
Apr
Easter
May
Jun
Jul
Aug
Anzac Day
Acceptance
Testing
Build 1
Build 2
Build 4
FRT
System at 203L
Early
Hardware
Long Lead
Hardware
Internal Design Review #2
Main
Hardware
Detailed Design Review
System Review and
Stage 3 Review
Stage 4 Changes ?
Build 3
FRT Dry Runs
Business operating processes
Quality assurance
ISO 9000 series. Quality Management Systems
Capability Maturity Model Integration (CMMI)
Project management & paperwork
Scheduling and Effort Tracking
Microsoft Project, worker time sheets etc
Documentation & Drawings
Microsoft Office, AutoCAD compatible vs esoteric (eg. *tex)
Data Item Descriptions (DIDs )
Requirement for processes and standards
Company baseline
Contract by contract: be adaptable
Military software-based systems evolution
Specialised Military Hardware >> COTS
Windows vs Non Windows (e.g. Linux), Linux vs Unix
General Purpose vs Specialised & Embedded Processing e.g.
ASIC, DSP, FPGA, custom processing boards
Analog to Digital
‘Tech Refresh’ vs software upgrades
Physical & IT security issues
‘System Integrators’
Feast and famine
Extended periods of waiting, with occasional development of “proposals”
and “outlines”, usually at no cost to the client
Tender process and subsequent contract will want to be started “yesterday,
if possible”
Follow on work is never guaranteed
Defence requirements change, even in a defined project
People move on, and their position gapped for extended periods
So:
Pay attention to getting the next job(s)
If possible, have some diversity and manage the overlaps
Ebor and Defence
‘Meet their expectations’
Listen a lot, be up front (esp. with problems) & never bullshit
Mutual trust
Expectations are not necessarily what is in the contract!
Customer satisfaction (client happy) >> return business (Ebor happy)
DSTO substantially different to DMO
‘flexibility’ of task scope
Levels of documentation
The Commercial World
You want it when?
RCPA
Royal College of Pathologists Australia Quality Assurance Programs
Provides external quality assurance programs for laboratories across
all 10 disciplines of pathology.
Clients include over 1000 laboratories
30% of clients are international
RCPA — Project overview
RCPA — Project overview
Web based reporting and data entry
RCPA — Statement of work
Gather requirements from the relevant stakeholders
Provide a statement of work and corresponding estimate for
that work
The scope and requirements are going to change
Phased feedback and demos
RCPA — Client expectations
Quality and reliability
Ability to interpret their needs
Cost effectiveness
Deliver projects on budget and on time
Quick delivery on important requirements
Some of these are mutually exclusive!
RCPA — Quality and peace of mind
Automated Regression Testing
RCPA — Design methodology
Iterative Design – The clients are often still experimenting with their
needs
Balance between the need for an up front estimate and evolving
requirements
Regular feedback as progress is made
Ensure that new features can be used by other disciplines as needed
RCPA — Secrets of success
Good relationship with the clients – knowing how to
interpret their needs
Responding quickly to problems or requirements when
needed
Delivering quality and reliability to give them a world class
system
Software development
You want process? We got process!
Software development
What kind of software systems might you develop?
Autonomous
User driven
Interactive
Interface with other systems (including hardware).
Part of larger system working interacting with other
software components
All of the above
Software development — coding standards
Can be a source of great debate
Typically follow the convention with modern languages (Java/C#)
Strive for clarity (optimise when necessary)
Well commented
Debug logging (Log4j)
Error handling (catch {}!)
Use known design patterns where possible
Software development — development model
Waterfall
Preferred method by defence.
Simple
Requires less knowledge from customer.
Easier to track.
Changes are slow.
Process orientated.
Iterative & Agile (XP, Scrum)
Used in concept demonstrators.
Fast feedback.
Requires more discipline.
Harder to track time.
People and communication over process.
Software development — development model
Software development — requirements and design
Requirements
Obtain customer requirements
Derive into software requirements
Traceability to design and test
Design
Interface (eg. User, Network)
Data stores (eg. Files, Database, Memory)
Communication Protocols
Structure
Dependencies
UML and NetBeans GUI Designer
Code
Checked into Revision Control.
Baselined at milestones.
Must compile before committed.
Expected that people thoroughly test
Software development — testing
Unit Testing (JUnit).
Code Review.
Static and Run-time analysis.
Play Testing
Stress Testing and TPMs
Simulators
Performance (Memory, CPU, Disk)
Formal Testing
Every requirement must be tested at least once.
Formal procedure.
Formal test report.
Results submitted to customer.
Often forms part of formal milestone ($$).
Real and virtual test beds.
Software development — training and deployment
Training
Installation
Usage (may need full working system)
Maintenance
Troubleshooting
Deployment
Manual install
Install wizard
Pre-installed on supplied hardware
Ghost
Automatic updates
Upgrade (backwards compatibility)
Software development — task allocation
Team Leader identifies a parcel of work (design, code, review, investigate,
test)
Add task to the tracking system
Description
Component
References to Requirements and Design
Priority
Time Code
Engineer receives email with task
Engineer implements with communication with TL and other Team
Members as necessary
Task is resolved
Team Leader or another Engineer reviews changes made and accepts or
rejects task
Executing test case
Code review
Inspection
If rejected task bounces back to the Engineer, otherwise it is closed
Software development — tools
NetBeans, Eclipse, Visual Studio Pro
Revision Control (Subversion)
Text Editor (UltraEdit)
DOORs
VMWare
Ant
Task and Bug Tracking Software
Microsoft Office
Microsoft Visio
Questions
Download