Title: Managing Large Application Development using Oracle Application Express
1Managing Large Application Development using
Oracle Application Express
- David Peake
- Product Manager, Database Tools
- (david.peake_at_oracle.com)
2Agenda
- Background
- Defining Large Applications
- Project Staffing
- Before you begin
- Initial steps
- Pilots and Proof of Concepts
- Building the Solutions
- Performance Considerations
- Integration with Other Tools
- Deployment
- Conclusion
- QA
3Background
- Oracle Consultant for 13 years
- 5 years on 1 x Oracle Forms / Designer Project
- 4 years on 1 x Oracle Application Express Project
- Lead development team
- Team included Oracle Consultants, Contractors,
and Employees - Involved from Initial Analysis / Design through
to Post-Production Support and Maintenance - Designed solutions
- Built Applications
- Trained team members
- Put out fires
4The Project
- Approximately 1000 individual Applications
- Enterprise-wide OLTP System for Large Law
Enforcement Agency - Thousands of concurrent users
- True 24 x 7 Operations (Even Training)
- Four separate development teams with up to 50
developers - Many cross-team links / co-developed processes
- Large number of common entities (Addresses,
People Contact Details,etc.) - Still growing
5How Large Applications Differ
- Total project size gt 100 applications working as
one suite. - Solve complete business processes end-to-end
- Large number of stakeholders
- Mixed environments
- Complex Requirements
- Large teams of developers working concurrently
- Performance considerations
- Rollouts are not easy
- Coordination is critical
6Large Applications
- Integrated APEX applications working seamlessly
together - Consistent Development practices
- Complex Data Model(s) Many shared entities
- Numerous common functions / procedures
- Major Reporting requirements
- Integration with other tools
- Other applications interacting with the Database
- Extensive back-end processing
SCOPE CREEP
7Project Staffing Types of Experience
- Project Initiation Resources
- Project Manager Project Duration
- System Architect
- Expert in Oracle Database Configuration Sizing
- Security Specialist
- Knowledgeable in Corporate security
- Expert in Oracle Security
- GUI Expert Project Duration
- HTML Guru
- Experience with CSS, Javascript, AJAX, DHTML
Critical - SQL Experience Optional
- Data Modeller at least through Design Phase
- EXPERT at designing large application data models
8Project Staffing Types of Experience
- Design Phase Resources
- Team Leads Project Duration
- Experienced practitioners - Writing
Specifications, etc. - Excellence conducting JADs, running POCs
- PL/SQL Knowledge
- APEX an advantage but not critical
- Industry Knowledge a distinct Advantage
- Lead Developers Project Duration
- Experienced building Proof of Concepts
- PL/SQL Expert
- At least some APEX experience
- Ability to Train / Mentor other team members
9Project Staffing Types of Experience
- Build Phase
- Developers Numbers as required
- SQL Experience
- PL/SQL a definite advantage
- Oracle Forms developers adapt very readily
- Able to work in a team environment
- Willing to follow standards and specifications
- Numbers and personnel will continually fluctuate
- Remote Developers CAN Work Very Well
How long until my Developers should be
Productive?
10Project Staffing Types of Experience
- Test Phase
- Quality Assurance experts
- Experience writing test specifications
- Prepared to raise issues when standards not
followed - Documentation expert
- Ability to write User Guides
- Ability to write On-line Help
- Training Phase
- Trainers
- Ability to construct training sessions
- Ability to create Viewlets
- Ability to communicate with End-Users
11Project Staffing Responsibilities
- Systems Architect
- Design and implement Environments (Dev, Test,
etc.) - Develop Capacity Plan
- Security Specialist
- Document Security Standards for Developers
- Design and Implement Security practices for
End-Users - GUI Expert
- Implement Look and Feel Modify Templates,
etc. - Develop Javascript, AJAX, DHTML Components
- Data Modeller
- Work closely with the Teams and DBAs
- Ensure cohesive database design Not easy
- Enforce database naming standards
- Determine and implement partitioning strategy
12Project Staffing Responsibilites
- Team Leads / Lead Developers
- Manage developers
- Coordinate with PM, other Team Leads, etc.
- Write Specifications
- Design and build POCs
- Train / Mentor Developers
- Developers
- Follow standards
- Implement Applications based on Specifications
- Ignore the two points above and do some cool
stuff that is totally outside of scope
13Project Staffing Training the Development Team
- New to APEX
- Oracle University Course(s)
- http//otn.oracle.com/apex
- Oracle By Example (OBE)
- User Guide / Advanced Tutorials
- Books / Forum
- Consulting Companies
- Drill into EVERYONE the importance of Standards
- Explain the Methodolgy
- Set Expectations regarding Deliverables / Testing
/ - Walk through of Existing and Common Components
- Give them something easy to get their feet wet
14Before you Begin
- Standards, Standards, Standards,
- Application Security
- Application Naming Standards
- Application Numbering / Groups
- Page Numbering
- Item Naming
- UI Standards BE DRACONIAN
- Screen Design
- List of Values
- Display Characteristics - Pagination, Sorting,
etc. - Formatting Dates, Numbers, Phone Numbers, etc.
- Application Components
- Query / Detail Screens
15Before you Begin
- Application Components ( Continued)
- Summary Pages
- Reporting / Charting
- Branching
- PL/SQL Components
- Naming Conventions
- Headers
- APIs
- Use of Common Packages
- Development Standards
- Testing
- Deployment
- Change Requests
16Before you Begin
- Methodology
- Agree upon Development Approach
- Prototyping / Proof of Concept / JAD Sessions
- Change Control
- Testing / Sign-Off Procedures
- Training Procedures
- Roll-out Procedures
- Create Documentation Templates and Guidelines
17Initial Steps
- Configure Environments
- Define Topology
- Size Environments
- Procure Hardware / Software
- Install Oracle Application Express
- Define APEX Administrators / Developers
- Install / Configure Middle Tier
- Configure / Define Security
- Integrate Corporate Security
- Implement Developer Security Rights
- Define Authorization Standards
- Define Development Security Standards
18Initial Steps
- Look and Feel
- Determine Theme(s)
- Customize Templates only where Essential
- Create Sample Screens as Guidelines
- Navigation Style
- Menu Type / Layout
- Breadcrumbs
- Tab Design / Levels
- Navigation Bar
19Initial Steps
- Initial Data Model
- Review existing model(s)
- Define Common Entities
- People / Customers /
- Addresses
- Define Code Tables
- Define Partitioning Strategy
- Define Archiving / Aging of Data
20Proof of Concepts and Pilots
- Proof of Concepts
- A picture / 1,000 words
- Screen mock-ups with working navigation
- Demonstrates workflow
- Address UI Issues
- Explore Usability Issues
- Integrate into Detailed Specifications
- Use Pilots when
- Requirements are sketchy
- Significant business process change is involved
- Integrating multiple tools
- Dealing with outside Companies
- Substantial User Training is required
Low Cost Disposable
21Building the Solutions
- 1 Get Database Design CORRECT
- Rapid Application Development
- Incremental deliverables better than Big Bang.
- Dont get into Analysis Paralysis
- Keep key Users involved throughout
- Update Datamodel rather than workaround bad
design - Use the speed of development using APEX
- Ensure Testing is not an afterthought
- Provide Training / User Guides / Viewlets /
Online Help
MANAGE EXPECTATIONS
22Building the Solutions
- Common Components
- Menus
- Applications
- List of Values
- Search Screens
- Packages
- Authorization
- Manage them closely
- Expected delivery timeframes
- Differences in Environments
- Dependencies
- Dont be afraid to shuffle versions
- Coordination is key
Downtime Requirements
23Building the Solutions
- Dashboards
- Important Launch Pads
- Make Common functions available
- Different content for different People
- Job Function
- Security Rights
- Informative at a glance
- Charts
- Top 10 Xs
- Scrolling Marquee
- Great for Broadcasting News / Announcements
- Maintain Content (keep it fresh and relevant)
- Encourage User Contributions
24Building the Solutions
- Multiple Applications Vs Multiple Pages
- Called from multiple Applications
- Parameter Passing
- Return URL
- OR Self-Contained business function
- Maintenance considerations
- Multiple Page Data Entry Forms Vs One Very Long
Page - Used by Standard Users
- OR Used by Data Entry Operators
- Insert / Maintain Data
- Beware the number of clicks
25Building the Solutions
- Multiple Teams Multiple Developers
- Consistency CRITICAL
- Not just same Look and Feel
- Same way of doing business
- Object Placement
- Object Labels
- Actions Performed
Backport Changes if Necessary
- Can multiple developers work on one Application?
- YES
- Should they?
- MAYBE
26Performance Considerations
- At some point the Applications will probably run
slow - Diagnose the Problem First
- Determine where the bottleneck is
- PC
- Network
- Middle-Tier
- Database
- Disk
- Check Database Health
- SGA
- CPU Utilization
- Locks
- Database Parameters
27Performance Considerations
- DBAs will assume APEX as APEX running slow
- What else is running?
- Legacy Applications
- Batch Programs
- Database Jobs
- Slow Running SQL
- Use standard Performance Tuning techniques
- Use Collections
- Use Wait Bar
- Prevent Multiple Clicks
- 80 / 20 Rule -gt Dissect the business
requirement(s) - Additional Screens
- Examine Datamodel
28Integrating with Other Tools
- APEX plays well with others!
- Is friendly and happy to talk to others
- Happy to share and be a Team player
- Rarely kicks sand into others faces
- Determine Security Requirements
- Identify level of Integration Required
- Identify what Parameters need to be exchanged
- Determine the Process Flow between the tools
- Coordinate schedules / deliverables
29Deployment
- Examine Dependencies carefully
- Other Applications
- Common Components
- Database Elements
- Other Tools
- Determine Downtime Requirements
- Implement Applications and Supporting Objects
- Load / Migrate Data
- Manage End-Users
- Grant Security Rights
- Provide Links
- Monitor Performance
30Conclusion
- Much Like any Large Application Development
- Standards
- Methodology
- Coordination and Management
- Scope Creep
- 1 Data Model
- CONSISTANCY
Does the Solution Solve the Business Requirements
- BUT Some Differences
- Productivity of Development Staff
- Utilization of Common Components Differs
- Use the declarative nature of APEX to your
advantage - Just because you can develop Applications quicker
than the users can think of them doesnt mean you
should
31Q
A
32(No Transcript)