SlideShare a Scribd company logo
1 of 45
SQL vs Code
     Nicola Junior Vitto
Servabit, Bologna, 25/01/2010
Bottom up
                      Presentation layer code



                        Business layer code



         Business        Database schema
         request
Nicola Junior Vitto              2              SQL vs Code
Bottom up
                      Presentation layer coding



                        Business layer coding



         Business                                 Think about
                          Database schema
         request                                the data model
Nicola Junior Vitto               3                         SQL vs Code
Bottom up
                      Presentation layer coding



                                                  Start coding
                        Business layer coding
                                                    anything


         Business
                          Database schema
         request
Nicola Junior Vitto               4                         SQL vs Code
Bottom up
                                                  Design the
                      Presentation layer coding   look & feel
                                                  of your app


                        Business layer coding



         Business         Database schema
         request
Nicola Junior Vitto               5                        SQL vs Code
Top Down
                       Setup of all stack
                      (business, pres., db)


    Business
    request             Business & DB
                         refinements



                         Presentation
                         refinements
Nicola Junior Vitto             6             SQL vs Code
Top Down
                                              Think about
                       Setup of all stack
                                              a complete
                      (business, pres., db)
                                                feature

    Business
    request             Business & DB
                         refinements



                         Presentation
                         refinements
Nicola Junior Vitto             7                       SQL vs Code
Top Down
                       Setup of all stack
                      (business, pres., db)


    Business                                  Refine all
    request             Business & DB
                                              business
                         refinements
                                               stack


                         Presentation
                         refinements
Nicola Junior Vitto             8                         SQL vs Code
Top Down
                       Setup of all stack
                      (business, pres., db)


    Business
    request             Business & DB
                         refinements



                         Presentation         Design/Refine
                         refinements             interface
Nicola Junior Vitto             9                            SQL vs Code
Top Down
                       Setup of all stack
                      (business, pres., db)


    Business
    request             Business & DB
                         refinements
                                                 Often
                                              parallelisable
                         Presentation
                         refinements
Nicola Junior Vitto             10                       SQL vs Code
Bottom Up vs Top Down
                                                  Setup of all stack
       Presentation layer coding
                                             (business, presentation, db)



                Business layer coding        Business & DB refinements



                      Database schema        Presentation refinements
Nicola Junior Vitto                     11                             SQL vs Code
Bottom Up vs Top Down
                                                          Setup of all stack
                      Database schema
                                                     (business, presentation, db)

                Horizontal process                             Vertical process
                                                     Presentation

                                                      Business      Feature Feature Feature
                                                                       A       B       C
                                                        Data
                      Design application data
                                &
                           SQL coding                 Release one feature at a time
Nicola Junior Vitto                             12                                      SQL vs Code
Bottom Up vs Top Down
                                                  Setup of all stack
       Presentation layer coding
                                             (business, presentation, db)



                Business layer coding        Business & DB refinements



                      Database schema        Presentation refinements
Nicola Junior Vitto                     13                             SQL vs Code
Bottom Up vs Top Down
             Business layer coding        Business & DB refinements




Nicola Junior Vitto                  14                         SQL vs Code
Bottom Up vs Top Down
                                                  Setup of all stack
       Presentation layer coding
                                             (business, presentation, db)



                Business layer coding        Business & DB refinements



                      Database schema        Presentation refinements
Nicola Junior Vitto                     15                             SQL vs Code
Bottom Up vs Top Down
     Presentation layer coding        Presentation refinements




Nicola Junior Vitto              16                         SQL vs Code
Bottom Up vs Top Down
                                        Bottom Up      Top Down
                                         One piece
                          Focus                         All stack
                                         at a time
                                          On single    One feature
                      Commitment
                                         “tech” part    at a time

                                        Hope in Good
                      Maintainability                  TDD/BDD
                                          Coding ;)

                           Agile            No             Yes

