SlideShare une entreprise Scribd logo
1  sur  3
Télécharger pour lire hors ligne
© Sten Vesterli 2013
@stenvesterli, sten@vesterli.com, www.vesterli.com
1
Worst. ADF. Project. Ever.
Sten Vesterli
Twitter: @stenvesterli
Email: sten@vesterli.com
Blog: www.vesterli.com
Introduction
There are good projects. And there are bad projects. And then there are the
projects from hell where everything goes wrong. This whitepaper presents
ten things that can go wrong on projects – most of them are general project
issues that apply to every technology, but a few are specific to the Oracle
Application Development Framework tool.
1. Don’t play “Telephone”
In this project, my company was a subcontractor and had no access to the
actual end users. This is like the children’s game of “Telephone” where a
message is passed along from person to person until it is completely
garbled.
Without easy access to the customer, the written requirements binder is the
only information the programmer has to work on – and even the most
carefully worded requirements can be implemented in multiple ways.
2. Don’t start with the full team
It does not work to total up the number of man-months needed to build a
system, looking at the schedule and then calculating the number of
developers needed.
If you start out with the whole team without first establishing the
architecture and a standard for development, your team will run off in
different directions leaving you with a system with much less internal
consistence than it should have.
3. Beware of feature creep
All projects potentially suffer from feature creep – the slow addition of
more and more features that were not in the requirements and for which
resources have not been allocated.
The risk of this is especially acute in projects with very powerful technology
like Oracle ADF. The standard components are extremely capable, but also
have limitations. Until you have experience with where the limitations are,
Worst. ADF. Project. Ever. Wildcard 2013
© Sten Vesterli 2013
sten@vesterli.com
2
there is a definite risk of promising the customer something that proves to
be very hard to implement in ADF.
4. Know your tool
If a significant part of your team is new to the chosen development tool or
approach, do not jump straight from a training course and into building
production code. If you do, you will make poor architectural choices and
write over-complicated code.
5. Keep Priorities Straight
In any project, some features prove harder to implement than others. If the
customer insists on every feature being built exactly as specified, you will
waste a lot of effort on trivial, but very hard-to-solve issues.
6. Appoint a Nutcracker
If your team is new to the technology, appoint a “nutcracker”. This is the
person to crack the tough issues you meet and find out how to make the
tool work best for your team and project.
If you do not assign at least part of someone’s time for this task, your team
will waste time as junior programmers try to solve hard problems. You will
also end up with various sub-optimal solutions to common problems.
7. Start with a proof of concept
If you do not build a proof of concept at the beginning of the project, all
assumptions on development speed are mere guesses. This is a recipe for
over-ambitious schedules and a team that is continually behind schedule.
8. Don’t release too early
Once you are behind schedule, it is tempting to start to cut corners and
release questionable code. That never works and your flaky code comes
back to haunt you during the rest of the project.
If you are behind schedule, re-negotiate either the schedule or the scope for
a specific milestone. Skimping on quality does not work – and neither does
adding more developers.
9. Manage Expectations
Developing applications with a powerful component framework like
Oracle ADF poses an expectation management challenge. Your users can
see you work magic and implement very advanced features easily, so they
start believing that everything is possible.
Worst. ADF. Project. Ever. Wildcard 2013
© Sten Vesterli 2013
sten@vesterli.com
3
It is important to explain that when we can work with the grain of the tool,
we can implement a lot in a short time, but if we try to work against the
tool, things get hard, expensive, and slow.
10. The notorious “Back” button
The default way a developer implements an ADF application is as a rich
internet application with page fragments. This gives the application a
”desktop” feel where only the necessary parts of the screen refreshes when
the user interacts with the application.
The users like that, but they also want the browser ”Back” button to take
them back to the previous screen.
Make sure from the beginning whether to use pages or page fragments and
explain the difference to the end users.
Conclusion
This paper describes ten things that can go wrong in a project. Keep these
in mind as you plan and execute your own project so you can deliver on
spec, on time and on budget.

Contenu connexe

Tendances

