UK Developer Startup Wins Aussie Gold

Coding is fun, its also great if you make some profit!

UK developers lead by community expert Alan Parkinson recently formedHindsight Software, a start-up focused on bringing Behaviour Driven Development (BDD) to as wide an audience as possible. With their first product Behave for JIRA, they entered into the Atlassian Codegeist competition judged by Atlassian’s CEO Mike Cannon-Brookes. They scored a big win against a record number of entries in the annual competition.

Read More

Behavior Driven Development Coming to JIRA

Hindsight is a start-up company focused on building intelligent testing software that supports agile practices such as acceptance testing.  Using the Atlassian Marketplace to enable rapid development of their first tool, Behave for JIRA, they had a platform to quickly deliverer a valuable product to a large number of software teams around the world.

Atlassian competitions such as Codegeist showed Hindsight how easy it was to get started with plug-in development with JIRA and inspired the team to secure funding for their own product development.

Hindsight is passionate about software quality and is in the business of providing tools to help everyone in the software development team focus on quality of the delivered product.

Their first product, Behave for JIRA, brings acceptance testing to the wealth of Atlassian customers around the world and at a lower cost of entry into the market.  If successful the company will look to extend this service to the cloud.  In the mean time the Atlassian market place allows Hindsight to validate that their innovative solutions are valuable to the market before they make a major infrastructure investment

Behave for JIRA – bringing Acceptance Testing to all your projects

Acceptance tests allow you to express specific needs for your software product in a way that is testable and measurable.  It is also invaluable for breaking down the barriers in software development.

Behave for JIRA allows you to easily add acceptance tests to any issue in your projects.  Acceptance tests are written in a natural language, eg. English, but in a structured way so that those needs can be matched up to the software that is created to satisfy them.  In Behaviour Driven Development an example acceptance test would be:

Given _a specific situation
When _something occurs
Then _you will get a specific outcome

The most commonly used acceptance testing framework is called Cucumber and supports many different software programming languages.  Once you have defined you acceptance criteria with JIRA Behave, you can then run those tests with Cucumber to get instant feedback on you software development progress.

As this is a plug-in for JIRA, you can easily make use of all the data your projects and have a simple to use and powerful way to edit and review your test specifications.  This includes syntax highlighting editor for quick authoring of requirements & acceptance tests.

Developing products using Atlassian tools

As Hindsight have stakeholders with a vested interest in the success of the company, they make use of the Atlassian tool-set to ensure everyone is up to date with the progress of the software development.  Any non-technical people involved in the company can see the sprint burn-down charts and understand the status.  It is easy to see what is planned and what the development team have committed to and hold the team to account if they don’t meet the targets they set for themselves.

For the developers, using GreenHopper it was easy to see if things were going to over-run and a decision could be made quickly about re-prioritising the work.  As this all fed into a JIRA dashboard for the stakeholders, communication about progress was updated in real time.  When two new graduates were on-boarded, it took just two sprints to adjust their capability using GreenHopper to track and review progress.

The development team uses a Scrum-like approach, base on a two week iteration.  Using JIRA GreenHopper scrum template made set-up of the project as simple as defining a project name and pressing a few buttons. The team have also used the rapid board to manage their individual responsibilities so they can quickly priorities the features inside the sprint.

Hipchat provides an instant way for the team to to discuss challenges, especially when they are apart.  As Hipchat is also plugged into JIRA and their overall build process, any significant changes in the project get broadcast on the Hindsight Hipchat channel.  This immediate feedback from build servers, allows the team to quickly fix problems as they happen.

3 most valuable practices

1) Visibility to the business – stakeholders can see our commitments and easily hold us accountable

2) Distributed working is often a necessity and so having our up to date progress accessible anywhere there is an Internet connection is invaluable.  Using Distributed Version control also means we can work off line

3) In constant communication using Hipchat which also enables the team to see JIRA notifications on bug reports, issues re-opened tickets and other major events.

Head over to Atlassian to find out about their range of software for software developers and dont forget to checkout the Codegeist competition (ends 16th July 2012).
Thank you.
@jr0cket


This work is licensed under a Creative Commons Attribution 4.0 ShareAlike License, including custom images & stylesheets. Permissions beyond the scope of this license may be available at @jr0cket
Creative Commons License

Github Tip - Using SSH for Secure Transfer

Using Github helps me share my code easily. In a public repository anyone can view code via the Github website. If you want to work with the code then you can use git clone to copy the remote repository to your development machine. The easiest way to clone the repository is to use its public http address.

However, if you want to push changes back to a remote repository, then you need to use https or Secure Shell (SSH). As you have to enter your Github username and password each time you do a pull or push, its much simpler to use the SSH protocol `git@github.com:/username/repository`, especially once you have to set up a public key for a secure shell (SSH) connection to Github.

Read More

Guiding Enterprises to Effective DVCS Adoption

In the UK many enterprises involved in software development are realising the competitive advantage of moving to a distributed version control system (DVCS). DVCS is now forming a vital role in their strategy towards continuous delivery. This advantage is gained not just in switching tool sets but by adapting to a more collaborative approach to development and fully understanding the opportunities this technology enables.

Read More

Innovation as Easy as Raspberry Pi

One use of the information radiator displays the Hindsight rapid board view. This board has a column to show features branches (issues) that need to be merged back to master and we conduct peer code reviews at this stage (using pull requests) and the non-assignee will perform the merge and close the issue. We use JIRA workflow rules to enforce this with the help of the visual workflow designer.

