Softwire Blog


A Morale Update!


18 November 2015, by

RockstockThe festive season is fast approaching, but it’s business as usual here at Softwire which means we’ve been up to plenty of fun shenanigans. We thought it was time for a bit of an update on our recent morale activities.
There really has been something for everyone in the last couple of months. From our regular pampering slots with massages and manicures through to the slightly more unorthodox bubble football trip we had down to Camden.
It’s not all fun and games though, sometimes we do fun and games for a good cause and we did just that at our charity RockStock evening where a number of bands played and sang classic hits in aid of Broken Rainbow and SCI Schisto Control. The performances went down a storm and we raised over £1843 for our charities, which was a great achievement.softktober

We’ve also enjoyed some exciting culinary treats in the form of sausage salad and obatzda (apparently it’s a Bavarian cheese delicacy) at our somewhat tongue-twistingly named Sofctoberfest, where we also enjoyed a range of German beers and learnt a lot about German music. One could have been forgiven for believing you had stumbled through a portal to Munich. It isn’t just German beverages we’ve been exploring recently either. Our whisky club had yet another successful evening of whisky tasting, but this time we paired it with artisanal chocolate from around the world. A delicious and slightly intoxicating evening!bubblefootball

We celebrated Back to The Future day in style with an impeccably planned and timed screening of all three films in the brand new projector room. You can’t beat the classics shown in HD with surround sound and pizza! If all of that excitement wasn’t enough for you we also celebrated Halloween in style, with lots of great activities like haunted gingerbread house decorating and apple bobbing, and the bar was certainly raised by this year’s fancy dressers.
So all in all we’ve been having a great time and we still have plenty to look forward to before the year is out, like our charity pub quiz our Romanian festival and all of the usual festive activities. It’s not a bad time to be working at Softwire.

Walking desks: the new standing desks?


28 October 2015, by

WalkingDeskThere have been a lot of stories about how there are many benefits to standing all day rather than sitting in an office. But how about a walking desk?

We’ve offered employees the opportunity to use standing desks for a while now, which we provide using some carefully selected IKEA parts (a coffee table and a shelf) and with a small amount of effort result in a great desk for this purpose.

However, recently we decided to take this a step further and set up a walking desk. There are lots of commercial options out there, but as they are quite expensive, we decided it would suit our needs better to build our own. Fortunately we have a very good handyman who helps out with minor tasks around the office, and so we tasked him with building us a desk that:

  • Fit over the existing treadmill in our gym
  • Had a large work area
  • Was adjustable, so that it would be practical for people of all heights

We’ve been using this desk for a while now, and personally, I find it great for maintaining focus, and particularly useful for finally getting round to that task you haven’t been looking forward to all week.

Walking and working helps brings clarity to my thoughts and although it makes my handwriting near illegible, my typing is barely affected. The walking quickly feels natural and it’s perfectly easy to do an hour or so walking along at a slow pace.

The disadvantage of the walking desk is that it can be quite noisy. We got around this by installing it in our gym to begin with and we’ve now moved it to a more permanent home in one of our meeting rooms.

Overall, we think that walking desks are a great idea, and although no employees have planned to switch to one on a permanent basis, it works very well as a hot desk. So if you have the time and skill (or money) to try one out. I’d definitely recommend it!

AngularJS vs KnockoutJS – Part 3


15 September 2015, by

In previous blog posts in this series, we examined the motivation behind some of the modern JavaScript frameworks that aim to make front-end code more maintainable. We also examined AngularJS and KnockoutJS as specific examples of how they individually integrate data models with HTML views.

This blog posts aims to compare how well the two work: we don’t want to fall in to the trap of suggesting that they are competing with each other as they both do different things. However, as two libraries that make front-end development easier through attributes, it’s rare you’ll use both and so you’ll often reach a time on a project where you have to make a decision between two.

Setting the Framework Up

Setting KnockoutJS up is as easy as you’d like it to be – you can pull the source file into your project by downloading it, linking to their CDN or using package management tools such as Bower. It works nicely with all major dependency tools such as RequireJS, or can be included globally in your project. All you need to do to get it working is call ko.applyBindings in one place. It works nicely with all of your code, and can be added at any stage in the project as it plays nicely with other libraries.

AngularJS is a bit more of a tricky beast – building a project around it from the beginning is not much more effort than KnockoutJS. There’s slightly more boilerplate at an early stage to deal with modularisation, but these costs are mostly compensated by not requiring the set-up of, say, RequireJS.

Adding AngularJS to an existing project, however, is significantly harder. Because of the opinionated idioms that come from the use of AngularJS, it’s often hard to make it integrate seamlessly with other code you’ve already written. We’ve used AngularJS with other module loaders, for example, but the cost of maintaining that has been far higher than expected.