Full Stack Developer Interview Questions
Full Stack Developer Interview QuestionsFull Stack Developer Interview Questions
Full Stack Developer Interview QuestionsRock Interview
 
Bdd masterclass
Bdd masterclassBdd masterclass
Bdd masterclassMagenTys
 
Why Do User Research And Usability Testing
Why Do User Research And Usability TestingWhy Do User Research And Usability Testing
Why Do User Research And Usability TestingRobert Stackhouse
 
Introduction to bdd
Introduction to bddIntroduction to bdd
Introduction to bddSeb Rose
 
Managing technical debt - Dan Nicola - Florin Cardasim
Managing technical debt - Dan Nicola - Florin CardasimManaging technical debt - Dan Nicola - Florin Cardasim
Managing technical debt - Dan Nicola - Florin CardasimCodecamp Romania
 
Offshore tips sharing_2.0
Offshore tips sharing_2.0Offshore tips sharing_2.0
Offshore tips sharing_2.0Dao Ngoc Kien
 
Pair Programming (2014)
Pair Programming (2014)Pair Programming (2014)
Pair Programming (2014)Peter Kofler
 
Agile Software Development for Non-Developers
Agile Software Development for Non-DevelopersAgile Software Development for Non-Developers
Agile Software Development for Non-Developershamvocke
 
The Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at PluralsightThe Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at PluralsightMike Clement
 
What Software Quality Assurance Means to Me
What Software Quality Assurance Means to MeWhat Software Quality Assurance Means to Me
What Software Quality Assurance Means to MeRobert Stackhouse
 
Software Craftsmanship @ Ntnu
Software Craftsmanship @ NtnuSoftware Craftsmanship @ Ntnu
Software Craftsmanship @ Ntnugoeran
 
The Best Automated Testing Tools in 2020
The Best Automated Testing Tools in 2020The Best Automated Testing Tools in 2020
The Best Automated Testing Tools in 2020Liviu Lupei
 
Building a Great AEM Team: Time Warner Cable's Journey
Building a Great AEM Team: Time Warner Cable's JourneyBuilding a Great AEM Team: Time Warner Cable's Journey
Building a Great AEM Team: Time Warner Cable's JourneyiCiDIGITAL
 
Good Code / Bad Code
Good Code / Bad CodeGood Code / Bad Code
Good Code / Bad CodeKelly Harrop
 
Fighting with Waste Driven Development - XP Days Ukraine 2017
Fighting with Waste Driven Development - XP Days Ukraine 2017Fighting with Waste Driven Development - XP Days Ukraine 2017
Fighting with Waste Driven Development - XP Days Ukraine 2017Lemi Orhan Ergin
 
Product Vs Craft
Product Vs CraftProduct Vs Craft
Product Vs CraftMagenTys
 
Zero to tested
Zero to testedZero to tested
Zero to testedMagenTys
 
What i learned adopting agile practices
What i learned adopting agile practicesWhat i learned adopting agile practices
What i learned adopting agile practicesVijay Narayanan
 
The Future of Web Apps
The Future of Web AppsThe Future of Web Apps
The Future of Web AppsiCiDIGITAL
 

Tendances (20)

Full Stack Developer Interview Questions
Full Stack Developer Interview QuestionsFull Stack Developer Interview Questions
Full Stack Developer Interview Questions
 
Bdd masterclass
Bdd masterclassBdd masterclass
Bdd masterclass
 
Why Do User Research And Usability Testing
Why Do User Research And Usability TestingWhy Do User Research And Usability Testing
Why Do User Research And Usability Testing
 
Introduction to bdd
Introduction to bddIntroduction to bdd
Introduction to bdd
 
Managing technical debt - Dan Nicola - Florin Cardasim
Managing technical debt - Dan Nicola - Florin CardasimManaging technical debt - Dan Nicola - Florin Cardasim
Managing technical debt - Dan Nicola - Florin Cardasim
 
Teamwork Presentation
Teamwork PresentationTeamwork Presentation
Teamwork Presentation
 
