Introducing Akka Cloud to Edge Continuum. Build once for the Cloud. Seamlessly deploy to the Edge - Read Blog
Support
reactive play akka scala java sbt

12 Tips for Enterprise Adoption of Typesafe Reactive Platform with Play, Akka, sbt, Scala and Java

In April, 2013, we published a blog post about Enterprise Scala Adoption Tips, but the time has come for an update. Not only that, we need to focus on how to help enterprise organizations adopt Scala and also the Typesafe Reactive Platform in general. Many enterprises make the decision to leverage Akka and Play Framework from the Java API, which we fully support.

As more enterprise organizations adopt Scala/Akka/Play, we find it important to help them engage the community effectively. This involves providing them with information about where they can find resources to empower their developers to learn as much about these technologies as possible, as well as to directly engage with the community on a daily basis. By following these steps, the likelihood of successfully adopting these technologies is much higher. Here is a quick review of the steps:

  • Step 1: Talk to Typesafe
  • Step 2: Host a Scala/Akka/Play/Spark/Reactive Meetup
  • Step 3: Jump Into the Shallow End
  • Step 4: Learn Best Practices
  • Step 5: Enable Book Reading
  • Step 6: Get on Twitter
  • Step 7: Engage the Blogosphere
  • Step 8: Hop on Google Groups, Gitter, Stack Overflow and Podcasts
  • Step 9: Start Your Own Corporate Blog
  • Step 10: Attend and Speak at Meetups
  • Step 11: Attend and Speak at Conferences
  • Step 12: Get Involved in Open Source

Step 1: Talk to Typesafe

Our whole mission is to get you and your Reactive application to production, and while this article provides many of the ways the community can help make you successful, we can help in several ways:

  • Direct access to Typesafe’s project engineers for Q&A with an SLA
  • Job postings on our board to help you find more engineers without paying recruitment fees
  • Customer-only content and online events where your team can talk directly to the experts
  • On-site visits for meetups and internal discussions from our top people when they’re in your area
  • Commercial terms for our OSS projects, including warranties and indemnity, particularly useful for OEM resellers building on our platform
  • Access to Typesafe’s subscriber product line, such as ConductR, monitoring, distributed log aggregation, Akka Split Brainer Resolver (upcoming), Play SOAP module, Play Rate Limiter (upcoming), Slick extensions for proprietary databases and more.

GET IN TOUCH


Step 2: Host a Scala/Akka/Play/Spark/Reactive Meetup

By hosting a local user group meetup, you are publicly announcing that your organization is joining the community from whatever perspective you choose. It also lets the community know that your organization is looking for ways to help promote and sponsor initiatives around the ecosystem. If one doesn’t exist, have someone in your organization take the lead of starting one, showing how committed your company is to the community. This will make your organization's new direction very clear to developers in your area and help generate recruiting leads. If you're interested in having Typesafe help host your meetup, please email marketing@typesafe.com.

CHECK OUT OUR COMMUNITY PAGE


Step 3: Jump Into the Shallow End

It is important not to overwhelm your development team from the outset; you want them to be excited about the new direction your organization is taking. If you have the luxury to start the learning process on an existing application, that is usually easier than asking a team new to a technology to completely develop a greenfield service from scratch while they are learning. If you are moving to Scala, consider writing unit tests first for an existing service or application, just to get a feel for the syntax of the language and the power of its collections library. You can then move to integration tests, and then write some simple Case Classes for your domain.

Once your team has grasped the basics, they are ready to start building real applications and services with the language. It may help to make sure they are fully enabled via training, which can level the learning curve across a group. Typesafe offers trainings ourselves and through our partner network, and there are more resources further down in this post.

Whatever you do, make sure that your team is using the language/framework/platform uniformly. One common misstep in the adoption of any new technology is to allow certain developers on a team to begin working in more advanced ways than the rest of the group, leaving the team unable to maintain their code while they are on vacation. If someone wants to adopt a new approach, library or practice into your code base, they should justify it to the group and make sure everyone else understands it. Furthermore, they should leave bread crumbs in the form of wiki information and/or a video so that new hires and team members can get up to speed more quickly. This will help your team scale. Check out this developer story from Kevin Webber (before he joined Typesafe) about bringing Scala to Walmart Canada: 

MEDIUM ARTICLE: “TRANSITIONING TO SCALA”


Step 4: Learn Best Practices

Make the following resources available to developers on your team, and organize study groups around them to share knowledge:

There is also a burgeoning ecosystem of online training providers, including:


Step 5: Enable Book Reading

Start an employee book purchase program, and if possible, do it such that no expense reporting by individuals is required so as to remove roadblocks that might keep developers from making the effort. Ideally, when an employee asks for a book on an internal wiki, it should show up on their desk or eReader shortly thereafter. Start a weekly lunchtime book discussion group, where employees either bring a lunch or have it paid for by your organization, and discuss a chapter of a specific book each week. Recommended books include:

Scala:

Akka:

Play:

Spark:

Reactive:

JVM and Build Information:


Step 6: Get on Twitter

Have developers follow daily happenings in the developer community via Twitter. Twitter is the best source for real-time information about what's happening in the Scala community and elsewhere. Note that, like any social network, some Twitter posts from even the most respectable tweeters can be NSFW or personal in nature.

