• No results found

Technology Report 2012

N/A
N/A
Protected

Academic year: 2021

Share "Technology Report 2012"

Copied!
5
0
0

Loading.... (view fulltext now)

Full text

(1)

Technology

Report

2012

(2)

Web server nginx, Unicorn Client-side Backbone/Spine, JQueryUI, HTML5/CSS3 Authentication Devise/Sorcery Authorisation CanCan Database PostgreSQL Caching MemCache Persistence/ORM ActiveRecord Document store Mongoid, MongoDB Search Solr, Tire/ElasticSearch Auditing PaperTrail Long-running tasks Resque API REST JSON/HTTPS Scheduling Resque Scheduler Admin ActiveAdmin App server Rails 3.1, Ruby 1.9.2 Hosting EngineYard/Heroku App startup

foreman to start the processes defined in the profile

Testing

Cucumber, rspec, jasmine + jasmine_headless_webkit for javascript unit testing

Coverage

cane, rcov (1.8.7), simplecov (1.9.x), roodi, reek, flog and flay. Metrics_fu for a consolidated report but not good for check-in builds.

Monitoring Airbrake, Stethoscope, Nagios Web server Apache httpd (+mod_proxy) Client-side JQueryUI, HTML5/CSS3 Authentication Spring Security Authorisation Spring Security Database (any jdbc-driven db) Caching

Ehcache & Spring Cache

Persistence/ORM Hibernate Document store MongoDB Search Solr, ElasticSearch Auditing Envers Long-running tasks Quartz API REST JSON/HTTPS Scheduling Quartz Scheduler Admin Custom App server Apache Tomcat Hosting EC2 App startup Tomcat startup Testing JUnit, selenium Coverage Cobertura, CodeNarc Monitoring NewRelic Web server Apache httpd (+mod_proxy) Client-side JQueryUI, HTML5/CSS3 Authentication Spring Security Authorisation Spring Security Database (any jdbc-driven db) Caching

Ehcache & Spring Cache

Persistence/ORM GORM (Hibernate) Document store MongoDB Search Solr, ElasticSearch Auditing Envers Long-running tasks Quartz API REST JSON/HTTPS Scheduling Quartz Scheduler Admin Scaffolding App server Apache Tomcat Hosting EC2 App startup Tomcat startup Testing JUnit, cumber-jvm, geb, selenium Coverage Cobertura, GMetrics, CodeNarc Monitoring NewRelic

All facts, no fiction

As a technology company that builds

transactional web and mobile applications,

and software and devices for the Internet of

Things, we make data-driven decisions about

the areas on which we should be concentrating.

We use a framework for making those

evidence-based decisions internally, and from the feedback

we received from our customers we are confident

you would find a selection of that data useful too.

The DiUS Technology Report differs from others in that it is based

on empirical data rather than relying solely on our opinion. It brings

together, into a single view, data obtained by measuring the hours

we expend and what our customers and staff think. The report

contains observations of measurements of how our work profile

has changed over the last 4 years of the 7 years DiUS has operated.

It also contains highlights of feedback from surveys we conducted

of our customers and our staff.

We present an up-to-the-minute view of our technology stack

recipes – combinations of components we have proven to work well

together – that we have developed and carefully refined on real-world

projects we have delivered for our customers. We use and constantly

update these recipes for our projects; we offer them in the Technology

Report in the hope they can help you get a head start on your next

Rails, Grails, or Java project.

The Technology Report summarises the effort of our staff in Melbourne

and Sydney. My thanks to the DiUS founders Joe Losinno and Clency

Coutet for their support, to Mick Reidy and Ricky Yim, our Delivery

Managers, for their input and advice, to our Engagement Principals

Paula Ngov and Alistair McGregor for their help with the customer

survey, and to Jerome Lebel-Jones for his valued creative input.

By publishing this report, we have set out to add to your set of

useful points of reference for technology choices. However, applying