Offshore tips sharing_2.0
Offshore tips sharing_2.0Offshore tips sharing_2.0
Offshore tips sharing_2.0
 
Pair Programming (2014)
Pair Programming (2014)Pair Programming (2014)
Pair Programming (2014)
 
Agile Software Development for Non-Developers
Agile Software Development for Non-DevelopersAgile Software Development for Non-Developers
Agile Software Development for Non-Developers
 
The Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at PluralsightThe Quest for Continuous Delivery at Pluralsight
The Quest for Continuous Delivery at Pluralsight
 
What Software Quality Assurance Means to Me
What Software Quality Assurance Means to MeWhat Software Quality Assurance Means to Me
What Software Quality Assurance Means to Me
 
Software Craftsmanship @ Ntnu
Software Craftsmanship @ NtnuSoftware Craftsmanship @ Ntnu
Software Craftsmanship @ Ntnu
 
The Best Automated Testing Tools in 2020
The Best Automated Testing Tools in 2020The Best Automated Testing Tools in 2020
The Best Automated Testing Tools in 2020
 
Building a Great AEM Team: Time Warner Cable's Journey
Building a Great AEM Team: Time Warner Cable's JourneyBuilding a Great AEM Team: Time Warner Cable's Journey
Building a Great AEM Team: Time Warner Cable's Journey
 
Good Code / Bad Code
Good Code / Bad CodeGood Code / Bad Code
Good Code / Bad Code
 
Fighting with Waste Driven Development - XP Days Ukraine 2017
Fighting with Waste Driven Development - XP Days Ukraine 2017Fighting with Waste Driven Development - XP Days Ukraine 2017
Fighting with Waste Driven Development - XP Days Ukraine 2017
 
Product Vs Craft
Product Vs CraftProduct Vs Craft
Product Vs Craft
 
Zero to tested
Zero to testedZero to tested
Zero to tested
 
What i learned adopting agile practices
What i learned adopting agile practicesWhat i learned adopting agile practices
What i learned adopting agile practices
 
The Future of Web Apps
The Future of Web AppsThe Future of Web Apps
The Future of Web Apps
 

En vedette

Mining the awr alternative methods for identification of the top sq ls in you...
Mining the awr alternative methods for identification of the top sq ls in you...Mining the awr alternative methods for identification of the top sq ls in you...
Mining the awr alternative methods for identification of the top sq ls in you...Andrejs Vorobjovs
 
Weblogic scripting LVOUG meetup #11
Weblogic scripting LVOUG meetup #11Weblogic scripting LVOUG meetup #11
Weblogic scripting LVOUG meetup #11Andrejs Vorobjovs
 
Exploring plsql new features best practices september 2013
Exploring plsql new features best practices   september 2013Exploring plsql new features best practices   september 2013
Exploring plsql new features best practices september 2013Andrejs Vorobjovs
 
Heli data modeler wildcard2013
Heli data modeler wildcard2013Heli data modeler wildcard2013
Heli data modeler wildcard2013Andrejs Vorobjovs
 
Jurijs Velikanovs Direct NFS - Why and How?
Jurijs Velikanovs Direct NFS - Why and How?Jurijs Velikanovs Direct NFS - Why and How?
Jurijs Velikanovs Direct NFS - Why and How?Andrejs Vorobjovs
 
Peteris Arajs about oracle middleware
Peteris Arajs about oracle middleware Peteris Arajs about oracle middleware
Peteris Arajs about oracle middleware Andrejs Vorobjovs
 
OTN tour Oracle db Cloud by Alex Gorbachev
OTN tour Oracle db Cloud by Alex GorbachevOTN tour Oracle db Cloud by Alex Gorbachev
OTN tour Oracle db Cloud by Alex GorbachevAndrejs Vorobjovs
 
OTN tour 2015 benchmarking oracle io performance with Orion by Alex Gorbachev
OTN tour 2015 benchmarking oracle io performance with Orion by Alex GorbachevOTN tour 2015 benchmarking oracle io performance with Orion by Alex Gorbachev
OTN tour 2015 benchmarking oracle io performance with Orion by Alex GorbachevAndrejs Vorobjovs
 