Conclusion: On greenfield projects, both libraries perform well. KnockoutJS is easier to add incrementally to an existing project.

Browser Support

A minor point, but if you have to support Internet Explorer, then you may have a harder time with AngularJS that has a small number of outstanding issues on all IE builds; and no support for IE versions 8 and under. KnockoutJS goes all the way back to IE6.

Conclusion: If IE6 or 7 support is important, AngularJS cannot be used.

Community Support

One of things that makes JavaScript fascinating (or, if you’re one of the front-end nay-sayers: tolerable) is how fast the community moves. There are now more npm packages than there are Maven Central libraries, showing just how fast people rally behind languages to bolster its features.

We have to be careful about comparing raw statistics of two libraries of differing sizes. In terms of Google Search trends, AngularJS is over 12 times as popular, and exponentially rising. Angular is the second most installed bower package, whilst KnockoutJS doesn’t make the top 100.  The trends certainly suggest that AngularJS has more staying power.

AngularJS’s modular nature makes it a natural fit for community support as people can add directives, modules and services that can be easily pulled in and integrated with your code. This means that if you’re requirements are common, then you can use a large number of off-the-shelf libraries.

KnockoutJS does allow you to write bespoke additions by creating your own bindings, or extending the knockout object itself in an easy and well-documented manner. Although there are some KnockoutJS libraries to add features such as Pager.js for routing, there are definitely fewer. At least a few times I’ve thought “Surely someone’s done this already” when writing features with KnockoutJS.

Conclusion: AngularJS is much more popular, and has more community libraries.

Ease of Learning

The documentation and online tutorial for KnockoutJS are some of the best I’ve seen. Knockout is so simple and light-weight that when new developers see it, they’ve always taken to it immediately and are able to contribute to development teams very quickly.

AngularJS is a much bigger beast. Their documentation is, necessarily, much more heavyweight and bulky to reflect the larger amount of things that people have to learn. Almost everyone who has worked long enough with AngularJS is now happy with how it works and can contribute speedily, but it often takes longer to reach the same depth of understanding.

Conclusion: KnockoutJS has simplicity and brilliant documentation on its side; the larger AngularJS can’t compete.

Testability

AngularJS was made with testability at the very front of its mind, and there are lots of guides online about how to set up unit and integration testing on your AngularJS modules. We’ve had great experiences running our JavaScript unit tests on such projects with Karma and WallabyJS giving us instant feedback when things fail.

KnockoutJS is unopinionated about tests – it’s a much smaller library so we wouldn’t expect anything else. If KnockoutJS is used with some modularisation frameworks (which we always strongly recommend!) then good discipline, such as encapsulating all low-level DOM manipulation, makes unit testing no harder than with any other library.

Conclusion: Both libraries are testable, though AngularJS was written with this very much in mind, making set-up marginally easier and more documented.

So, which is better…?

We’ve found in projects at Softwire uses for both frameworks.

We typically favour KnockoutJS on projects that have less need for the larger, more opinionated AngularJS. This could be because there is less complex interactions between the user and the data; or because the project simply runs for a shorter time. For legacy projects, it allows us to use it minimally only where we need to, preventing a large initial investment of effort. A lot of developers here love KnockoutJS and many use it on their own pet projects because of its light-weight approach.

We have, however, used AngularJS successfully on a number of projects. We’ve found that the ramp-up time is slightly higher, as it takes control of more aspects of the code base. However, if there is sufficient complexity or on a project, or the code base is larger, the initial set-up and learning costs on a project quickly repay itself and it becomes our framework of choice on large projects with potentially complex user interactions.

We are, as we are with all technologies that we use, constantly examining the ecosystem for new and maturing options outside of these! For those interested in seeing more frameworks in action, TodoMVC is a great website that codes the same site using multiple different libraries.

David Simons trains developers in High-Quality Front-end JavaScript. Sign up to his next course here.

Custom outlook filters


11 September 2015, by

Outlook is both a blessing and a curse. A recent post by the BBC suggests that receiving too many emails can damage one’s productivity. The extremist response here would be to ban internal e-mails, but realistically that’s probably not a very achievable solution. So is there anything you can do to help you wade through the information that’s being piped into your inbox? We think so, and the answer is outlook filters. (more…)

AngularJS vs KnockoutJS – Part 2


8 September 2015, by

Previously, we looked at one of the most talked-about family of JavaScript libraries: those that follow the MV* pattern to decouple the visual concerns of a web application from the data-driven business logic. This blog post serves to give a brief introduction of two of the most commonly used such libraries – AngularJS and KnockoutJS.

(more…)

AngularJS vs KnockoutJS – Part 1


1 September 2015, by

