SlideShare a Scribd company logo
Services, tools &
practices for a software
         house
or...how to make your development team
           effective and happy


                          Paris Apostolopoulos
About me ...
● 'Met' Java back in 1999..fell in love!Java career
  started 2001 (intern)
● 2003 co-founding JHUG / Administrator
● Focus on J2EE and BPM-N (lately)
● I enjoy team work, envy developers, dislike
  incompetent management :P
● I love effective procedures and keeping things in
  order!
● @javapapo (twitter)
● javapapo.blogspot.com (blog)
● www.linkedin.com/in/javaneze
● javapapo@mac.com
Agenda
● Why?
● Let's talk about us - the developers
● The software development house
  ○ Code repository versioning system
  ○ Issue / Bug Tracker
  ○ Wiki / Knowledge base
  ○ Build Server / Continuous Integration
  ○ Testing
  ○ Code Quality
  ○ Training developers
● Other important things
  ○ Project structure and build tools
  ○ The issue of security
Why? (I am doing this
presentation)
Why? ..2
● Why companies still ignore basic tools and
  practises of moden software development
  methodologies?
● Is it rocket science or difficult to implement?
   ○ I dont think so...
● Why developers do not push things towards
  improvement? (lazy?dissapointed?)
● Why developers get used of an inefficient
  software development cycle? They embrace
  it at the end of the day.
Why? ..3
● Don't we have enough books about modern
  software development?
● Is it software developers the case or IT
  managers? Is there a disconnect?
● We want faster, safer, robust and flexible
  software but..do we really work towards this
  goal?
● Who to blame? Do we need to blame
  anyone?
Do we fit into this category?

"One category of profession is
driven by the mediocre, the
average, and the middle-of-the-
road. In it, the mediocre is
collectively consequential."

Nassim Nicholas Taleb, The Black
Swan
What I really want from you today
● It is not only about a listing several tools and
  techniques, that I am sure many of you know.
● It is not about blaming managers, developers or
  anyone else.
● Ask yourself, I am really working in the most
  effective and proper way?
● Can I introduce change? Have I tried?
● Do I want to change? Use proper tools, become
  more effective?
● Is there any check list of things? (yes follow up)
Code repository / Versioning
System
● Do you have one? ....(hope so)
● Select the appropriate type depending on
  your needs
  ○ VSS, CVS, SVN, Git, Merculiar
● $$ - Some of them are completely free!
● It's 2011, do we still need to talk about why
  we need one??
Code repository / Versioning
System
● Do you Back up?
  ○ A code repository with no proper
       backup is just like a skydiver with no
       back up parachute! #fact
●   Consider remote access?
●   Have you invested enough time to learn
    about your versioning system?
    ○ no matter if you have the most
       advanced tool if you dont how to
       proplery use it you will not make
       much out of it. #fact
Issue / Bug Tracker
● How dissapointing ...not to
  have one.
● People still use their heads,
  emails or their log books to
  note, remember and handle
  issues.
  ○ A tracker does it better! #fact
● How many times you have
  heard the following..
  ○ 'Send me an email about that'
Issue / Bug Tracker
● Which one? ($)
  ○ Many choices, free and commercial
  ○ JIRA, Trac, Bugzzilla,YouTrack, Redmine etc.
● Back up
  ○ Yes, you need to have a proper back up too.
● Invest some time or even force your people to use it -
    there great managerial advantages over that!
●   Try to reduce the amount of project related
    information floating through emails!
Issue / Bug Tracker
● Developers & Managers get a system where they
    can track the past ,monitor the present and plan
    effectively for the future.
●   Metrics regarding work allocation and performance
    can be derived.
●   Increase flexibility and dynamics of the development
    team to address sudden changes or problems.
●   Learn from your...tracked mistakes ;) #fact
●   We usually forget issues resolved a week ago. #fact
Wiki - Knowledge Base
● We assume that there is some sort of analysis +
  documentation about your software (?)..is it?
   ○ Saying ' we are agile and we dont waste our time with such
      stuff' IS NOT cool! #fact
● Where do you store, develop and maintain this
  information?
● Unfortunately many companies/teams still use
  emails/ oral communication or Word documents.
● We live in the internet + collaboration era - wake up!!
Wiki - Knowledge Base
● There are many free or paid products or event
  services plain wiki installations, MediaWiki,
  Confluence
● Make them available and open to your team.
● Dont reside on closed standards or systems.
● Keep it simple.
● Try to capture all related documentation and
  information regarding a project.
● Inter connect your Issue Tracker with your wiki
● Remote access : )
Wiki - Knowledge Base
● + You dont need so many licenses for word editing
  software.