the principle of measuring value and avoiding assumptions, please

send your feedback directly to me at

[email protected].

Daryl Wilding-McBride

Chief Technology Officer

Daryl is the CTO at DiUS, where he is responsible for executing DiUS’s technology strategy: to expertly apply the latest innovations in technologies that increase developer productivity and help focus on delivering user-centered and more scalable enterprise-grade software applications and devices for customers.

Our recipes for success

Rails

Rails is increasing in popularity among developers and customers for its productivity benefits, maturing test frameworks, and vibrant ecosystem of gems and community support. Although in the past it was sometimes found to be lacking in performance and ability to horizontally scale, the Rails community has been busy making better performance a priority, to the point now where customers can confidently use Rails for their highest traffic applications.

Grails

Grails is gaining in popularity for customers who want the productivity benefits of Rails but who want to continue to deploy on their JVM infrastructure. Grails is also attractive for organisations who have a Java application heritage and want to leverage Java libraries and services.

Java

Java continues to be a requirement for many organisations who have established infrastructure and support processes based on the JVM, who have in-house skills in the Java language, and who want to leverage their collections of Java libraries built up over a number of years.

Pg. 3

(3)

HTML5: 2% Embedded C/C++: 11% Groovy/Grails: 6% Ruby/Rails: 43% Java: 36% Objective-C: 2%

only 5% of our effort is spent

in the advertising/media

domain, making us a more

diverse company than previously.

5

%

24,889

The total amount of

hours spent on hardware

development since November 2009,

now a significant part of DiUS’s work.

DiUS delivers its first

native app for the iPhone

within 6 months of the

Apple App Store opening

In November 2011 DiUS

delivers its first

cross-platform native app on

iPhone using Titanium

Monthly

hours of effort

in Rails first

overtook Java in

May 2008

Syst

em

T

ec

hno

logy

Jan 2008 MAY 2008 SEP 2008 Jan 2009 MAY 2009 SEP 2009 Jan 2010 MAY 2010 SEP 2010 Jan 2011 MAY 2011 SEP 2011 Jan 2012

44

%

of our business came

from the advertising/media

domain in 2008

D

omain

Agile comes of age: in March 2011

DiUS brings Agile methodology

into the highly regulated and

process-driven medical field.

DiUS expands

its repertoire

to a total of

12 technologies

DiUS mainly uses

only two core

technologies to

deliver applications

85

%

of all DiUS effort in

January 2008 is for

31

%

transactional web apps

DiUS’s focus has truly shifted

into multi- channel/emdebbed

delivery systems in addition

to traditional web apps.

the overall effort

for non-web app

work during

January 2012 was

In November ‘09 DiUS was the

first Australian company to work

for the electric car industry

producing charging technology.

14,000

+

Hours spent to date on

Embedded C/C++ since

November ‘09.

1461

Days of DiUS

november ‘09

DiUS initiates its

first hardware

development project.

Rails: 19% Other: 1% Java: 80% 19% 80% 1% 6% 2% 2% 43% 11% 36%

(4)

Medical – 30%

Software Tools Development – 1%

Logistics – 9% Education – 6% Banking – 2% Travel – 1% Electric Vehicles – 5% Utilities - 30% Search – 9% advertising/Media – 5% Retail – 2%

Percentage of

work by domain

2012

Customer Insights

Over the coming 12 months, our clients will focus on...

At DiUS we believe it’s no use having great ideas or being creative if there’s no focus on shipping. Our customers are also attuned to this in their responses:

Reducing time-to-market for new products and/or services (much interest = 72%). This increases to a whopping 80% beyond the next 12 months.

Removing deployment bottlenecks with frictionless/continuous delivery (much interest = 69%)

Reducing waste with Lean software development (much interest = 73%) The value of UX is being recognised more broadly, with 73% of respondents expressing “much interest” in “focussing on user-centred design”