Nicola Junior Vitto                           17                     SQL vs Code
Agile Manifesto

                      Individuals and interactions over processes and tools
                      Working software over comprehensive documentation
                       Customer collaboration over contract negotiation
                          Responding to change over following a plan


                                   More info on: http://agilemanifesto.org/



Nicola Junior Vitto                                   18                      SQL vs Code
(Some) Agile Methods
                      • Extreme           Programming (XP):                 is a software
                        development methodology which is intended to improve software
                        quality and responsiveness to changing customer requirements.


                      • Scrum:        is an iterative incremental framework for managing
                        complex work (such as new product development) commonly used
                        with agile software development.


                      • Getting Real:            Getting Real (by 37signals) eschews formal
                        programming methodology and focuses on creating useful alpha
                        software with small teams, then iterating to a simple useful application
                        based, in part, on real-world customer feedback.


                                             More info on: http://en.wikipedia.org/wiki/Agile_software_development

Nicola Junior Vitto                                        19                                                        SQL vs Code
(Some) Agile Practices
                      • Test-driven                Development (TDD)
                        Repetition of a very short development cycle: First the developer
                        writes a failing automated test case that defines a desired
                        improvement or new function, then produces code to pass that test
                        and finally refactors the new code to acceptable standards.


                      • Behavior Driven Development (BDD)
                        Behavior-driven developers use their native language in combination
                        with the ubiquitous language of Domain Driven Design to describe the
                        purpose and benefit of their code. This allows the developers to focus
                        on why the code should be created, rather than the technical details,
                        and minimizes translation between the technical language in which
                        the code is written and the domain language spoken by the business,
                        users, stakeholders, project management etc.

                                           More info on: http://en.wikipedia.org/wiki/Agile_software_development

Nicola Junior Vitto                                       20                                                       SQL vs Code
(Some) Agile Practices

                      • Continuous integration                              :
                                                                     The principle is to replace
                        the old practice of applying quality control after all development has
                        been completed by continuous processes, as small pieces of effort,
                        applied frequently.


                      • Pair programming                        :
                                                           two programmers work together at
                        one work station. One types in code while the other reviews each line
                        of code as it is typed in. The person typing is called the driver. The
                        person reviewing the code is called the observer or navigator. The
                        two programmers switch roles frequently (possibly every 30 minutes
                        or less).


                                             More info on: http://en.wikipedia.org/wiki/Agile_software_development

Nicola Junior Vitto                                        21                                                        SQL vs Code
TDD
                      Write a test




Nicola Junior Vitto        22        SQL vs Code
TDD
                          Write a test

                      Check if the test fails




Nicola Junior Vitto              23             SQL vs Code
TDD
                          Write a test

                      Check if the test fails

                      Write business code




Nicola Junior Vitto              24             SQL vs Code
TDD
                          Write a test

                      Check if the test fails

                      Write business code

                          Run all tests


Nicola Junior Vitto              25             SQL vs Code
TDD
                          Write a test

                      Check if the test fails

                      Write business code

                          Run all tests

                          Refactor Code
Nicola Junior Vitto              26             SQL vs Code
TDD

                      How can you test
                      bottom-up apps?



Nicola Junior Vitto          27          SQL vs Code
TDD
                              How can you test
                              bottom-up apps?




                      Using your app
Nicola Junior Vitto                     28       SQL vs Code
TDD
                              How can you test
                              bottom-up apps?
                                             Writing tests
                                             after coding



                      Using your app
Nicola Junior Vitto                     29                   SQL vs Code
TDD
                              How can you test
                              bottom-up apps?
                                             Writing tests
                                             after coding
                                             Ok but can do better



                      Using your app
Nicola Junior Vitto                     30                          SQL vs Code
TDD
                              How can you test
                              bottom-up apps?
                                              Writing tests
                                              after coding
                                             Ok but can do better
                                             Not 100% code tested

                      Using your app
Nicola Junior Vitto                     31                          SQL vs Code
A bottom up approach
                          Collect requirements




Nicola Junior Vitto                32            SQL vs Code
A bottom up approach
                          Data design (all app.)




