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

Más contenido relacionado

Destacado

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
 

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

Último

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 

Último (20)

Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAK
 
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
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
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...
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
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
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
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
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
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...
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
 

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