SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
ALM, the CALM way
                 A Calm approach to Enterprise software development




Wednesday, June 17, 2009
What is ALM

               Application lifecycle management (ALM) is
               the marriage of business management to
               software engineering made possible by tools
               that facilitate and integrate requirements
               management, architecture, coding, testing,
               tracking, and release management.




               http://en.wikipedia.org/wiki/Application_lifecycle_management

Wednesday, June 17, 2009
ALM Best Practices

                           Manage your Code Repository (SCM
                           checkout/tagging/checkin)
                           Manage your Artifact creation process
                           Manage Artifact versions
                           Deploy Artifacts
                           DTAP Street


Wednesday, June 17, 2009
Processes and Roles


                           the less processes, the better
                           the more automatized processes, the better
                           a process must be owned by someone
                           a process must be monitored




Wednesday, June 17, 2009
Why Maven


                           Concept of Lifecycle
                           Inheritance and property overriding
                           Widely spread




Wednesday, June 17, 2009
ALM + Maven = Calm


                           Contains process-oriented behaviors
                           Separation of Concerns
                           Just a Corporate POM (or its parent)...
                           ... but OpenSource




Wednesday, June 17, 2009
Calm Features
                           Maven Enforcer Plugin (checks Maven and
                           JDK version)
                           Maven Site Plugin for documentation
                           Maven Cargo Plugin for remote WAR
                           deployment
                           Maven Deploy Plugin + Nexus as a central
                           Repository
                           Maven Selenium/Surefire Plugin for testing
                           Maven Release Plugin for SCM
Wednesday, June 17, 2009
Infrastructure Ready




       http://juddsolutions.blogspot.com/2009/05/ultimate-enterprise-java-build-system.html

Wednesday, June 17, 2009
... and we’re not the only
                            ones




              http://juddsolutions.blogspot.com/2009/05/ultimate-enterprise-java-build-system.html
Wednesday, June 17, 2009
... and we’re not the only
                            ones




          http://wiki.community.objectware.no/display/smidigtonull/Enterprise+Maven+Infrastructure
Wednesday, June 17, 2009
... and we’re not the only
                            ones




                      http://weblogs.java.net/blog/johnsmart/archive/2009/05/javaone_getting.html
Wednesday, June 17, 2009
... and we’re not the only
                            ones




         http://sonar.codehaus.org/hudson-sonar-plugin-10-to-industrialize-the-ultimate-build-system/
Wednesday, June 17, 2009
... and we’re not the only
                            ones




                http://www.sonatype.com/people/2009/06/nexus-open-source-and-hudson-on-ec2/
Wednesday, June 17, 2009
Give it a try!
                           <parent>
                              <groupId>com.sourcesense.maven</groupId>
                              <artifactId>maven-calm</artifactId>
                              <version>1.0-beta-5</version>
                           </parent>

                           ...

                           <repositories>
                              ...
                              <repository>
                                  <id>sose-public</id>
                                  <url>http://repository.sourcesense.com/nexus/content/groups/public</url>
                              </repository>
                           </repositories>

                           ...

                           <scm>
                              <connection>${maven.release.connection}</connection>
                              <developerConnection>${maven.release.developerConnection}</
                              developerConnection>
                              <url>${maven.release.url}</url>
                           </scm>

Wednesday, June 17, 2009
Customize your
                                             properties
                           <!-- The most common properties that you might want to override -->

                           <!-- Enforcer Defaults -->
                           <maven.version>2.0.6</maven.version>
                           <java.version>1.5.0</java.version>

                           <!-- Dev Environment Defaults -->
                           <java.compiler.version>1.5</java.compiler.version>
                           <application.properties.location>src/main/properties/${env}</application.properties.location>
                           <application.properties.filename>application.properties</application.properties.filename>
                           <eclipse.downloadSources>true</eclipse.downloadSources>
                           <env>local</env>

                           <!-- Maven Release Plugin Defaults -->
                           <maven.release.goals>install deploy</maven.release.goals>
                           <maven.release.scm.provider>svn</maven.release.scm.provider>
                           <maven.release.scm.url>http://my.code.repo</maven.release.scm.url>
                           <maven.release.multimodule>true</maven.release.multimodule>
                           <maven.release.arguments></maven.release.arguments>

                           <!-- Maven Deploy Plugin Defaults -->
                           <maven.deploy.repository.id>maven-repo</maven.deploy.repository.id>
                           <maven.deploy.repository.url>http://localhost/your/repo</maven.deploy.repository.url>

                           <!-- Maven Site Plugin Defaults -->
                           <maven.site.id>maven-site</maven.site.id>
                           <maven.site.url>scp://localhost/var/www/${project.build.finalName}</maven.site.url>

                           <!-- Selenium Defaults -->
                           <selenium.browser>*firefox</selenium.browser>
                           <selenium.server.port>4444</selenium.server.port>

                           <!-- Plugin Versions Defaults -->
                           <plugin.selenium.version>1.0-rc-2-SNAPSHOT</plugin.selenium.version>
                           <plugin.cargo.version>1.0.1-SNAPSHOT</plugin.cargo.version>