Nicola Junior Vitto                 33             SQL vs Code
A bottom up approach
                       SQL coding a/o stored procedures




Nicola Junior Vitto                   34                  SQL vs Code
A bottom up approach
                          Business logic (all app.)




Nicola Junior Vitto                   35              SQL vs Code
A bottom up approach
                         Presentation logic (all app.)




Nicola Junior Vitto                    36                SQL vs Code
A bottom up approach
                      • When the application can be viewed by the
                        customer?
                      • What about features?
                      • What about testing?
                      • What if you have to change something?
                      • What if you have to re-design the entire
                        core / data model?

Nicola Junior Vitto                          37                     SQL vs Code
A top down approach
                          Collect requirements




Nicola Junior Vitto                38            SQL vs Code
A top down approach
                       Apply an Agile methodology and
                        one or more Agile practices

     Methodologies                 XP           Scrum



                Practices    TDD          BDD    Pair Programming



Nicola Junior Vitto                  39                       SQL vs Code
A top down approach
                      Tipically divide all requirements into single
                          features with a real business value




Nicola Junior Vitto                        40                         SQL vs Code
A top down approach
                         Code every single feature
                           from start to end...
                                            Presentation layer

                                              Business layer

                                               Data Model



Nicola Junior Vitto                  41                        SQL vs Code
A top down approach
                         Code every single feature
                           from start to end...
                                            Presentation layer

                                              Business layer

                                               Data Model

                                           Can start from tests
                                             before coding
Nicola Junior Vitto                  42                        SQL vs Code
A top down approach
                       ...also the data model that solves
                               the actual “problem”




Nicola Junior Vitto                    43                   SQL vs Code
Grazie
                             Nicola Junior Vitto
                            njvitto@njvitto.com
                           http://www.njvitto.com
                              http://twitter.com/njvitto
                            http://friendfeed.com/njvitto
                      http://it.linkedin.com/in/nicolajuniorvitto


Nicola Junior Vitto                      44                         SQL vs Code
Q&A




Nicola Junior Vitto    45   SQL vs Code

More Related Content

Similar to SQL vs Code

San Francisco and Silicon Valley SQL Server User Groups
San Francisco and Silicon Valley SQL Server User GroupsSan Francisco and Silicon Valley SQL Server User Groups
San Francisco and Silicon Valley SQL Server User GroupsMark Ginnebaugh
 
Linqtosql 090629035715 Phpapp01
Linqtosql 090629035715 Phpapp01Linqtosql 090629035715 Phpapp01
Linqtosql 090629035715 Phpapp01google
 
Dev-In-Town:Linq To Sql by Chan Ming Man
Dev-In-Town:Linq To Sql by Chan Ming ManDev-In-Town:Linq To Sql by Chan Ming Man
Dev-In-Town:Linq To Sql by Chan Ming ManQuek Lilian
 
Jornadas tecnologicas2012mvvm
Jornadas tecnologicas2012mvvmJornadas tecnologicas2012mvvm
Jornadas tecnologicas2012mvvmjsromeroj
 
Linked In 1èRe Table Ronde 20110330
Linked In 1èRe Table Ronde 20110330Linked In 1èRe Table Ronde 20110330
Linked In 1èRe Table Ronde 20110330Dario Mangano
 
OBIEE OBIA Developer Profile
OBIEE OBIA Developer ProfileOBIEE OBIA Developer Profile
OBIEE OBIA Developer ProfileRajendra M
 
Declarative Database Development with SQL Server Data Tools
Declarative Database Development with SQL Server Data ToolsDeclarative Database Development with SQL Server Data Tools
Declarative Database Development with SQL Server Data ToolsGert Drapers
 
Big Data i CSC's optik, CSC Representative
Big Data i CSC's optik, CSC RepresentativeBig Data i CSC's optik, CSC Representative
Big Data i CSC's optik, CSC RepresentativeIBM Danmark
 
Praveen_Kumar_Ballari_Resume
Praveen_Kumar_Ballari_ResumePraveen_Kumar_Ballari_Resume
Praveen_Kumar_Ballari_ResumePraveen Kumar
 