Powerpoint cata
Powerpoint cataPowerpoint cata
Powerpoint catacataarbos
 

En vedette (17)

Mining the awr alternative methods for identification of the top sq ls in you...
Mining the awr alternative methods for identification of the top sq ls in you...Mining the awr alternative methods for identification of the top sq ls in you...
Mining the awr alternative methods for identification of the top sq ls in you...
 
LVOUG meetup #11
LVOUG meetup #11 LVOUG meetup #11
LVOUG meetup #11
 
Pc 1 218
Pc 1 218Pc 1 218
Pc 1 218
 
Weblogic scripting LVOUG meetup #11
Weblogic scripting LVOUG meetup #11Weblogic scripting LVOUG meetup #11
Weblogic scripting LVOUG meetup #11
 
Senegacnik intro
Senegacnik introSenegacnik intro
Senegacnik intro
 
Exploring plsql new features best practices september 2013
Exploring plsql new features best practices   september 2013Exploring plsql new features best practices   september 2013
Exploring plsql new features best practices september 2013
 
Heli data modeler wildcard2013
Heli data modeler wildcard2013Heli data modeler wildcard2013
Heli data modeler wildcard2013
 
Big data overview by Edgars
Big data overview by EdgarsBig data overview by Edgars
Big data overview by Edgars
 
meetup #15
meetup #15meetup #15
meetup #15
 
LVOUG Meetup #8 news
LVOUG Meetup #8 newsLVOUG Meetup #8 news
LVOUG Meetup #8 news
 
Jurijs Velikanovs Direct NFS - Why and How?
Jurijs Velikanovs Direct NFS - Why and How?Jurijs Velikanovs Direct NFS - Why and How?
Jurijs Velikanovs Direct NFS - Why and How?
 
Rdd2016 featured talks
Rdd2016 featured talksRdd2016 featured talks
Rdd2016 featured talks
 
Rdd2016 flyer
Rdd2016 flyerRdd2016 flyer
Rdd2016 flyer
 
Peteris Arajs about oracle middleware
Peteris Arajs about oracle middleware Peteris Arajs about oracle middleware
Peteris Arajs about oracle middleware
 
OTN tour Oracle db Cloud by Alex Gorbachev
OTN tour Oracle db Cloud by Alex GorbachevOTN tour Oracle db Cloud by Alex Gorbachev
OTN tour Oracle db Cloud by Alex Gorbachev
 
OTN tour 2015 benchmarking oracle io performance with Orion by Alex Gorbachev
OTN tour 2015 benchmarking oracle io performance with Orion by Alex GorbachevOTN tour 2015 benchmarking oracle io performance with Orion by Alex Gorbachev
OTN tour 2015 benchmarking oracle io performance with Orion by Alex Gorbachev
 
Powerpoint cata
Powerpoint cataPowerpoint cata
Powerpoint cata
 

Similaire à Vesterli worst adf_project_ever_wildcard_2013

Flutter App Performance Optimization_ Tips and Techniques.pdf
Flutter App Performance Optimization_ Tips and Techniques.pdfFlutter App Performance Optimization_ Tips and Techniques.pdf
Flutter App Performance Optimization_ Tips and Techniques.pdfDianApps Technologies
 
Project 00 Report
Project 00 ReportProject 00 Report
Project 00 Reportspiffyjj115
 
Software development project management
Software development project managementSoftware development project management
Software development project managementRoni Banerjee
 
importance of resources allocation in formal method of software engineering ...
 importance of resources allocation in formal method of software engineering ... importance of resources allocation in formal method of software engineering ...
importance of resources allocation in formal method of software engineering ...Abdul Naqashbandi
 
8 tips for mastering node.js
8 tips for mastering node.js8 tips for mastering node.js
8 tips for mastering node.jsSolution Analysts
 
8 tips for mastering node.js
8 tips for mastering node.js8 tips for mastering node.js
8 tips for mastering node.jsSolution Analysts
 