Suggestions of Twitter accounts to follow: @_jamesward; @adriaanm; @akkateam; @apachekafka; @apachespark; @bantonsson; @brianclapper; @bruceeckel; @bvenners; @corruptmemory; @d6; @dcsobral; @deanwampler; @debasishg; @derekwyatt; @dickwall; @djspiewak; @dmarsh; @drewhk; @dustinwhitney; @eed3si9n; @etorreborre; @gclaramunt; @h3nk3; @havocp; @heathercmiller; @helenaedelson; @higherkinded; @hseeberger; @huitseeker; @hywel_evans; @ijuma; @jaguarul; @jamesiry; @jamie_allen; @jaykreps; @jboner; @jorgeo; @jroper; @jsuereth; @jteigen; @kmizu_en; @ktosopl; @mabrewer7; @marius; @matei_zaharia; @milessabin; @mircodotta; @missingfaktor; @mjpt777; @mkelland; @mpilquist; @mslinn; @n8han; @nehanarkhede; @nescalas; @nraychauduri; @odersky; @patriknw; @philippkhaller; @pk11; @playframework; @pnwscala; @psnively; @rayroestenburg; @retronym; @richdougherty; @rolandkuhn; @runarorama; @scalaide; @ScalaByTheBay; @sirthias; @sky1uc; @springrod; @stefanzeiger; @strangeloop_stl; @tbjerkes; @tlockney; @theotown; @twittereng; @typesafe; @vaughnvernon; @viktorklang; @xeno_by


Step 7: Engage the Blogosphere

Have developers subscribe to prominent blogs, so that they can find out information about what cool new things developers have learned. They will likely hear about these posts via Twitter, Prismatic or some other aggregator, but a great way to begin getting more Twitter followers yourself is to be among the first to post a link to a great new blog post. Encourage your developers to start their own blogs talking about the challenges they've faced and how they've overcome them.

Aggregators:

Great Individual Blogs:


Step 8: Hop on Meetup.com, Google Groups, Gitter, Stack Overflow and Podcasts

Inform your developers of Gitter Channels and mailing lists where they can directly interact with top developers in real time, including the creators of the technologies themselves. Eventually, they will find themselves able to answer questions from other people or participate in the podcasts themselves and thereby increase your organization’s presence in the community.

Meta-site for Meetup.com:

http://scala.space/

Gitter:

Google Groups:

 

Podcasts:


Step 9: Start Your Own Corporate Blog

Many companies have had great success by starting a blog to talk about how they are using the Typesafe Reactive Platform, especially with orthogonal considerations such as microservices and devops. This gives them tremendous exposure as the community picks up on their advancements and innovations. Prominent enterprise organizations who have done this include:


Step 10: Attend and Speak at Meetups

Encourage employees to regularly attend Scala/Akka/Play/Reactive/Spark meetups, as well as meetups on other topics. Ask them to speak on your company's behalf when they feel comfortable with the subject matter. This will help generate excitement in the community about what your company is doing with these technologies, and help in recruiting new developers interested in what you're doing and the tools you're using. Just about every major city around the world has a meetup group growing around these technologies, especially Spark.


Step 11: Attend and Speak at Conferences

Attend conferences with relevant content where you can network with other developers and enthusiasts. When you feel comfortable discussing specific topics, submit talk proposals for consideration at these conferences. Even conferences not directly related to Scala are clamoring for talks about these technologies, so the rate of acceptance is relatively high. If your team has never spoken at a conference, consider having them enroll in a program such as Underscore’s New Speaker Training. Important conferences that focus on Scala and the broader ecosystem include:

Regular Scala-specific conferences:

  • Scala Days
  • Scala By The Bay/Big Data Scala By The Bay (SF)
  • Scala eXchange (London)
  • Scala Matsuri (Tokyo)
  • Scala Down Under (Australia and New Zealand)
  • flatMap.io (Oslo)
  • NE Scala (Boston/NYC/Philly)
  • PNW Scala (Portland, Oregon)
  • Scala.io (Paris)
  • Scalar (Poland)
  • Scalapeño (Tel Aviv)
  • Scala World (UK)
  • Scala Up North (Toronto)
  • Scala Summit (Crested Butte)
  • apply(Scala) (Amsterdam)
  • FinagleCon (Oakland)

General conferences with lots of Scala content:

  • Strata (US and EU)
  • JavaOne (SF)
  • Devoxx Belgium/France/UK
  • JAX Conf (Germany/UK)
  • StrangeLoop (St. Louis)
  • Lambda Days (Krakow)
  • Lambda Jam (Chicago)
  • Lambda Conf (Boulder)
  • React Conference (UK and SF)
  • Yow! (Australia)
  • GoTo (Chicago/Aarhus/Copenhagen)
  • GeeCon (Krakow)
  • CurryOn (Prague)
  • Many more around the globe

Step 12: Get Involved in Open Source

As your developers become stronger with the technologies, have them fork the GitHub repositories for Scala/Akka/Play/Spark and see if there are features, fixes or functionality they can contribute back. GitHub repos for each project can be found at:

Other companies have had great success by creating open source projects of their own around Typesafe technologies. Examples of large enterprise organizations who have open sourced projects include:

SEE 50 SUCCESS STORIES

The Total Economic Impact™
Of Lightbend Akka

  • 139% ROI
  • 50% to 75% faster time-to-market
  • 20x increase in developer throughput
  • <6 months Akka pays for itself