SlideShare una empresa de Scribd logo
1 de 3
Descargar para leer sin conexión
© 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.

Más contenido relacionado

La actualidad más candente

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
Robert Stackhouse
 
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
Codecamp Romania
 
Pair Programming (2014)
Pair Programming (2014)Pair Programming (2014)
Pair Programming (2014)
Peter Kofler
 
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
Robert Stackhouse
 
What i learned adopting agile practices
What i learned adopting agile practicesWhat i learned adopting agile practices
What i learned adopting agile practices
Vijay Narayanan
 

La actualidad más candente (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
 

Destacado

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
Andrejs Vorobjovs
 
Heli data modeler wildcard2013
Heli data modeler wildcard2013Heli data modeler wildcard2013
Heli data modeler wildcard2013
Andrejs Vorobjovs
 
Powerpoint cata
Powerpoint cataPowerpoint cata
Powerpoint cata
cataarbos
 

Destacado (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
 

Similar a Vesterli worst adf_project_ever_wildcard_2013

Project 00 Report
Project 00 ReportProject 00 Report
Project 00 Report
spiffyjj115
 
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
 
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
Andrejs Vorobjovs
 
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
Svetlin Nakov
 

Similar a 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
 

Más de Andrejs Vorobjovs

Más 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
 

Último

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

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.