Everything You Need to Know About Hiring Node.pdf
Everything You Need to Know About Hiring Node.pdfEverything You Need to Know About Hiring Node.pdf
Everything You Need to Know About Hiring Node.pdfNoman Shaikh
 
Vesterli hot and_not_whitepaper_wildcard_2013
Vesterli hot and_not_whitepaper_wildcard_2013Vesterli hot and_not_whitepaper_wildcard_2013
Vesterli hot and_not_whitepaper_wildcard_2013Andrejs Vorobjovs
 
Product! - The road to production deployment
Product! - The road to production deploymentProduct! - The road to production deployment
Product! - The road to production deploymentFilippo Zanella
 
JSF (ADF) Case Studies Paper
JSF (ADF) Case Studies PaperJSF (ADF) Case Studies Paper
JSF (ADF) Case Studies PaperMichael Fons
 
Software Development Standard Operating Procedure
Software Development Standard Operating Procedure Software Development Standard Operating Procedure
Software Development Standard Operating Procedure rupeshchanchal
 
10 Code Anti-Patterns to Avoid in Software Development.pdf
10 Code Anti-Patterns to Avoid in Software Development.pdf10 Code Anti-Patterns to Avoid in Software Development.pdf
10 Code Anti-Patterns to Avoid in Software Development.pdfAhmed Salama
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovSvetlin Nakov
 
Implementing Cloud-Based DevOps for Distributed Agile Projects
Implementing Cloud-Based DevOps for Distributed Agile ProjectsImplementing Cloud-Based DevOps for Distributed Agile Projects
Implementing Cloud-Based DevOps for Distributed Agile ProjectsTechWell
 
Inhouse vs-off-the-shelf-may
Inhouse vs-off-the-shelf-mayInhouse vs-off-the-shelf-may
Inhouse vs-off-the-shelf-mayAyodeji Adesina
 
How to create a popular productivity app in 2022
How to create a popular productivity app in 2022 How to create a popular productivity app in 2022
How to create a popular productivity app in 2022 Shakuro
 

Similaire à Vesterli worst adf_project_ever_wildcard_2013 (20)

Flutter App Performance Optimization_ Tips and Techniques.pdf
Flutter App Performance Optimization_ Tips and Techniques.pdfFlutter App Performance Optimization_ Tips and Techniques.pdf
Flutter App Performance Optimization_ Tips and Techniques.pdf
 
Report
ReportReport
Report
 
Project 00 Report
Project 00 ReportProject 00 Report
Project 00 Report
 
Project 00 Report
Project 00 ReportProject 00 Report
Project 00 Report
 
Software development project management
Software development project managementSoftware development project management
Software development project management
 
importance of resources allocation in formal method of software engineering ...
 importance of resources allocation in formal method of software engineering ... importance of resources allocation in formal method of software engineering ...
importance of resources allocation in formal method of software engineering ...
 
8 tips for mastering node.js
8 tips for mastering node.js8 tips for mastering node.js
8 tips for mastering node.js
 
8 tips for mastering node.js
8 tips for mastering node.js8 tips for mastering node.js
8 tips for mastering node.js
 
Everything You Need to Know About Hiring Node.pdf
Everything You Need to Know About Hiring Node.pdfEverything You Need to Know About Hiring Node.pdf
Everything You Need to Know About Hiring Node.pdf
 
Resume
ResumeResume
Resume
 
Vesterli hot and_not_whitepaper_wildcard_2013
Vesterli hot and_not_whitepaper_wildcard_2013Vesterli hot and_not_whitepaper_wildcard_2013
Vesterli hot and_not_whitepaper_wildcard_2013
 
Product! - The road to production deployment
Product! - The road to production deploymentProduct! - The road to production deployment
Product! - The road to production deployment
 
JSF (ADF) Case Studies Paper
JSF (ADF) Case Studies PaperJSF (ADF) Case Studies Paper
JSF (ADF) Case Studies Paper
 
Software Development Standard Operating Procedure
Software Development Standard Operating Procedure Software Development Standard Operating Procedure
Software Development Standard Operating Procedure
 