Wednesday, June 17, 2009
References


               http://www.sourcesense.nl/process/alm.html

               http://code.google.com/p/maven-calm/

               http://maven-calm.googlecode.com/svn/trunk/pom.xml

               http://maven-calm.googlecode.com/svn/trunk/README.txt




Wednesday, June 17, 2009

Contenu connexe

En vedette

Self confidence to do be-get
Self confidence to do be-getSelf confidence to do be-get
Self confidence to do be-get
Mark Rogers
 

En vedette (19)

Storytelling: finding UX moments that count
Storytelling: finding UX moments that countStorytelling: finding UX moments that count
Storytelling: finding UX moments that count
 
MongoDB Strange Loop 2009
MongoDB Strange Loop 2009MongoDB Strange Loop 2009
MongoDB Strange Loop 2009
 
User motivation in crowdsourcing
User motivation in crowdsourcingUser motivation in crowdsourcing
User motivation in crowdsourcing
 
Mobile Application Development Services and Why We Need It?
Mobile Application Development Services and Why We Need It?Mobile Application Development Services and Why We Need It?
Mobile Application Development Services and Why We Need It?
 
AERA 2012 presentation on Nudge
AERA 2012 presentation on NudgeAERA 2012 presentation on Nudge
AERA 2012 presentation on Nudge
 
Bill 53 FD1
Bill 53 FD1Bill 53 FD1
Bill 53 FD1
 
יצירת אפליקציות iPhone
יצירת אפליקציות iPhoneיצירת אפליקציות iPhone
יצירת אפליקציות iPhone
 
Flow: A New Consciousness for a Web of Traffic
Flow: A New Consciousness for a Web of TrafficFlow: A New Consciousness for a Web of Traffic
Flow: A New Consciousness for a Web of Traffic
 
Importancia de los CMS para un Community Manager
Importancia de los CMS para un Community ManagerImportancia de los CMS para un Community Manager
Importancia de los CMS para un Community Manager
 
Lifestreaming: The White Paper (Weber Shandwick)
Lifestreaming: The White Paper (Weber Shandwick)Lifestreaming: The White Paper (Weber Shandwick)
Lifestreaming: The White Paper (Weber Shandwick)
 
e-Safety, Ofsted and the new Computing Curriculum for Governors 2014
e-Safety, Ofsted and the new Computing Curriculum for Governors 2014e-Safety, Ofsted and the new Computing Curriculum for Governors 2014
e-Safety, Ofsted and the new Computing Curriculum for Governors 2014
 
Self confidence to do be-get
Self confidence to do be-getSelf confidence to do be-get
Self confidence to do be-get
 
Digital Britain or Digital Landfill
Digital Britain or Digital LandfillDigital Britain or Digital Landfill
Digital Britain or Digital Landfill
 
Scrum between different platforms and different domains
Scrum between different platforms and different domainsScrum between different platforms and different domains
Scrum between different platforms and different domains
 
Digital Literacy and Professional Development #heie
Digital Literacy and Professional Development #heieDigital Literacy and Professional Development #heie
Digital Literacy and Professional Development #heie
 
The Next Generation Cloud: Unleashing the Power of the Unikernal
The Next Generation Cloud: Unleashing the Power of the UnikernalThe Next Generation Cloud: Unleashing the Power of the Unikernal
The Next Generation Cloud: Unleashing the Power of the Unikernal
 
Solid Principles
Solid PrinciplesSolid Principles
Solid Principles
 
Guerrilla foursquare - CAA 2012
Guerrilla foursquare - CAA 2012Guerrilla foursquare - CAA 2012
Guerrilla foursquare - CAA 2012
 
Varnish, the high performance valhalla?
Varnish, the high performance valhalla?Varnish, the high performance valhalla?
Varnish, the high performance valhalla?
 

Dernier

Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 

Dernier (20)

Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
The UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, OcadoThe UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, Ocado
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
THE BEST IPTV in GERMANY for 2024: IPTVreel
THE BEST IPTV in  GERMANY for 2024: IPTVreelTHE BEST IPTV in  GERMANY for 2024: IPTVreel
THE BEST IPTV in GERMANY for 2024: IPTVreel
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 