● You can still share information with outsiders.
● You can 'bring in' your customers to their specific
  island on your knowledge base.
● Try to apply it on a company level- not only on
  software development teams.
Build Server - Continuous
Integration
     geeks




                 Code
               Repository




                              Watch/Pull/Monitor
   Customers                       Code


                    Release                        Build.
                    Provide                        Identify Build
                    Updates      Builder           Errors
                                 Server



                                    Test
                                  Run Tests
Build Server - Continuous
Integration
'In essense, Continuous Integration is about reducing
risk, providing faster feedback.It is designed to help
identify and fix integration and regression issues faster,
resulting in smoother, quicker delivery and fewer bugs.'

Jenkins,The Definite Guide,Chapter 1
J.Ferguson Smart,Oreilly
Build Server - Continuous
Integration
● Potential solutions
     ○ Hudson/Jenkins,CruiseControl,Contunuum,
     ○ TeamCity, Bamboo
●   Eventually a build server does things behind the
    curtains - you just have to make sure it works and
    configure it properly.
●   It is the real implementation of Cont.Integration as a
    practise.
●   Beware of hardware requirements.
●   Potential services in the cloud-internet.
Testing....a sad story
Testing..unit testing
● There are many types of testing, unit, functional,
    cross cutting, integration.
●   We will focus on unit tests.
●   It is not the holy grail. A pragmatic approach.
●   We can't ignore it!
●   For the managers: Learn to properly add testing on
    project estimates.