10 Code Anti-Patterns to Avoid in Software Development.pdf
10 Code Anti-Patterns to Avoid in Software Development.pdf10 Code Anti-Patterns to Avoid in Software Development.pdf
10 Code Anti-Patterns to Avoid in Software Development.pdf
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
7 Myths of Agile Development
7 Myths of Agile Development7 Myths of Agile Development
7 Myths of Agile Development
 
Implementing Cloud-Based DevOps for Distributed Agile Projects
Implementing Cloud-Based DevOps for Distributed Agile ProjectsImplementing Cloud-Based DevOps for Distributed Agile Projects
Implementing Cloud-Based DevOps for Distributed Agile Projects
 
Inhouse vs-off-the-shelf-may
Inhouse vs-off-the-shelf-mayInhouse vs-off-the-shelf-may
Inhouse vs-off-the-shelf-may
 
How to create a popular productivity app in 2022
How to create a popular productivity app in 2022 How to create a popular productivity app in 2022
How to create a popular productivity app in 2022
 

Plus de Andrejs Vorobjovs

Peteris Arajs - Where is my data
Peteris Arajs - Where is my dataPeteris Arajs - Where is my data
Peteris Arajs - Where is my dataAndrejs Vorobjovs
 
Maksims Greckis - Trace File Analyzer
Maksims Greckis - Trace File Analyzer  Maksims Greckis - Trace File Analyzer
Maksims Greckis - Trace File Analyzer Andrejs Vorobjovs
 
Aleksejs Nemirovskis - Manage your data using oracle BDA
Aleksejs Nemirovskis - Manage your data using oracle BDAAleksejs Nemirovskis - Manage your data using oracle BDA
Aleksejs Nemirovskis - Manage your data using oracle BDAAndrejs Vorobjovs
 
My two cents about Mysql backup
My two cents about Mysql backupMy two cents about Mysql backup
My two cents about Mysql backupAndrejs Vorobjovs
 
Middleware upgrade to Oracle Fusion Middleware(FMW) 12c.Real Case stories.
Middleware upgrade to Oracle Fusion Middleware(FMW) 12c.Real Case stories. Middleware upgrade to Oracle Fusion Middleware(FMW) 12c.Real Case stories.
Middleware upgrade to Oracle Fusion Middleware(FMW) 12c.Real Case stories. Andrejs Vorobjovs
 
OTN tour 2015 press release in Russian
OTN tour 2015 press release in RussianOTN tour 2015 press release in Russian
OTN tour 2015 press release in RussianAndrejs Vorobjovs
 
OTN tour 2015 Oracle Enterprise Manager 12c – Proof of Concept
OTN tour 2015 Oracle Enterprise Manager 12c – Proof of ConceptOTN tour 2015 Oracle Enterprise Manager 12c – Proof of Concept
OTN tour 2015 Oracle Enterprise Manager 12c – Proof of ConceptAndrejs Vorobjovs
 
OTN tour 2015 Experience in implementing SSL between oracle db and oracle cli...
OTN tour 2015 Experience in implementing SSL between oracle db and oracle cli...OTN tour 2015 Experience in implementing SSL between oracle db and oracle cli...
OTN tour 2015 Experience in implementing SSL between oracle db and oracle cli...Andrejs Vorobjovs
 
OTN tour 2015 AWR data mining
OTN tour 2015 AWR data miningOTN tour 2015 AWR data mining
OTN tour 2015 AWR data miningAndrejs Vorobjovs
 
OTN tour 2015 opening speech
OTN tour 2015 opening speechOTN tour 2015 opening speech
OTN tour 2015 opening speechAndrejs Vorobjovs
 
OTN tour 2015 agenda Alex Gorbachev and Yury Velikanov
OTN tour 2015 agenda Alex Gorbachev and Yury VelikanovOTN tour 2015 agenda Alex Gorbachev and Yury Velikanov
OTN tour 2015 agenda Alex Gorbachev and Yury VelikanovAndrejs Vorobjovs
 