An issue very close to our hearts, “initiating and maintaining your innovation culture” had the highest interest level of the entire survey with 100% of respondents expressing either some or much interest and 3 out of 4 respondents rating it of “much interest”.

Somewhat surprisingly...

The somewhat lower-than-expected overall result for improving stakeholder engagement. This might mean most customers already have it sorted, though surely it can always be improved?

There was a fairly split feeling about Agile architecture, with roughly the same number of respondents having ‘much’ interest as do those with ‘no’ interest. Whilst Agile delivery has come of age, the time is yet to come for Agile architecture.

Weaker interest than expected in cloud infrastructure. The most likely reason for this is that Australian organisations are still keeping their infrastructure in-house due to concerns about data jurisdiction.

Web application frameworks

Rails (Ruby) and Spring (Java) hold more interest than Grails, Roo, or Play. Roo and Play are still (b)leading edge and not production-ready, so those results are not a surprising outcome for the next 12 months. Grails, however, has been used by DiUS to deliver a few reasonably large apps in complex domains and we believe it is production-ready, so the strength of the ‘no’ interest response was a little surprising.

Building apps for mobile devices

Respondents expressed a strong interest in native apps and web apps for mobile devices, but there was less interest in cross-platform frameworks. This is consistent with DiUS’s conclusion; we feel we get more control over the user experience by using the native language of the platform. We recently delivered the Taylor iOS app using Titanium and then invested a few days of internal innovation resource to estimate the effort to create an Android version starting with the same code-base. To create a functionally-equivalent Android version, we estimated it would take another 40% of the effort taken to build the iOS version. Respondents, however, feel this will change over the medium term, with cross-platform becoming of interest beyond the next 12 months. This probably reflects a belief the maturity of these frameworks will improve in that timeframe.

noSQL data stores

It was surprising that there was not stronger interest in NoSQL databases in the short term, given their strengths in scalability, availability, and flexibility. This is probably because respondents’ business objectives are being adequately met with traditional RDBMSs, and their corresponding operational and support structures are in place and satisfactory. However, respondents feel the importance of NoSQL data stores will increase beyond the next 12 months.

A key input into our decisions about technology direction is what our

customers think. Rather than make assumptions, we asked them about

their main concerns, and their thoughts on technology choices in the

near- and medium-term. The respondents were from the full range

of business domains in which DiUS operates. The most-represented

role was Senior or Group Manager (28%), but we also had Program

Managers (15%), Team Leads (10%), Architects (8%), CEOs (8%),

CTOs (10%), and Delivery Managers (13%).

A reliable indication of what will become mainstream in the

future is what our staff are investigating out of their curiosity

and their drive to improve what they do. We surveyed our

staff to get another key input into our decision-making about

technology direction. Of the respondents, 65% were software

engineers or developers, 9% were business analysts, 13%

were team leads, and 7% were architects.

DiUS staff strongly favour convention-over-configuration frameworks like Rails and Grails for their productivity. However, 54% said they would like us to do more Rails, and 48% said more Grails. In contrast, 52% of respondents said we are doing about the right amount of Java.

Most staff thought we are doing about the right proportion of web apps, consulting assignments, infrastructure, and building shared services. However, a big majority would like to do more mobile apps (80%).

Our objective is to hire people who are always looking on the horizon for better ways of doing things and adopting them. This attribute is reflected in the broad range of answers to the question about what technologies or knowledge areas we should be learning about even more deeply:

Functional programming

UX, design thinking

Highly-available noSQL

CoffeeScript

Post-Java languages on the JVM, especially Scala

amazon Web Services

80

%

said they would like to do more mobile apps

52

%

said we are doing about the right amount of Java

48

%

would like us to do more Grails

54

%

would like us to do more Rails

Percentage of

work by domain

2008

Insurance – 2% Banking – 8%

Software Tools Development – 9% Logistics – 1% Social – 8% Retail – 2% Utilities – 20% Search – 6% advertising/Media – 44% Pg. 7 Pg. 6