Maven Calm

  • 1. ALM, the CALM way A Calm approach to Enterprise software development Wednesday, June 17, 2009
  • 2. What is ALM Application lifecycle management (ALM) is the marriage of business management to software engineering made possible by tools that facilitate and integrate requirements management, architecture, coding, testing, tracking, and release management. http://en.wikipedia.org/wiki/Application_lifecycle_management Wednesday, June 17, 2009
  • 3. ALM Best Practices Manage your Code Repository (SCM checkout/tagging/checkin) Manage your Artifact creation process Manage Artifact versions Deploy Artifacts DTAP Street Wednesday, June 17, 2009
  • 4. Processes and Roles the less processes, the better the more automatized processes, the better a process must be owned by someone a process must be monitored Wednesday, June 17, 2009
  • 5. Why Maven Concept of Lifecycle Inheritance and property overriding Widely spread Wednesday, June 17, 2009
  • 6. ALM + Maven = Calm Contains process-oriented behaviors Separation of Concerns Just a Corporate POM (or its parent)... ... but OpenSource Wednesday, June 17, 2009
  • 7. Calm Features Maven Enforcer Plugin (checks Maven and JDK version) Maven Site Plugin for documentation Maven Cargo Plugin for remote WAR deployment Maven Deploy Plugin + Nexus as a central Repository Maven Selenium/Surefire Plugin for testing Maven Release Plugin for SCM Wednesday, June 17, 2009
  • 8. Infrastructure Ready http://juddsolutions.blogspot.com/2009/05/ultimate-enterprise-java-build-system.html Wednesday, June 17, 2009
  • 9. ... and we’re not the only ones http://juddsolutions.blogspot.com/2009/05/ultimate-enterprise-java-build-system.html Wednesday, June 17, 2009
  • 10. ... and we’re not the only ones http://wiki.community.objectware.no/display/smidigtonull/Enterprise+Maven+Infrastructure Wednesday, June 17, 2009
  • 11. ... and we’re not the only ones http://weblogs.java.net/blog/johnsmart/archive/2009/05/javaone_getting.html Wednesday, June 17, 2009
  • 12. ... and we’re not the only ones http://sonar.codehaus.org/hudson-sonar-plugin-10-to-industrialize-the-ultimate-build-system/ Wednesday, June 17, 2009
  • 13. ... and we’re not the only ones http://www.sonatype.com/people/2009/06/nexus-open-source-and-hudson-on-ec2/ Wednesday, June 17, 2009
  • 14. Give it a try! <parent> <groupId>com.sourcesense.maven</groupId> <artifactId>maven-calm</artifactId> <version>1.0-beta-5</version> </parent> ... <repositories> ... <repository> <id>sose-public</id> <url>http://repository.sourcesense.com/nexus/content/groups/public</url> </repository> </repositories> ... <scm> <connection>${maven.release.connection}</connection> <developerConnection>${maven.release.developerConnection}</ developerConnection> <url>${maven.release.url}</url> </scm> Wednesday, June 17, 2009
  • 15. Customize your properties <!-- The most common properties that you might want to override --> <!-- Enforcer Defaults --> <maven.version>2.0.6</maven.version> <java.version>1.5.0</java.version> <!-- Dev Environment Defaults --> <java.compiler.version>1.5</java.compiler.version> <application.properties.location>src/main/properties/${env}</application.properties.location> <application.properties.filename>application.properties</application.properties.filename> <eclipse.downloadSources>true</eclipse.downloadSources> <env>local</env> <!-- Maven Release Plugin Defaults --> <maven.release.goals>install deploy</maven.release.goals> <maven.release.scm.provider>svn</maven.release.scm.provider> <maven.release.scm.url>http://my.code.repo</maven.release.scm.url> <maven.release.multimodule>true</maven.release.multimodule> <maven.release.arguments></maven.release.arguments> <!-- Maven Deploy Plugin Defaults --> <maven.deploy.repository.id>maven-repo</maven.deploy.repository.id> <maven.deploy.repository.url>http://localhost/your/repo</maven.deploy.repository.url> <!-- Maven Site Plugin Defaults --> <maven.site.id>maven-site</maven.site.id> <maven.site.url>scp://localhost/var/www/${project.build.finalName}</maven.site.url> <!-- Selenium Defaults --> <selenium.browser>*firefox</selenium.browser> <selenium.server.port>4444</selenium.server.port> <!-- Plugin Versions Defaults --> <plugin.selenium.version>1.0-rc-2-SNAPSHOT</plugin.selenium.version> <plugin.cargo.version>1.0.1-SNAPSHOT</plugin.cargo.version> Wednesday, June 17, 2009
  • 16. References http://www.sourcesense.nl/process/alm.html http://code.google.com/p/maven-calm/ http://maven-calm.googlecode.com/svn/trunk/pom.xml http://maven-calm.googlecode.com/svn/trunk/README.txt Wednesday, June 17, 2009