Imran_SAP_BI_BW_BODS_RESUME
Imran_SAP_BI_BW_BODS_RESUMEImran_SAP_BI_BW_BODS_RESUME
Imran_SAP_BI_BW_BODS_RESUMEIMRAN KHAN
 
Agile BI via Data Vault and Modelstorming
Agile BI via Data Vault and ModelstormingAgile BI via Data Vault and Modelstorming
Agile BI via Data Vault and ModelstormingDaniel Upton
 
Ideal BI Philosophy
Ideal BI PhilosophyIdeal BI Philosophy
Ideal BI Philosophyidealsys
 
Microsoft (SQL Server)
Microsoft (SQL Server)Microsoft (SQL Server)
Microsoft (SQL Server)Vinayak Hegde
 
NoSQL – Beyond the Key-Value Store
NoSQL – Beyond the Key-Value StoreNoSQL – Beyond the Key-Value Store
NoSQL – Beyond the Key-Value StoreDATAVERSITY
 
Microsoft Breakthrough Insights
Microsoft Breakthrough InsightsMicrosoft Breakthrough Insights
Microsoft Breakthrough InsightsJeroen ter Heerdt
 

Similar to SQL vs Code (20)

San Francisco and Silicon Valley SQL Server User Groups
San Francisco and Silicon Valley SQL Server User GroupsSan Francisco and Silicon Valley SQL Server User Groups
San Francisco and Silicon Valley SQL Server User Groups
 
Gic2011 aula3-ingles
Gic2011 aula3-inglesGic2011 aula3-ingles
Gic2011 aula3-ingles
 
Gic2011 aula3-ingles
Gic2011 aula3-inglesGic2011 aula3-ingles
Gic2011 aula3-ingles
 
Linqtosql 090629035715 Phpapp01
Linqtosql 090629035715 Phpapp01Linqtosql 090629035715 Phpapp01
Linqtosql 090629035715 Phpapp01
 
Dev-In-Town:Linq To Sql by Chan Ming Man
Dev-In-Town:Linq To Sql by Chan Ming ManDev-In-Town:Linq To Sql by Chan Ming Man
Dev-In-Town:Linq To Sql by Chan Ming Man
 
Jornadas tecnologicas2012mvvm
Jornadas tecnologicas2012mvvmJornadas tecnologicas2012mvvm
Jornadas tecnologicas2012mvvm
 
Linked In 1èRe Table Ronde 20110330
Linked In 1èRe Table Ronde 20110330Linked In 1èRe Table Ronde 20110330
Linked In 1èRe Table Ronde 20110330
 
OBIEE OBIA Developer Profile
OBIEE OBIA Developer ProfileOBIEE OBIA Developer Profile
OBIEE OBIA Developer Profile
 
Declarative Database Development with SQL Server Data Tools
Declarative Database Development with SQL Server Data ToolsDeclarative Database Development with SQL Server Data Tools
Declarative Database Development with SQL Server Data Tools
 
Big Data i CSC's optik, CSC Representative
Big Data i CSC's optik, CSC RepresentativeBig Data i CSC's optik, CSC Representative
Big Data i CSC's optik, CSC Representative
 
Praveen_Kumar_Ballari_Resume
Praveen_Kumar_Ballari_ResumePraveen_Kumar_Ballari_Resume
Praveen_Kumar_Ballari_Resume
 
Imran_SAP_BI_BW_BODS_RESUME
Imran_SAP_BI_BW_BODS_RESUMEImran_SAP_BI_BW_BODS_RESUME
Imran_SAP_BI_BW_BODS_RESUME
 
Agile BI via Data Vault and Modelstorming
Agile BI via Data Vault and ModelstormingAgile BI via Data Vault and Modelstorming
Agile BI via Data Vault and Modelstorming
 
Ideal BI Philosophy
Ideal BI PhilosophyIdeal BI Philosophy
Ideal BI Philosophy
 