Employee Insights

(5)

Top 10 technology tips

for the next 12 months

Melbourne

Paula Ngov

Engagement Principal

[email protected]

P +61 3 9008 5400

Level 10, 99 Queen Street

Melbourne 3000 VIC Australia

Sydney

Alistair MacGregor

Engagement Principal

[email protected]

P +61 2 8014 6640

Level 5, 220 George Street

Sydney 2000 NSW Australia

1

For their ability to help developers deliver features more quickly and with more agility, convention-over-configuration application frameworks such as Rails and Grails will continue to reduce Java’s past dominance of the web application development scene. We expect Rails and Grails to increase their share of our work and further eclipse the Java share over the next 12 months.

2

Grails will increasingly find a place in the technology stacks of customers who don’t want to move away from the JVM.

3

New Java-based convention-over-configuration frameworks such as Play will become production-ready.

4

While in the past developers who only have mastery of Java would be in demand, today and into the future it will be critical for a developer to have mastery of two or three languages. We expect those to be drawn from Ruby, Objective-C, Groovy, JavaScript, and Java. We expect functional programming languages such as Scala to begin to play a part for specific problem domains.

5

The use of NoSQL databases, especially MongoDB,

will increase as customers are attracted to their light-weight approach to horizontal scalability and high availability compared with traditional RDBMSs such as Oracle, MySQL and Postgres.

6

Rather than making assumptions about what users want, customers will more and more use analytics to test assumptions, and only add a feature that has been proven to contribute to growth metrics. Daily, or at least weekly, releases to production will enable this agility through automated continuous deployment with Chef or Puppet. The agility of cloud infrastructure (public and private) will also enable this trend.

7

People with deep skills and experience in UX and user-centred design will be an important part of every project. With this growth in demand, project stakeholders will need to be more vigilant about the actual depth of UX expertise in their organisations, to avoid unintentionally labelling poor experience design with “user-centred” design.

8

Native mobile apps in Objective-C for iOS and Java for Android will continue to be more important than cross-platform frameworks such as Titanium and PhoneGap, or web apps using HTML5. The main driver behind this importance of native apps is the much greater control over the user experience on both platforms. We have also found that the promise of cross-platform is not real; an app written with Titanium on iOS will take about another 30-40% of the effort again to port to one device running Android.

9

iOS will continue to be more important than Android in Australia for mobile applications, due to iOS’s user mindshare and severe platform fragmentation of the Android platform.

10

Analytics will become more important to glean understanding and make predictions from raw data, especially in the analysis of sentiment about products, effectiveness of customer interactions, and consumer and business confidence.

References

Related documents

• Improved performance supported by rate increases across the portfolio, volume gains, lower claims from natural perils and cost reduction initiatives, partially offset by lower

Mobile development platforms like Titanium allow developers to create native mobile apps for multiple devices using a single platform. By utilizing JavaScript for mobile

 EPs input orders into their A-share- enabled BSS, which will then send the orders to a new system “CSC” (China Stock Connect System, for basic order checking and quota control)

Figure 14 Matlab Pattern Plot Comparison of the Narda 643 Antenna (ML = Microwave Lab) (CL = Hangar Lab)
.. False plots the original data.. APPENDIX H: HFSS 2.4 GHz Pyramidal

Contacts can be imported to the iPhone using the TBird app. 1) Launch the iPhone TBird app. 2) If you launch the TBird App for the very first time no IP address, port number nor a

Conclusions: The study characterizes the injury pattern of pedestrians involved in a collision with motorized two-wheeled vehicles in an urban area, like Barcelona, which has

Pastor: As we begin a new Church Year, let us put behind us everything in the past that would disqualify us from a new life, and remembering our Baptism, we boldly petition our

Deseamos que ahora podáis escuchar una palabra nuestra: queremos ayudaros en vuestras alegrías para que vuestras esperanzas se transformen en ideales!. Estamos seguro que