Advanced Shell Scripting for Oracle professionals
Advanced Shell Scripting for Oracle professionalsAdvanced Shell Scripting for Oracle professionals
Advanced Shell Scripting for Oracle professionalsAndrejs Vorobjovs
 
Migration challenges and process
Migration challenges and processMigration challenges and process
Migration challenges and processAndrejs Vorobjovs
 

Plus de Andrejs Vorobjovs (20)

Peteris Arajs - Where is my data
Peteris Arajs - Where is my dataPeteris Arajs - Where is my data
Peteris Arajs - Where is my data
 
Maksims Greckis - Trace File Analyzer
Maksims Greckis - Trace File Analyzer  Maksims Greckis - Trace File Analyzer
Maksims Greckis - Trace File Analyzer
 
Aleksejs Nemirovskis - Manage your data using oracle BDA
Aleksejs Nemirovskis - Manage your data using oracle BDAAleksejs Nemirovskis - Manage your data using oracle BDA
Aleksejs Nemirovskis - Manage your data using oracle BDA
 
LVOUG meetup #18
LVOUG meetup #18LVOUG meetup #18
LVOUG meetup #18
 
LVOUG meetup #17
LVOUG meetup #17LVOUG meetup #17
LVOUG meetup #17
 
My two cents about Mysql backup
My two cents about Mysql backupMy two cents about Mysql backup
My two cents about Mysql backup
 
LVOUG meetup #16
LVOUG meetup #16LVOUG meetup #16
LVOUG meetup #16
 
Middleware upgrade to Oracle Fusion Middleware(FMW) 12c.Real Case stories.
Middleware upgrade to Oracle Fusion Middleware(FMW) 12c.Real Case stories. Middleware upgrade to Oracle Fusion Middleware(FMW) 12c.Real Case stories.
Middleware upgrade to Oracle Fusion Middleware(FMW) 12c.Real Case stories.
 
Top 15 MySQL parameters
Top 15 MySQL parameters Top 15 MySQL parameters
Top 15 MySQL parameters
 
Riga Dev Day vestule
Riga Dev Day vestuleRiga Dev Day vestule
Riga Dev Day vestule
 
OTN tour 2015 press release in Russian
OTN tour 2015 press release in RussianOTN tour 2015 press release in Russian
OTN tour 2015 press release in Russian
 
OTN tour 2015, 100miles
OTN tour 2015, 100milesOTN tour 2015, 100miles
OTN tour 2015, 100miles
 
OTN tour 2015 Oracle Enterprise Manager 12c – Proof of Concept
OTN tour 2015 Oracle Enterprise Manager 12c – Proof of ConceptOTN tour 2015 Oracle Enterprise Manager 12c – Proof of Concept
OTN tour 2015 Oracle Enterprise Manager 12c – Proof of Concept
 
OTN tour 2015 Experience in implementing SSL between oracle db and oracle cli...
OTN tour 2015 Experience in implementing SSL between oracle db and oracle cli...OTN tour 2015 Experience in implementing SSL between oracle db and oracle cli...
OTN tour 2015 Experience in implementing SSL between oracle db and oracle cli...
 
OTN tour 2015 AWR data mining
OTN tour 2015 AWR data miningOTN tour 2015 AWR data mining
OTN tour 2015 AWR data mining
 
OTN tour 2015 opening speech
OTN tour 2015 opening speechOTN tour 2015 opening speech
OTN tour 2015 opening speech
 
OTN tour 2015 agenda Alex Gorbachev and Yury Velikanov
OTN tour 2015 agenda Alex Gorbachev and Yury VelikanovOTN tour 2015 agenda Alex Gorbachev and Yury Velikanov
OTN tour 2015 agenda Alex Gorbachev and Yury Velikanov
 
LVOUG news 5-OCT-2015
LVOUG news 5-OCT-2015LVOUG news 5-OCT-2015
LVOUG news 5-OCT-2015
 
Advanced Shell Scripting for Oracle professionals
Advanced Shell Scripting for Oracle professionalsAdvanced Shell Scripting for Oracle professionals
Advanced Shell Scripting for Oracle professionals
 