In Softwire, we’ve used AngularJS and KnockoutJS on a variety of projects, and have found that this makes web development a lot easier and a lot more pleasant! With this series of blog posts, I’m hoping to share what we’ve found out about these, and other, data-binding libraries along the way by looking at:

  • What groups all these libraries together?
  • How do these libraries work?
  • Which library is the “best” one?

(more…)

Mentoring the start-up talent of the future, at #Festival of Code 2015


21 August 2015, by

What is Young Rewired State and the Festival of Code?

FestivalOfCode2015YRS is a worldwide community of digital makers aged 18 and under. YRS started running the Festival of Code seven years ago, and it has grown hugely since then. It is free for all young people.

The Festival runs for a week early in the summer holidays. Young digital pioneers, working with the support of volunteer mentors, collaborate to build apps, websites, games and problem solving algorithms aimed to help improve their communities. The only rule is that their projects have to use at least one piece of Open Data – anything from Twitter feeds and weather data, to research data from CERN, so long as it’s free and publicly accessible.

At the end of the week, the coders converge to showcase their projects and compete in the finals. This year, they presented their projects to expert judges, mentors and the press at the Birmingham International Convention Centre on 1st and 2nd August.

What do the youngsters and mentors get out of it?

Who better to hear from than a youngster who got involved?! See what George says.

The mentors also have a great time! As Will said, ‘Everyone worked really hard and had a great time; people’s enthusiasm reminded me of why I learnt to program’.

What did the coders at the Bristol centre build?

  • A spoiler alert browser extension hiding content from TV shows from web pages across the internet.
  • A Top Trumps-like game about local places.
  • A weather and accident map visualisation to explore the correlation between the two.
  • A game where you bet points on whether search terms become more or less popular on google.
  • A map of airports and their associated live data.

Who won the nationwide competition?!

Here’s TechCrunch Mike Butcher’s post on this year’s Festival, with a run down of the winners.

Some noteworthy facts:

  • In seven festivals, the numbers of girls involved has grown from 2% to 30%. You can see more about this in Emma Mulqueeny’s post – she founded the Festival of Code.
  • This year, there were 66 regional centres in the UK with over 1200 coders participating at the weekend showcase.

A huge thank you to our Bristol intern Will Price and developer Jake McKenna for giving up their week to support the participants.

Announcing Softwire’s Technical Training Courses


14 August 2015, by

At Softwire we’re hugely committed to helping our employees build their skills – we can clearly see the value delivered by our investment in training paying off in team and individual performance. As we’ve grown as a company, this type of internal training activity has become an increasingly important and valued activity, and many of our more experienced staff have discovered a real passion for sharing their knowledge and experience.

We’re therefore tremendously excited to announce that starting later this year we’ll be opening up our technical training to a wider audience and offering it as another service to site alongside our existing software development and consultancy options. We think Softwire training offers a powerful combination of both a depth of real-world experience, built up over 15 years delivering high quality software projects, and a fresh and up-to-date perspective driven by our focus on staying abreast of the best emerging technologies.

We’ve created a schedule of courses this Autumn covering a wide range of different areas including:

Developer-focused courses

Technical leader courses

Business-focused courses

As a result we very much hope there’s something for everyone there. On top of that we’ve also partnered with the brilliant Seb Rose and Liz Keogh who have both hugely impressed us at conferences in the past to join us and deliver their own insightful perspectives with courses on “Agile Software Architecture” and “Behaviour Driven Development with Cynefin” respectively.

You can view full details of our courses on the links above. We’ll also be talking about a few of them in more detail in future blog posts.

Softwire in 2015


20 July 2015, by

If you are interested in how we run as a company, you should watch the following video.

Softwire’s Tech Workshops


9 July 2015, by

This year Softwire have started hosting events focussed on achieving success in the software industry. Our first event held in March focussed on getting the right talent into your tech team, particularly how to attract younger developers who are keen to expand their knowledge. Our most recent event looked at successful project delivery and how to achieve this on every project.
We had three great speakers come along to present their ideas on the topic.

Kicking off the afternoon, Johnathan Rigby from Fourth sditchpresented his ideas on motivating technical people. He was followed by Rachel Davies from Unruly, who shared some of the ideas her teams use to handle continuous delivery of their products. She presented all the aspects of extreme agile development that they use to keep their products up to date in a rapidly changing tech environment, including pairing and mob development. Finally Alex Wolff from Softwire who talked about making sure you take your projects in the right direction and the need for flexibility when handling an agile project.

Our special guest Bill Thompson hosted the afternoon, also chairing a panel discussion during which the audience were able to present their ideas about successful project delivery as well as getting more specific input from our speakers.

The event was packed out, with attendees coming from the IT departments of many companies across London. Having enjoyed the talks and time for discussion, we ended the afternoon with informal networking and a chance to enjoy the scenery at Shoreditch House. We’re looking forward to hosting more similar events later in the year.