●   For Developers: We get lazy sometimes, lets face it.
Testing..unit testing
● Tools / Frameworks
  ○ JUnit
  ○ TestNG
  ○ JMock
  ○ Mockito (#win)
  ○ Ejb3Unit
  ○ XMLUnit
  ○ HTMLUnit
Testing..unit testing
● Tools / Frameworks - Functional Testing
  ○ Selenium
  ○ Sahi
  ○ JMeter (Perfomance & Testing)
● Code Coverage
  ○ Meaning: how much of our code is 'covered' by
       tests.
   ○   EMMA, Coberatura, Clover etc
Code Quality
Code Quality
● Another sad story... (#fail)
● It is still considered as a nice to have/ nice to check
    practise by many managers and even developers.
●   There are tools that can help you tackle time, effort
    and estimate problems in order to monitor and
    preserve the quality of the code.
●   Tools that scan your code base and identify many
    basic or advanced problems, sometimes perfomance
    problems or potential concurrency bugs.
Code Quality..for Java Developers
●   FindBugs
●   PMD
●   CheckStyle
●   JDepend
●   Sonar
●   Prevent
●   EclEmma
Most of them can be easily integrated to your IDE. It is
just a click away!
Training
● Training should be encouraged in an personal level +
    promoted company wise.
●   Skills need to be updated.
●   Companies need to leverage the benefits of training
    their development teams¨
    ○ Internal
    ○ Conferences
    ○ Support local communities
Training
●   Introduce a company library
    ○   Buy at least one or two books every month and add
        them to the library.
    ○   Encourage people to read.
●   Engage developers internally with coding sessions and
    presentations.
●   Give space to those that are willing to experiment with
    something new, let them bring back their experience.
●   Promote the do-ers.
●   Teach young developers...the power of the force ;)
Some extra things to consider...
Project structure / Building tools
● Please stop - creating and building projects using
    your IDE as a building tool!
●   You introduce a technical dependency - increase
    maintenance effort and your build 'system' may be
    become obsolete at any time.
Project structure / Building tools
● Java developers are lucky enough to have a variety
    of tools that handle buidling, structure and library
    dependencies.
●   We have some sort of 'standards'
●   The main goals for your project must be
    ○ to be complete IDE un-aware
    ○ can be built in any platform easily
    ○ building activitity to be easily maintained or
        changed
● Keep it simple
Project structure / Building tools
● Tools and frameworks to consider
  ○ Apache Ant
  ○ Apache Maven
  ○ Apache Ivy
  ○ Gradle
  ○ Gant
  ○ Buildr
Project structure / Building tools
● Java developers are lucky enough to have a variety
    of tools that handle build, structure and library
    dependencies.
●   We have some sort of 'standards'.
●   The main goals for your project must be
    ○ to be complete IDE un-aware
    ○ can be built in any platform easily
    ○ building activitity to be easily maintained or
        changed
●   Keep it simple
Secure...coding
● Unfortunately it is one of our lowest priorities.
● It is obvious, since security threats appear in all sorts
    of software- all the time.We still suffer from them.
●   We need to embrace the principles of security in our
    architecture and actual software development
    activity.
Secure...coding
● Content provided by Dimitris Stergiou
  ○ http://www.linkedin.com/in/dimitriosstergiou
  ○ @dstergiou
Secure...coding

● OWASP (owasp.org)
  ○ free and open application security community
● Think and introduce security requirements for your
    project - before implementation.
●   Resources for Security testing
    ○ OWASP Top 10 Wev Application Security Issues
    ○ OWASP Testing Guide v3.v4
Secure...coding

● Tools (static)
  ○ Peer review: Check each other's code.
  ○ Static Code Analysis (http://en.wikipedia.
                                   )
       org/wiki/List_of_tools_for_static_code_analysis

   ○   Commercial Static code analysis
       ■ IBM (Ounce Labs)
       ■ HP (Fortify) - in the cloud as well
       ■ Veracode
Secure...coding
● Tools (dynamic testing)
  ○ Manual Penetration testing
  ○ MITM Proxies ( paros, burp, owasp zap, charles)
  ○ Web Application scanners
     ■ Nikto
     ■ w3af
     ■ Arachni
     ■ Skipfish
     ■ Websecurify
     ■ sqlamp (sql injections
Secure...coding

● People and all that Jazz
  ○ Awareness
  ○ Training
  ○ Development
  ○ Testing
  ○ Goto Awareness ;)
To conclude
● Do your own check list - and see on
  how many of the above apply to your
  working enviroment
● Ask yourself what would you like to
  change or improve?
Try to change it
● Spread the word
Thanks, any questions?
References
● This talk was based on the following
  posts
  ○   Part 1:http://javapapo.blogspot.com/2011/06/services-practises-and-tools-that.html
  ○   Part 2:http://javapapo.blogspot.com/2011/06/services-practices-and-tools-that.html
  ○   Part 3:http://javapapo.blogspot.com/2011/06/services-practices-and-tools-that_27.html
  ○   Part 4:http://javapapo.blogspot.com/2011/06/services-practises-and-tools-that_27.htm
References - books
●   Jenkins, The Definite Guide, J.Ferguson Smart, Oreilly
●   Agile ALM, Leighweight tools, Agile strategies, M.Huttermann, Manning
●   Git (Communit Book) -book.git-scm.com
●   Version Control with Subversion, svnbook.red-bean.com
●   Continuous Integration,Improving software quality and reducing risk,
    Martin Fowler.
●   Ant in Action, Manning
●   Maven the Complete reference,
     ○ http://www.sonatype.com/books/mvnref-book/reference/
●   JUnit in Action, Manning
●   Maven -the definite guide, Oreilly

More Related Content

What's hot

Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
Zahoor Khan
 
Ch20 systems of systems
Ch20 systems of systemsCh20 systems of systems
Ch20 systems of systems
software-engineering-book
 
Lecture 12 requirements modeling - (system analysis)
Lecture 12   requirements modeling - (system analysis)Lecture 12   requirements modeling - (system analysis)
Lecture 12 requirements modeling - (system analysis)
IIUI
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
Dharmalingam Ganesan
 
Software Engineering (Risk Management)
Software Engineering (Risk Management)Software Engineering (Risk Management)
Software Engineering (Risk Management)
ShudipPal
 
Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture Patterns
Assaf Gannon
 
An introduction to software engineering
An introduction to software engineeringAn introduction to software engineering
An introduction to software engineering
Carlos Gavidia-Calderon
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1
Fadhil Ismail
 
Introduction to Enterprise Architecture
Introduction to Enterprise Architecture Introduction to Enterprise Architecture
Introduction to Enterprise Architecture
Leo Shuster
 
Software process and project metrics
Software process and project metricsSoftware process and project metrics
Software process and project metrics
Indu Sharma Bhardwaj
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design ppt
farazimlak
 
Unified process model
Unified process modelUnified process model
Unified process model
RyndaMaala
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1
Mohammed Romi
 
Enterprise Architecture, Project Management & Digital Transformation
Enterprise Architecture, Project Management & Digital TransformationEnterprise Architecture, Project Management & Digital Transformation
Enterprise Architecture, Project Management & Digital Transformation
Riaz A. Khan, OpenCA, TOGAF
 
Web Engineering
Web EngineeringWeb Engineering
Web Engineering
Muhammad Muzammal
 
How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...
How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...
How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...
Splunk
 
What is ERP
What is ERPWhat is ERP
Review of Information Technology Function Critical Capability Models
Review of Information Technology Function Critical Capability ModelsReview of Information Technology Function Critical Capability Models
Review of Information Technology Function Critical Capability Models
Alan McSweeney
 

What's hot (20)

Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Iso26262 component reuse_webinar
Iso26262 component reuse_webinarIso26262 component reuse_webinar
Iso26262 component reuse_webinar
 
Ch20 systems of systems
Ch20 systems of systemsCh20 systems of systems
Ch20 systems of systems
 
Lecture 12 requirements modeling - (system analysis)
Lecture 12   requirements modeling - (system analysis)Lecture 12   requirements modeling - (system analysis)
Lecture 12 requirements modeling - (system analysis)
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Software Engineering (Risk Management)
Software Engineering (Risk Management)Software Engineering (Risk Management)
Software Engineering (Risk Management)
 
Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture Patterns
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
An introduction to software engineering
An introduction to software engineeringAn introduction to software engineering
An introduction to software engineering
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1
 
Introduction to Enterprise Architecture
Introduction to Enterprise Architecture Introduction to Enterprise Architecture
Introduction to Enterprise Architecture
 
Software process and project metrics
Software process and project metricsSoftware process and project metrics
Software process and project metrics
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design ppt
 
Unified process model
Unified process modelUnified process model
Unified process model
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1
 
Enterprise Architecture, Project Management & Digital Transformation
Enterprise Architecture, Project Management & Digital TransformationEnterprise Architecture, Project Management & Digital Transformation
Enterprise Architecture, Project Management & Digital Transformation
 
Web Engineering
Web EngineeringWeb Engineering
Web Engineering
 
How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...
How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...
How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...
 
What is ERP
What is ERPWhat is ERP
What is ERP
 
Review of Information Technology Function Critical Capability Models
Review of Information Technology Function Critical Capability ModelsReview of Information Technology Function Critical Capability Models
Review of Information Technology Function Critical Capability Models
 

Viewers also liked

Building Software In-House: Too Much Control and Flexibility
Building Software In-House: Too Much Control and FlexibilityBuilding Software In-House: Too Much Control and Flexibility
Building Software In-House: Too Much Control and Flexibility
Ivan Ruchkin
 
Software Startup Ecosystems Evolution - The New York City Case Study
Software Startup Ecosystems Evolution - The New York City Case StudySoftware Startup Ecosystems Evolution - The New York City Case Study
Software Startup Ecosystems Evolution - The New York City Case Study
Daniel Cukier
 
How to Start a Tech Company
How to Start a Tech CompanyHow to Start a Tech Company
How to Start a Tech Company
Suzanne Dergacheva
 
Praca Codibly - Demand Response Management
Praca Codibly - Demand Response ManagementPraca Codibly - Demand Response Management
Praca Codibly - Demand Response Management
Codibly - Software House
 
Programmer To Ceo: How to start your own software business
Programmer To Ceo: How to start your own software businessProgrammer To Ceo: How to start your own software business
Programmer To Ceo: How to start your own software business
shodson
 
Starting a Software Developer Career
Starting a Software Developer CareerStarting a Software Developer Career
Starting a Software Developer Career
Aleksejs Truhans
 
Software Startup Stages / Maturity Checklist SVCC09
Software Startup Stages / Maturity Checklist SVCC09Software Startup Stages / Maturity Checklist SVCC09
Software Startup Stages / Maturity Checklist SVCC09
Sean Murphy
 
Why and How to do a Software Startup
Why and How to do a Software StartupWhy and How to do a Software Startup
Why and How to do a Software Startup
kyptin
 
Starting a Software Development Business
Starting a Software Development BusinessStarting a Software Development Business
Starting a Software Development Business
Joe Walling
 
How to Build a Software Company by Hamid Shojaee
How to Build a Software Company by Hamid ShojaeeHow to Build a Software Company by Hamid Shojaee
How to Build a Software Company by Hamid ShojaeePHX Startup Week
 
Business plan of a software house
Business plan of a software houseBusiness plan of a software house
Business plan of a software house
Farwa Ansari
 
PJ Software Company Presentation
PJ Software Company PresentationPJ Software Company Presentation
PJ Software Company Presentation
PJ Software
 
Business plan - Entrepreneurship
Business plan - EntrepreneurshipBusiness plan - Entrepreneurship
Business plan - Entrepreneurship
Nijaz N
 
Software company marketing plan outline
Software company marketing plan outlineSoftware company marketing plan outline
Software company marketing plan outline
Daniel Stiel
 
Business plan for fast food restaurant
Business plan for fast food restaurantBusiness plan for fast food restaurant
Business plan for fast food restaurant
Elizabeth Marcus
 

Viewers also liked (15)

Building Software In-House: Too Much Control and Flexibility
Building Software In-House: Too Much Control and FlexibilityBuilding Software In-House: Too Much Control and Flexibility
Building Software In-House: Too Much Control and Flexibility
 
Software Startup Ecosystems Evolution - The New York City Case Study
Software Startup Ecosystems Evolution - The New York City Case StudySoftware Startup Ecosystems Evolution - The New York City Case Study
Software Startup Ecosystems Evolution - The New York City Case Study
 
How to Start a Tech Company
How to Start a Tech CompanyHow to Start a Tech Company
How to Start a Tech Company
 
Praca Codibly - Demand Response Management
Praca Codibly - Demand Response ManagementPraca Codibly - Demand Response Management
Praca Codibly - Demand Response Management
 
Programmer To Ceo: How to start your own software business
Programmer To Ceo: How to start your own software businessProgrammer To Ceo: How to start your own software business
Programmer To Ceo: How to start your own software business
 
Starting a Software Developer Career
Starting a Software Developer CareerStarting a Software Developer Career
Starting a Software Developer Career
 
Software Startup Stages / Maturity Checklist SVCC09
Software Startup Stages / Maturity Checklist SVCC09Software Startup Stages / Maturity Checklist SVCC09
Software Startup Stages / Maturity Checklist SVCC09
 
Why and How to do a Software Startup
Why and How to do a Software StartupWhy and How to do a Software Startup
Why and How to do a Software Startup
 
Starting a Software Development Business
Starting a Software Development BusinessStarting a Software Development Business
Starting a Software Development Business
 
How to Build a Software Company by Hamid Shojaee
How to Build a Software Company by Hamid ShojaeeHow to Build a Software Company by Hamid Shojaee
How to Build a Software Company by Hamid Shojaee
 
Business plan of a software house
Business plan of a software houseBusiness plan of a software house
Business plan of a software house
 
PJ Software Company Presentation
PJ Software Company PresentationPJ Software Company Presentation
PJ Software Company Presentation
 
Business plan - Entrepreneurship
Business plan - EntrepreneurshipBusiness plan - Entrepreneurship
Business plan - Entrepreneurship
 
Software company marketing plan outline
Software company marketing plan outlineSoftware company marketing plan outline
Software company marketing plan outline
 
Business plan for fast food restaurant
Business plan for fast food restaurantBusiness plan for fast food restaurant
Business plan for fast food restaurant
 

Similar to Services, tools & practices for a software house

Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?
Kris Buytaert
 
Managing software projects & teams effectively
Managing software projects & teams effectivelyManaging software projects & teams effectively
Managing software projects & teams effectively
Ashutosh Agarwal
 
Usable Software Design
Usable Software DesignUsable Software Design
Usable Software Design
Alexandru Bolboaca
 
Pusheando en master, que es gerundio
Pusheando en master, que es gerundioPusheando en master, que es gerundio
Pusheando en master, que es gerundio
Isidro José López Martínez
 
Developing Better Software
Developing Better SoftwareDeveloping Better Software
Developing Better Software
Hean Hong Leong
 
What is xp
What is xpWhat is xp
What is xp
Simone Federici
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
Ahmet Bulut
 
Agile Development: Key to smart software development
Agile Development: Key to smart software developmentAgile Development: Key to smart software development
Agile Development: Key to smart software development
Jerlyn Manohar
 
Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.
Kris Buytaert
 
Usa prácticas de integración continua y sobrevive para luchar otro día.
 Usa prácticas de integración continua y sobrevive para luchar otro día. Usa prácticas de integración continua y sobrevive para luchar otro día.
Usa prácticas de integración continua y sobrevive para luchar otro día.
Software Guru
 
Investing in a good software factory and automating the build process
Investing in a good software factory and automating the build processInvesting in a good software factory and automating the build process
Investing in a good software factory and automating the build process
Nicolas Mas
 
What is dev ops?
What is dev ops?What is dev ops?
What is dev ops?
Mukta Aphale
 
TDD - Seriously, try it - Codemotion (May '24)
TDD - Seriously, try it - Codemotion (May '24)TDD - Seriously, try it - Codemotion (May '24)
TDD - Seriously, try it - Codemotion (May '24)
Nacho Cougil
 
Cynthia Wu: Satisfaction Not Guaranteed
Cynthia Wu: Satisfaction Not GuaranteedCynthia Wu: Satisfaction Not Guaranteed
Cynthia Wu: Satisfaction Not Guaranteed
Anna Royzman
 
Devops, the future is here it's not evenly distributed yet
Devops, the future is here it's not evenly distributed yetDevops, the future is here it's not evenly distributed yet
Devops, the future is here it's not evenly distributed yet
Kris Buytaert
 
Devops for drupal
Devops for  drupalDevops for  drupal
Devops for drupal
Kris Buytaert
 
Pentester++
Pentester++Pentester++
Pentester++
CTruncer
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
International Islamic University Islamabad
 
Eric tucker - Eliminating "Over the Fence"
Eric tucker - Eliminating "Over the Fence"Eric tucker - Eliminating "Over the Fence"
Eric tucker - Eliminating "Over the Fence"
Maritime DevCon
 
Drupal and Devops , the Survey Results
Drupal and Devops , the Survey ResultsDrupal and Devops , the Survey Results
Drupal and Devops , the Survey Results
Kris Buytaert
 

Similar to Services, tools & practices for a software house (20)

Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?
 
Managing software projects & teams effectively
Managing software projects & teams effectivelyManaging software projects & teams effectively
Managing software projects & teams effectively
 
Usable Software Design
Usable Software DesignUsable Software Design
Usable Software Design
 
Pusheando en master, que es gerundio
Pusheando en master, que es gerundioPusheando en master, que es gerundio
Pusheando en master, que es gerundio
 
Developing Better Software
Developing Better SoftwareDeveloping Better Software
Developing Better Software
 
What is xp
What is xpWhat is xp
What is xp
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
 
Agile Development: Key to smart software development
Agile Development: Key to smart software developmentAgile Development: Key to smart software development
Agile Development: Key to smart software development
 
Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.
 
Usa prácticas de integración continua y sobrevive para luchar otro día.
 Usa prácticas de integración continua y sobrevive para luchar otro día. Usa prácticas de integración continua y sobrevive para luchar otro día.
Usa prácticas de integración continua y sobrevive para luchar otro día.
 
Investing in a good software factory and automating the build process
Investing in a good software factory and automating the build processInvesting in a good software factory and automating the build process
Investing in a good software factory and automating the build process
 
What is dev ops?
What is dev ops?What is dev ops?
What is dev ops?
 
TDD - Seriously, try it - Codemotion (May '24)
TDD - Seriously, try it - Codemotion (May '24)TDD - Seriously, try it - Codemotion (May '24)
TDD - Seriously, try it - Codemotion (May '24)
 
Cynthia Wu: Satisfaction Not Guaranteed
Cynthia Wu: Satisfaction Not GuaranteedCynthia Wu: Satisfaction Not Guaranteed
Cynthia Wu: Satisfaction Not Guaranteed
 
Devops, the future is here it's not evenly distributed yet
Devops, the future is here it's not evenly distributed yetDevops, the future is here it's not evenly distributed yet
Devops, the future is here it's not evenly distributed yet
 
Devops for drupal
Devops for  drupalDevops for  drupal
Devops for drupal
 
Pentester++
Pentester++Pentester++
Pentester++
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Eric tucker - Eliminating "Over the Fence"
Eric tucker - Eliminating "Over the Fence"Eric tucker - Eliminating "Over the Fence"
Eric tucker - Eliminating "Over the Fence"
 
Drupal and Devops , the Survey Results
Drupal and Devops , the Survey ResultsDrupal and Devops , the Survey Results
Drupal and Devops , the Survey Results
 

Recently uploaded

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 

Services, tools & practices for a software house

  • 1. Services, tools & practices for a software house or...how to make your development team effective and happy Paris Apostolopoulos
  • 2. About me ... ● 'Met' Java back in 1999..fell in love!Java career started 2001 (intern) ● 2003 co-founding JHUG / Administrator ● Focus on J2EE and BPM-N (lately) ● I enjoy team work, envy developers, dislike incompetent management :P ● I love effective procedures and keeping things in order! ● @javapapo (twitter) ● javapapo.blogspot.com (blog) ● www.linkedin.com/in/javaneze ● javapapo@mac.com
  • 3. Agenda ● Why? ● Let's talk about us - the developers ● The software development house ○ Code repository versioning system ○ Issue / Bug Tracker ○ Wiki / Knowledge base ○ Build Server / Continuous Integration ○ Testing ○ Code Quality ○ Training developers ● Other important things ○ Project structure and build tools ○ The issue of security
  • 4. Why? (I am doing this presentation)
  • 5. Why? ..2 ● Why companies still ignore basic tools and practises of moden software development methodologies? ● Is it rocket science or difficult to implement? ○ I dont think so... ● Why developers do not push things towards improvement? (lazy?dissapointed?) ● Why developers get used of an inefficient software development cycle? They embrace it at the end of the day.
  • 6. Why? ..3 ● Don't we have enough books about modern software development? ● Is it software developers the case or IT managers? Is there a disconnect? ● We want faster, safer, robust and flexible software but..do we really work towards this goal? ● Who to blame? Do we need to blame anyone?
  • 7. Do we fit into this category? "One category of profession is driven by the mediocre, the average, and the middle-of-the- road. In it, the mediocre is collectively consequential." Nassim Nicholas Taleb, The Black Swan
  • 8. What I really want from you today ● It is not only about a listing several tools and techniques, that I am sure many of you know. ● It is not about blaming managers, developers or anyone else. ● Ask yourself, I am really working in the most effective and proper way? ● Can I introduce change? Have I tried? ● Do I want to change? Use proper tools, become more effective? ● Is there any check list of things? (yes follow up)
  • 9.
  • 10. Code repository / Versioning System ● Do you have one? ....(hope so) ● Select the appropriate type depending on your needs ○ VSS, CVS, SVN, Git, Merculiar ● $$ - Some of them are completely free! ● It's 2011, do we still need to talk about why we need one??
  • 11. Code repository / Versioning System ● Do you Back up? ○ A code repository with no proper backup is just like a skydiver with no back up parachute! #fact ● Consider remote access? ● Have you invested enough time to learn about your versioning system? ○ no matter if you have the most advanced tool if you dont how to proplery use it you will not make much out of it. #fact
  • 12. Issue / Bug Tracker ● How dissapointing ...not to have one. ● People still use their heads, emails or their log books to note, remember and handle issues. ○ A tracker does it better! #fact ● How many times you have heard the following.. ○ 'Send me an email about that'
  • 13. Issue / Bug Tracker ● Which one? ($) ○ Many choices, free and commercial ○ JIRA, Trac, Bugzzilla,YouTrack, Redmine etc. ● Back up ○ Yes, you need to have a proper back up too. ● Invest some time or even force your people to use it - there great managerial advantages over that! ● Try to reduce the amount of project related information floating through emails!
  • 14. Issue / Bug Tracker ● Developers & Managers get a system where they can track the past ,monitor the present and plan effectively for the future. ● Metrics regarding work allocation and performance can be derived. ● Increase flexibility and dynamics of the development team to address sudden changes or problems. ● Learn from your...tracked mistakes ;) #fact ● We usually forget issues resolved a week ago. #fact
  • 15. Wiki - Knowledge Base ● We assume that there is some sort of analysis + documentation about your software (?)..is it? ○ Saying ' we are agile and we dont waste our time with such stuff' IS NOT cool! #fact ● Where do you store, develop and maintain this information? ● Unfortunately many companies/teams still use emails/ oral communication or Word documents. ● We live in the internet + collaboration era - wake up!!
  • 16. Wiki - Knowledge Base ● There are many free or paid products or event services plain wiki installations, MediaWiki, Confluence ● Make them available and open to your team. ● Dont reside on closed standards or systems. ● Keep it simple. ● Try to capture all related documentation and information regarding a project. ● Inter connect your Issue Tracker with your wiki ● Remote access : )
  • 17. Wiki - Knowledge Base ● + You dont need so many licenses for word editing software. ● You can still share information with outsiders. ● You can 'bring in' your customers to their specific island on your knowledge base. ● Try to apply it on a company level- not only on software development teams.
  • 18. Build Server - Continuous Integration geeks Code Repository Watch/Pull/Monitor Customers Code Release Build. Provide Identify Build Updates Builder Errors Server Test Run Tests
  • 19. Build Server - Continuous Integration 'In essense, Continuous Integration is about reducing risk, providing faster feedback.It is designed to help identify and fix integration and regression issues faster, resulting in smoother, quicker delivery and fewer bugs.' Jenkins,The Definite Guide,Chapter 1 J.Ferguson Smart,Oreilly
  • 20. Build Server - Continuous Integration ● Potential solutions ○ Hudson/Jenkins,CruiseControl,Contunuum, ○ TeamCity, Bamboo ● Eventually a build server does things behind the curtains - you just have to make sure it works and configure it properly. ● It is the real implementation of Cont.Integration as a practise. ● Beware of hardware requirements. ● Potential services in the cloud-internet.
  • 22. Testing..unit testing ● There are many types of testing, unit, functional, cross cutting, integration. ● We will focus on unit tests. ● It is not the holy grail. A pragmatic approach. ● We can't ignore it! ● For the managers: Learn to properly add testing on project estimates. ● For Developers: We get lazy sometimes, lets face it.
  • 23. Testing..unit testing ● Tools / Frameworks ○ JUnit ○ TestNG ○ JMock ○ Mockito (#win) ○ Ejb3Unit ○ XMLUnit ○ HTMLUnit
  • 24. Testing..unit testing ● Tools / Frameworks - Functional Testing ○ Selenium ○ Sahi ○ JMeter (Perfomance & Testing) ● Code Coverage ○ Meaning: how much of our code is 'covered' by tests. ○ EMMA, Coberatura, Clover etc
  • 26. Code Quality ● Another sad story... (#fail) ● It is still considered as a nice to have/ nice to check practise by many managers and even developers. ● There are tools that can help you tackle time, effort and estimate problems in order to monitor and preserve the quality of the code. ● Tools that scan your code base and identify many basic or advanced problems, sometimes perfomance problems or potential concurrency bugs.
  • 27. Code Quality..for Java Developers ● FindBugs ● PMD ● CheckStyle ● JDepend ● Sonar ● Prevent ● EclEmma Most of them can be easily integrated to your IDE. It is just a click away!
  • 28. Training ● Training should be encouraged in an personal level + promoted company wise. ● Skills need to be updated. ● Companies need to leverage the benefits of training their development teams¨ ○ Internal ○ Conferences ○ Support local communities
  • 29. Training ● Introduce a company library ○ Buy at least one or two books every month and add them to the library. ○ Encourage people to read. ● Engage developers internally with coding sessions and presentations. ● Give space to those that are willing to experiment with something new, let them bring back their experience. ● Promote the do-ers. ● Teach young developers...the power of the force ;)
  • 30. Some extra things to consider...
  • 31. Project structure / Building tools ● Please stop - creating and building projects using your IDE as a building tool! ● You introduce a technical dependency - increase maintenance effort and your build 'system' may be become obsolete at any time.
  • 32. Project structure / Building tools ● Java developers are lucky enough to have a variety of tools that handle buidling, structure and library dependencies. ● We have some sort of 'standards' ● The main goals for your project must be ○ to be complete IDE un-aware ○ can be built in any platform easily ○ building activitity to be easily maintained or changed ● Keep it simple
  • 33. Project structure / Building tools ● Tools and frameworks to consider ○ Apache Ant ○ Apache Maven ○ Apache Ivy ○ Gradle ○ Gant ○ Buildr
  • 34. Project structure / Building tools ● Java developers are lucky enough to have a variety of tools that handle build, structure and library dependencies. ● We have some sort of 'standards'. ● The main goals for your project must be ○ to be complete IDE un-aware ○ can be built in any platform easily ○ building activitity to be easily maintained or changed ● Keep it simple
  • 35. Secure...coding ● Unfortunately it is one of our lowest priorities. ● It is obvious, since security threats appear in all sorts of software- all the time.We still suffer from them. ● We need to embrace the principles of security in our architecture and actual software development activity.
  • 36. Secure...coding ● Content provided by Dimitris Stergiou ○ http://www.linkedin.com/in/dimitriosstergiou ○ @dstergiou
  • 37. Secure...coding ● OWASP (owasp.org) ○ free and open application security community ● Think and introduce security requirements for your project - before implementation. ● Resources for Security testing ○ OWASP Top 10 Wev Application Security Issues ○ OWASP Testing Guide v3.v4
  • 38. Secure...coding ● Tools (static) ○ Peer review: Check each other's code. ○ Static Code Analysis (http://en.wikipedia. ) org/wiki/List_of_tools_for_static_code_analysis ○ Commercial Static code analysis ■ IBM (Ounce Labs) ■ HP (Fortify) - in the cloud as well ■ Veracode
  • 39. Secure...coding ● Tools (dynamic testing) ○ Manual Penetration testing ○ MITM Proxies ( paros, burp, owasp zap, charles) ○ Web Application scanners ■ Nikto ■ w3af ■ Arachni ■ Skipfish ■ Websecurify ■ sqlamp (sql injections
  • 40. Secure...coding ● People and all that Jazz ○ Awareness ○ Training ○ Development ○ Testing ○ Goto Awareness ;)
  • 41. To conclude ● Do your own check list - and see on how many of the above apply to your working enviroment ● Ask yourself what would you like to change or improve? Try to change it ● Spread the word
  • 43. References ● This talk was based on the following posts ○ Part 1:http://javapapo.blogspot.com/2011/06/services-practises-and-tools-that.html ○ Part 2:http://javapapo.blogspot.com/2011/06/services-practices-and-tools-that.html ○ Part 3:http://javapapo.blogspot.com/2011/06/services-practices-and-tools-that_27.html ○ Part 4:http://javapapo.blogspot.com/2011/06/services-practises-and-tools-that_27.htm
  • 44. References - books ● Jenkins, The Definite Guide, J.Ferguson Smart, Oreilly ● Agile ALM, Leighweight tools, Agile strategies, M.Huttermann, Manning ● Git (Communit Book) -book.git-scm.com ● Version Control with Subversion, svnbook.red-bean.com ● Continuous Integration,Improving software quality and reducing risk, Martin Fowler. ● Ant in Action, Manning ● Maven the Complete reference, ○ http://www.sonatype.com/books/mvnref-book/reference/ ● JUnit in Action, Manning ● Maven -the definite guide, Oreilly