Microsoft (SQL Server)
Microsoft (SQL Server)Microsoft (SQL Server)
Microsoft (SQL Server)
 
NoSQL – Beyond the Key-Value Store
NoSQL – Beyond the Key-Value StoreNoSQL – Beyond the Key-Value Store
NoSQL – Beyond the Key-Value Store
 
Medikonda_CRM_Architect
Medikonda_CRM_ArchitectMedikonda_CRM_Architect
Medikonda_CRM_Architect
 
Medikonda_CRM_Architect
Medikonda_CRM_ArchitectMedikonda_CRM_Architect
Medikonda_CRM_Architect
 
2012 07 24 backbone_1
2012 07 24 backbone_12012 07 24 backbone_1
2012 07 24 backbone_1
 
Microsoft Breakthrough Insights
Microsoft Breakthrough InsightsMicrosoft Breakthrough Insights
Microsoft Breakthrough Insights
 

More from Nicola Junior Vitto

The new era of bots, multi-channel messaging solutions, dynamic routing and a...
The new era of bots, multi-channel messaging solutions, dynamic routing and a...The new era of bots, multi-channel messaging solutions, dynamic routing and a...
The new era of bots, multi-channel messaging solutions, dynamic routing and a...Nicola Junior Vitto
 
Building Blomming: A startup founder's experience
Building Blomming: A startup founder's experienceBuilding Blomming: A startup founder's experience
Building Blomming: A startup founder's experienceNicola Junior Vitto
 
Lean Startup Metrics & Analytics
Lean Startup Metrics & AnalyticsLean Startup Metrics & Analytics
Lean Startup Metrics & AnalyticsNicola Junior Vitto
 
Social Commerce & the new ways for E-commerce
Social Commerce & the new ways for E-commerceSocial Commerce & the new ways for E-commerce
Social Commerce & the new ways for E-commerceNicola Junior Vitto
 
Blomming Lean Startup @ Better Software 2011
Blomming Lean Startup @ Better Software 2011Blomming Lean Startup @ Better Software 2011
Blomming Lean Startup @ Better Software 2011Nicola Junior Vitto
 
The Lean Startup and Customer Development model. In Italy.
The Lean Startup and Customer Development model. In Italy.The Lean Startup and Customer Development model. In Italy.
The Lean Startup and Customer Development model. In Italy.Nicola Junior Vitto
 

More from Nicola Junior Vitto (7)

The new era of bots, multi-channel messaging solutions, dynamic routing and a...
The new era of bots, multi-channel messaging solutions, dynamic routing and a...The new era of bots, multi-channel messaging solutions, dynamic routing and a...
The new era of bots, multi-channel messaging solutions, dynamic routing and a...
 
Building Blomming: A startup founder's experience
Building Blomming: A startup founder's experienceBuilding Blomming: A startup founder's experience
Building Blomming: A startup founder's experience
 
Lean Startup Metrics & Analytics
Lean Startup Metrics & AnalyticsLean Startup Metrics & Analytics
Lean Startup Metrics & Analytics
 
Lean Startup - the Italian way
Lean Startup - the Italian wayLean Startup - the Italian way
Lean Startup - the Italian way
 
Social Commerce & the new ways for E-commerce
Social Commerce & the new ways for E-commerceSocial Commerce & the new ways for E-commerce
Social Commerce & the new ways for E-commerce
 
Blomming Lean Startup @ Better Software 2011
Blomming Lean Startup @ Better Software 2011Blomming Lean Startup @ Better Software 2011
Blomming Lean Startup @ Better Software 2011
 
The Lean Startup and Customer Development model. In Italy.
The Lean Startup and Customer Development model. In Italy.The Lean Startup and Customer Development model. In Italy.
The Lean Startup and Customer Development model. In Italy.
 

Recently uploaded

Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
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
 
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
 

Recently uploaded (20)

Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
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
 
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
 

