Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Using Scala to Drive Modernization in Enterprise Environments

Using Scala to Drive Modernization in Enterprise Environments

Enterprise Environments tend to show resistance to change. innoQ has been involved in many modernization projects for customers, especially in combination with vast architectural tasks and re-engeering. Based on this experience, Martin will show how Scala can help to push modernization efforts and bring the desired changes to these companies.

http://lampwww.epfl.ch/~hmiller/scala2014/index.html

Martin Schmidt

July 28, 2014
Tweet

More Decks by Martin Schmidt

Other Decks in Business

Transcript

  1. We’ll take care of it. Personally! Using Scala to Drive

    Modernization Scala 2014
 July 28th, Uppsala, Sweden 
 Martin Schmidt, innoQ Switzerland
  2. We’ll take care of it. Personally! Using Scala to Drive

    Modernization in Enterprise Environments
  3. © 2011 innoQ Deutschland GmbH Main Drivers for Modernization Software

    Solutions never 
 fit current requirements
  4. © 2011 innoQ Deutschland GmbH Architecture Drivers AUTOMATIZATION (STRAIGHT THROUGH

    PROCESSING) ! BUSINESS PROCESS OUTSOURCING MANUAL TASK OUTSOURCING ! BUSINESS SERVICE PROVIDING ! LOW TCO ! SHORT TIME TO MARKET
  5. © 2011 innoQ Deutschland GmbH Drivers for choosing a programming

    environment Costs! Time to market Quality Human Resources Licenses • Fewer bugs => higher quality • Higher developer productivity => shorter time to market – Faster development of new features – Easier integration of changes – DSL-based development (more idiomatic/precise, bridges the gap) • Quick ramp-up of new resources => reduced HR cost, shorter time to market • Portable platform => higher quality, shorter time to market • No vendor lock-in => optimize license cost
  6. © 2011 innoQ Deutschland GmbH Why Scala? • Because it

    … – Helps increasing code Quality – Provides the means to achieve shorter time to market – Can be used to allow a quick ramp-up for new employers and as such decrease Human Resources costs – No vendor lock-in => optimize License costs
  7. © 2011 innoQ Deutschland GmbH Scala features supporting these drivers

    • Rich type system
 (e.g. traits, co-variants, self types, Try/Option, pattern matching) ! ⇒Less errors => higher Quality ! • More expressive code
 (e.g. through type inference, concise syntax, compile time reflection for code generation, internal DSL) ! ⇒Improve understandability of code => higher Quality, reduced Human Resources costs ! ⇒Less code to write => higher Quality, shorter Time-to- Market
  8. © 2011 innoQ Deutschland GmbH Scala features supporting these drivers

    • Macro annotations / parser/generator ⇒ Improved Expressiveness through DSLs ! • Functional idioms
 (e.g. high order functions, monads, for-comprehension) ⇒Focus on “what to do” and not “how to do it” ! ⇒ higher Quality, shorter Time-to-Market
  9. © 2011 innoQ Deutschland GmbH Potential risks when selecting Scala

    • Availability of skilled resources – Focused training and on-boarding process for new employees (they need to be trained anyway) ⇒Mitigation: Separate framework and business logic (reduce perceived complexity) ! • Scala is not yet as established as other languages (e.g. Java/C#/…) – But looks very promising (*) ⇒ It is JVM- and open-source-based (*) http://typesafe.com/company/casestudies
  10. We’ll take care of it. Personally! Thank you! Martin Schmidt

    [email protected] http://www.innoq.com +41 (0) 79 5226816 © 2011 innoQ Deutschland GmbH