Migration challenges and process
Migration challenges and processMigration challenges and process
Migration challenges and process
 

Dernier

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 

Dernier (20)

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 

Vesterli worst adf_project_ever_wildcard_2013

  • 1. © Sten Vesterli 2013 @stenvesterli, sten@vesterli.com, www.vesterli.com 1 Worst. ADF. Project. Ever. Sten Vesterli Twitter: @stenvesterli Email: sten@vesterli.com Blog: www.vesterli.com Introduction There are good projects. And there are bad projects. And then there are the projects from hell where everything goes wrong. This whitepaper presents ten things that can go wrong on projects – most of them are general project issues that apply to every technology, but a few are specific to the Oracle Application Development Framework tool. 1. Don’t play “Telephone” In this project, my company was a subcontractor and had no access to the actual end users. This is like the children’s game of “Telephone” where a message is passed along from person to person until it is completely garbled. Without easy access to the customer, the written requirements binder is the only information the programmer has to work on – and even the most carefully worded requirements can be implemented in multiple ways. 2. Don’t start with the full team It does not work to total up the number of man-months needed to build a system, looking at the schedule and then calculating the number of developers needed. If you start out with the whole team without first establishing the architecture and a standard for development, your team will run off in different directions leaving you with a system with much less internal consistence than it should have. 3. Beware of feature creep All projects potentially suffer from feature creep – the slow addition of more and more features that were not in the requirements and for which resources have not been allocated. The risk of this is especially acute in projects with very powerful technology like Oracle ADF. The standard components are extremely capable, but also have limitations. Until you have experience with where the limitations are,
  • 2. Worst. ADF. Project. Ever. Wildcard 2013 © Sten Vesterli 2013 sten@vesterli.com 2 there is a definite risk of promising the customer something that proves to be very hard to implement in ADF. 4. Know your tool If a significant part of your team is new to the chosen development tool or approach, do not jump straight from a training course and into building production code. If you do, you will make poor architectural choices and write over-complicated code. 5. Keep Priorities Straight In any project, some features prove harder to implement than others. If the customer insists on every feature being built exactly as specified, you will waste a lot of effort on trivial, but very hard-to-solve issues. 6. Appoint a Nutcracker If your team is new to the technology, appoint a “nutcracker”. This is the person to crack the tough issues you meet and find out how to make the tool work best for your team and project. If you do not assign at least part of someone’s time for this task, your team will waste time as junior programmers try to solve hard problems. You will also end up with various sub-optimal solutions to common problems. 7. Start with a proof of concept If you do not build a proof of concept at the beginning of the project, all assumptions on development speed are mere guesses. This is a recipe for over-ambitious schedules and a team that is continually behind schedule. 8. Don’t release too early Once you are behind schedule, it is tempting to start to cut corners and release questionable code. That never works and your flaky code comes back to haunt you during the rest of the project. If you are behind schedule, re-negotiate either the schedule or the scope for a specific milestone. Skimping on quality does not work – and neither does adding more developers. 9. Manage Expectations Developing applications with a powerful component framework like Oracle ADF poses an expectation management challenge. Your users can see you work magic and implement very advanced features easily, so they start believing that everything is possible.
  • 3. Worst. ADF. Project. Ever. Wildcard 2013 © Sten Vesterli 2013 sten@vesterli.com 3 It is important to explain that when we can work with the grain of the tool, we can implement a lot in a short time, but if we try to work against the tool, things get hard, expensive, and slow. 10. The notorious “Back” button The default way a developer implements an ADF application is as a rich internet application with page fragments. This gives the application a ”desktop” feel where only the necessary parts of the screen refreshes when the user interacts with the application. The users like that, but they also want the browser ”Back” button to take them back to the previous screen. Make sure from the beginning whether to use pages or page fragments and explain the difference to the end users. Conclusion This paper describes ten things that can go wrong in a project. Keep these in mind as you plan and execute your own project so you can deliver on spec, on time and on budget.