Hindsight, a startup in the London Silicon Roundabout, are a great example of how Atlassian software has helped companies get productive quickly. Our GreenHopper and JIRA software help Hindsight manage their work and focus on the most valuable activities to gauge how much return they are getting from the investment they put into their ideas.

Read More

EuroClojure - Developers Get Musical With Overtone

Sam Aaron and Jeff Rose gave a whirlwind tour of creating music with Overtone, an open source music generator written in Clojure.

You can define your own instruments, map keyboards and other synthesiser hardware, all to make some funky sounds - although you probably want to have headphones on when experimenting!

@samaaron with overtone you can sit on a train and make musicI had fun creating my first overtone project from scratch at the last Overtone Hackday. Have a look at how I set up my environment.

The Design of Overtone

Music is not a very easy concept to define in software. Typically you start with a synthesiser and work your way up to notes and chords. Eventually you may get to a music piece, but this is often driven by a hardware keyboard and recorded.

The difficulty is that everyone has a different idea of how to describe music.

Overtone comes in two parts. The Super-Collider generates all the sounds from over 500 midi building blocks, essentially you create a directed graph that returns values to represent those sounds. The clojure project part allows you to define instruments (synthesisers) and orchestrate these instruments together.

Basic approach to making music

Overtone generally works on the principle of subtractive synthesis. You create a number of different sounds by defining individual instruments and by adjusting the time and frequency of the sound wave to vary the sounds produced.

Once you have some instruments, then adding an envelope generator will give you a changing sound through time by, essentially multiplying the sound by the envelope.

Join sounds together by creating a player function that takes a time and plays the instruments - adding durations to the sound.

To spice up your sounds you can then experiment with playing two different frequencies at the same time, referred to as multi-channel expansion. A resident low pass filter is also fun to experiment with.

Sam and Geoff showed off what they call the stepinator, which seems to emulate a square wave form which steps through a series of values over time. This created some Buck Rogers style music.

Eventually you will want to use an external keyboard or some hardware device to pay your music as calling functions over and over again from within the REPL will only get you so far. If you map functions, frequencies, etc to the external player controls then you can play your clojure code..

Getting Visual

To make the music come alive even more, you can use the Java processing framework. Instead of calling processing directly, you can use the clojure project Quil to visualise the overtone sounds, creating a sphere and controlling the size of the sphere with the different frequencies of the sounds.

Get collaborative

Sam and Geoff are trying out different ways of sharing the REPL so they can jam together. Many people are sharing their sounds on freesound.org, a collaborative database of Creative Commons Licensed sounds. Browse, download and share sounds

Get started

Read the Overtone documentation to get started or have a look at my setup on Ubuntu. Dont forget to experiment.

Thank you.
@jr0cket


This work is licensed under a Creative Commons Attribution 4.0 ShareAlike License, including custom images & stylesheets. Permissions beyond the scope of this license may be available at @jr0cket
Creative Commons License

Dibi Conference Aftermath - Designers Get Coding, Developers Get Creative

Some conferences are huge, some are very social, some are highly technical. DesignIt, BuildIt was the most creative and moving of experiences I’ve had in a long while. It has really inspired me to add so much more creativity to my coding projects.

There were some amazing speakers at this years DiBi, split into Developer and Design tracks. I took the opportunity to delve into the design track and learnt so much more than I can capture in one blog. So here is the first highlight from what I felt were the most passionate speakers.

@seb_ly - Hybridify yourself

Seb Lee-Delisle opened the day by making is all think about the possibilities when you combine creative design with technology.

JavaScript has really evolved to be a highly productive tool, when coupled with graphics tools like Processing and WebGL some amazing games and animations can be created really easily. For examples, take a peak at creativejs.com, creativecodeingprodcast.com and OpenProcessing.org.

With these kinds of tools at hand, there is no reason designers and coders shouldn’t code their own creative works. Althought there is still a big gap between these two disciplines, even at the DiBi conference there was The valley of incomprehension, with most people defining themselves as either designers or developers. Seb encourages us all to be a bit more of a creative coder!

coder + designer == creative coder

Seb also reminded us how easy it is to code something creative, with just one line of code on a commodore 64 emulator. Taking this further with code.seb.ly and 10 minutes of live creative coding in JavaScript, Seb created an eye-catching visuals that responded to mouse control and gravity.

Most coders get into it because they want to play games they create. Its much easier to create games than you think. When you get designers and coders working together it improves the communication and helps share skills. Designers discover much more when they learn to code. More importantly, working together helps share ideas; if designers and coders work together they can implement ideas in the easiest possible way.

Developers find the creative process hard, as many are too used to thinking literally. The more developers are part of the creative process, the more appreciation they will gain for it.

Developers should take the time to play with visuals more, start with small ideas and playing with tutorials to learn how to draw with code. By looking at the examples at communities like OpenProcessing it will help inspire coding towards more creative goals and help give software an experience that people have real affinity for.

In the next blog about DiBi12 I’ll cover Dan Ruben (Moo) and Cameron Moll. Both inspired in very different ways.

Thank you.
@jr0cket


This work is licensed under a Creative Commons Attribution 4.0 ShareAlike License, including custom images & stylesheets. Permissions beyond the scope of this license may be available at @jr0cket
Creative Commons License

Agile Overview - Scrum

Scrum is a framework for agile product development. Products are built iteratively, with each Sprint creating an increment of the product, usually starting with the most valuable and riskiest.

More and more Sprints create additional increments of the product. Each increment is a potentially shippable slice of the entire product. When enough increments have been created for the Product to be of value, the product is released.

Read More