SQL vs Code

  • 1. SQL vs Code Nicola Junior Vitto Servabit, Bologna, 25/01/2010
  • 2. Bottom up Presentation layer code Business layer code Business Database schema request Nicola Junior Vitto 2 SQL vs Code
  • 3. Bottom up Presentation layer coding Business layer coding Business Think about Database schema request the data model Nicola Junior Vitto 3 SQL vs Code
  • 4. Bottom up Presentation layer coding Start coding Business layer coding anything Business Database schema request Nicola Junior Vitto 4 SQL vs Code
  • 5. Bottom up Design the Presentation layer coding look & feel of your app Business layer coding Business Database schema request Nicola Junior Vitto 5 SQL vs Code
  • 6. Top Down Setup of all stack (business, pres., db) Business request Business & DB refinements Presentation refinements Nicola Junior Vitto 6 SQL vs Code
  • 7. Top Down Think about Setup of all stack a complete (business, pres., db) feature Business request Business & DB refinements Presentation refinements Nicola Junior Vitto 7 SQL vs Code
  • 8. Top Down Setup of all stack (business, pres., db) Business Refine all request Business & DB business refinements stack Presentation refinements Nicola Junior Vitto 8 SQL vs Code
  • 9. Top Down Setup of all stack (business, pres., db) Business request Business & DB refinements Presentation Design/Refine refinements interface Nicola Junior Vitto 9 SQL vs Code
  • 10. Top Down Setup of all stack (business, pres., db) Business request Business & DB refinements Often parallelisable Presentation refinements Nicola Junior Vitto 10 SQL vs Code
  • 11. Bottom Up vs Top Down Setup of all stack Presentation layer coding (business, presentation, db) Business layer coding Business & DB refinements Database schema Presentation refinements Nicola Junior Vitto 11 SQL vs Code
  • 12. Bottom Up vs Top Down Setup of all stack Database schema (business, presentation, db) Horizontal process Vertical process Presentation Business Feature Feature Feature A B C Data Design application data & SQL coding Release one feature at a time Nicola Junior Vitto 12 SQL vs Code
  • 13. Bottom Up vs Top Down Setup of all stack Presentation layer coding (business, presentation, db) Business layer coding Business & DB refinements Database schema Presentation refinements Nicola Junior Vitto 13 SQL vs Code
  • 14. Bottom Up vs Top Down Business layer coding Business & DB refinements Nicola Junior Vitto 14 SQL vs Code
  • 15. Bottom Up vs Top Down Setup of all stack Presentation layer coding (business, presentation, db) Business layer coding Business & DB refinements Database schema Presentation refinements Nicola Junior Vitto 15 SQL vs Code
  • 16. Bottom Up vs Top Down Presentation layer coding Presentation refinements Nicola Junior Vitto 16 SQL vs Code
  • 17. Bottom Up vs Top Down Bottom Up Top Down One piece Focus All stack at a time On single One feature Commitment “tech” part at a time Hope in Good Maintainability TDD/BDD Coding ;) Agile No Yes Nicola Junior Vitto 17 SQL vs Code
  • 18. Agile Manifesto Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan More info on: http://agilemanifesto.org/ Nicola Junior Vitto 18 SQL vs Code
  • 19. (Some) Agile Methods • Extreme Programming (XP): is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. • Scrum: is an iterative incremental framework for managing complex work (such as new product development) commonly used with agile software development. • Getting Real: Getting Real (by 37signals) eschews formal programming methodology and focuses on creating useful alpha software with small teams, then iterating to a simple useful application based, in part, on real-world customer feedback. More info on: http://en.wikipedia.org/wiki/Agile_software_development Nicola Junior Vitto 19 SQL vs Code
  • 20. (Some) Agile Practices • Test-driven Development (TDD) Repetition of a very short development cycle: First the developer writes a failing automated test case that defines a desired improvement or new function, then produces code to pass that test and finally refactors the new code to acceptable standards. • Behavior Driven Development (BDD) Behavior-driven developers use their native language in combination with the ubiquitous language of Domain Driven Design to describe the purpose and benefit of their code. This allows the developers to focus on why the code should be created, rather than the technical details, and minimizes translation between the technical language in which the code is written and the domain language spoken by the business, users, stakeholders, project management etc. More info on: http://en.wikipedia.org/wiki/Agile_software_development Nicola Junior Vitto 20 SQL vs Code
  • 21. (Some) Agile Practices • Continuous integration : The principle is to replace the old practice of applying quality control after all development has been completed by continuous processes, as small pieces of effort, applied frequently. • Pair programming : two programmers work together at one work station. One types in code while the other reviews each line of code as it is typed in. The person typing is called the driver. The person reviewing the code is called the observer or navigator. The two programmers switch roles frequently (possibly every 30 minutes or less). More info on: http://en.wikipedia.org/wiki/Agile_software_development Nicola Junior Vitto 21 SQL vs Code
  • 22. TDD Write a test Nicola Junior Vitto 22 SQL vs Code
  • 23. TDD Write a test Check if the test fails Nicola Junior Vitto 23 SQL vs Code
  • 24. TDD Write a test Check if the test fails Write business code Nicola Junior Vitto 24 SQL vs Code
  • 25. TDD Write a test Check if the test fails Write business code Run all tests Nicola Junior Vitto 25 SQL vs Code
  • 26. TDD Write a test Check if the test fails Write business code Run all tests Refactor Code Nicola Junior Vitto 26 SQL vs Code
  • 27. TDD How can you test bottom-up apps? Nicola Junior Vitto 27 SQL vs Code
  • 28. TDD How can you test bottom-up apps? Using your app Nicola Junior Vitto 28 SQL vs Code
  • 29. TDD How can you test bottom-up apps? Writing tests after coding Using your app Nicola Junior Vitto 29 SQL vs Code
  • 30. TDD How can you test bottom-up apps? Writing tests after coding Ok but can do better Using your app Nicola Junior Vitto 30 SQL vs Code
  • 31. TDD How can you test bottom-up apps? Writing tests after coding Ok but can do better Not 100% code tested Using your app Nicola Junior Vitto 31 SQL vs Code
  • 32. A bottom up approach Collect requirements Nicola Junior Vitto 32 SQL vs Code
  • 33. A bottom up approach Data design (all app.) Nicola Junior Vitto 33 SQL vs Code
  • 34. A bottom up approach SQL coding a/o stored procedures Nicola Junior Vitto 34 SQL vs Code
  • 35. A bottom up approach Business logic (all app.) Nicola Junior Vitto 35 SQL vs Code
  • 36. A bottom up approach Presentation logic (all app.) Nicola Junior Vitto 36 SQL vs Code
  • 37. A bottom up approach • When the application can be viewed by the customer? • What about features? • What about testing? • What if you have to change something? • What if you have to re-design the entire core / data model? Nicola Junior Vitto 37 SQL vs Code
  • 38. A top down approach Collect requirements Nicola Junior Vitto 38 SQL vs Code
  • 39. A top down approach Apply an Agile methodology and one or more Agile practices Methodologies XP Scrum Practices TDD BDD Pair Programming Nicola Junior Vitto 39 SQL vs Code
  • 40. A top down approach Tipically divide all requirements into single features with a real business value Nicola Junior Vitto 40 SQL vs Code
  • 41. A top down approach Code every single feature from start to end... Presentation layer Business layer Data Model Nicola Junior Vitto 41 SQL vs Code
  • 42. A top down approach Code every single feature from start to end... Presentation layer Business layer Data Model Can start from tests before coding Nicola Junior Vitto 42 SQL vs Code
  • 43. A top down approach ...also the data model that solves the actual “problem” Nicola Junior Vitto 43 SQL vs Code
  • 44. Grazie Nicola Junior Vitto njvitto@njvitto.com http://www.njvitto.com http://twitter.com/njvitto http://friendfeed.com/njvitto http://it.linkedin.com/in/nicolajuniorvitto Nicola Junior Vitto 44 SQL vs Code
  • 45. Q&A Nicola Junior Vitto 45 SQL vs Code

Editor's Notes