Ruby and Rails development of Heroku sites

I’ve been working on a live project recently and found it necessary to see what was happening on the Heroku version as it was running differently from my development machine. Saying ‘it works on my machine’ doesn’t help the people trying to use the site, so I had to delve deeper and work out a routine to ensure I was both finding the problem, and also fixing it correctly.

Oh, it goes without saying, try to get Postgresql running on your dev machine.

The short answer is to use something like the following steps when developing sites to run on Heroku:

a) get code with tests working – be sure to use capybara as this will save you hours of time as you repeatedly run the tests. For this project I was spending about 30 seconds running through a number of tests on the site to see that pages loaded correctly, and forms did what they should do too. Running them by hand would’ve taken at least 15 minutes or longer each time, and I would be so board too.

b) pull down heroku db and add to postgres using pg:pull command which means you can pull down the postgresql database and install it into your locally running one and then swap out your ‘dev’ database to use this one and see what’s missing, or whatever.

c) add anything new there to file that loads your test, and/or live data into the database.

d) check all runs ok on dev with db from heroku

e) when ok, then load your data into test database

f) upload to heroku – including db data if necessary checking with heroku logs command as needed. This lets you see what fell over and wasn’t running as expected.

HEA STEM Workshop on Developing Student-Run Software Houses

In March 2014 I ran a workshop on developing student-run software houses for the HEA at London Metropolitan University in London. The day was broken into two halves with the morning devoted to short case studies with plenty of time for questions, and an afternoon of hands-on workshop starting with Strategic Play session using Lego Serious Play to let people think about their own situation followed by a wider focused World Cafe style approach to our main questions. This worked well for our twenty-five or so participants.

The seven short case studies meant we had at least one look at each of the four ‘live client interaction models’ I’ve identified at different universities. The ones in bold presented for us.

  • Model one focuses on the degree with a core live client module for all students (Durham, Lancaster, Sheffield Hallam and Aston)
  • Model two starts small when someone offers services to community supplied by students across discipline or university (Aberdeen, Greenwich, Worcester, Plymouth and Chester)
  • Model three is an umbrella where a commercial and entrepreneurial unit organises activities (Edge Hill, Hull, and Napier)
  • Model four is a commercial unit where a manager liaises with live clients and organises students as staff, or as freelance developers (London Met, Southampton Solent, Kent and Sheffield)

The afternoon sessions started with the warm up using StrategicPlay approaches using Lego Serious Play with each participant reflecting on their own situation by building models to share with others at their table reflecting these questions:

  • what is your biggest challenge to the next step of starting, or developing further, a student-run software house
  • add how will you have overcome this challenge in the next six months?

StrategicPlay session
The goal was to have people reflect on their situation and take in what they’d learned from the morning case studies and general discussion over lunch. The next step was to widen out the discussion using a World Cafe approach that addressed these four questions:

  • What might the ‘next level’ look like at your institutions?
  • What don’t you know that you wished you did know?
  • What is holding you back?
  • Where do we want to go?

We gathered the results on sticky notes on flip charts which have now been collated here.

What might the next level look like for our institution?

Sticky notes say:next level at your institution
HR/finance/IT/legal departments informed and engaged
IP and contracts
IT support?!
senior management support
investent in future
long-term planning, sustainability
visibility internally and externally
Plan B
more staff involved
greater engagement of staff
incentives for staff to engage
train students to do some work for staff autonomy

enhance first year lead in
opportunities to engage at every level capture results
opportunities both inside and outside curriculum
separate or linked?
graduate/industry mentors
external clients
curriculum keeping pace with industry
guessing the next gen.
maintenance/support ‘surviving the summer’
working around inertia

How might we achieve this?

how might we achieve thisSticky notes say:
motivate by linking to drivers – employability, income, student satisfaction
reward staff appropriately
enthusiastic staff members setup team – perhaps as their own loss of time initially
less talk, more action
academics working in collaboration with software specialists
find large org’s in local area that would support idea and business costs
get external partners
focus on lean and agile – reduces risk
specialised contracts
research orientated software solutions
make initiatives self-financing
institutional mandate to support this including legal, finance, etc
departments recognise value of this and willingly invest money
skip the university – set it up externally!
seek approval/support from relevant departments. exchange knowledge with similar schemes
students develop own ideas initially!

What’s holding us back?

what's holding us back?Sticky notes say:
support from university service teams, e.g finance, legal, etc
buy-in by key people
lack of sustained support from senior decision makers
sustainable future and proof planning
visibility for the university’s programmes
increased pressure on staff time. Limited staff resources
incentive misalignment (workload reluctance)
the contractual process ->timeliness
space: labs, group working areas
IT services
structure for this new initiative
industrial involvement (of the right type!)
assessment strategy
good infrastructure needed
(small?) numbers (of students), lack of vitality, feedback (about how we are doing), atmosphere
quality assurance
managing TA support
can we deliver what client’s want? within budget, timeline, etc?
module descriptor and latency issues
getting the right type of students and staff on board
varying skill base of students
how to get the first project out?
visibility for students (student motivation)
management: unreasonable expectations and promises

What don’t we know that we wish we knew?

What don't we know that we wish we knew?Sticky notes say:
how to engage less-able students safely in outreach-like activity
how do we group students?
engaging with mid-range students
is here an unaddressed market for ‘safe’ student activity? (i.e. not addressed by existing business)
how to identify bad projects (and clients)
how to identify good projects
how to combine live projects with rigorous assessment efficiently
use cv* to filter the type of students and not necessary be a cv
students do not get paid in many successful cases
how much trouble will I get into if i short-circuit university procedures?
things that active software developers know
future skills to demand
what barriers to entry prevent students joining software development teams
better lead and networking
costing and planning
a fair commercial contracts that is business, not ‘academic’
when IP is given away. Should source code be accessible by client, or just the final product?

Where do we wish to go?

where do we want to go?Sticky notes say:
Happy students (NSS)
flexible and adaptable students
develop confidence in students by giving them positive opportunities
generating good quality professional [students?]
generating successful students
good score DCHE (festinate of leavers in higher education)
enable students to develop skills that industry want
maintain links with former students
catching the next wave (wearables)
happy, satisfied customers
maintain connections with industry (be in their little black book)
will develop good reputation with industry
a successful cooperation with industry
assist local companies
able to adapt quickly to changes (in IT industry, HE, accreditation, etc)
grow talent pool in the UK
cross department links
ease of implementation of programmes
ease of assessment
have fun
efficient resourcing
showcase research
generate income
improve overall reputation
feedback in connection with modules and programmes
manage numbers realistically
depends upon obstacles in your way?

Pulling some of the thoughts together across these boards we see recurring themes:

  • Support from higher levels of the university, and coordination with other important departments like finance, legal and human resources as well as IT. In order to make this work smoothly each of these aspects needs to be addressed.
  • Support and recognition for the time and effort in managing these projects with students, and possibly some sort of incentive beyond this to encourage more staff to participate in these programmes too.
  • The difficulty in finding good students to participate, and levelling up those who are willing but lacking some skills to work on these types of projects.

So there is still more work to be done here, but we’ve made a start. There is also intention from the workshop participants to move ahead with this work. To start with the JISC mail list STUDENT-LIVE-CLIENT-WORK has now been created for those interested in talking about this more and keeping in touch. We look forward to hearing from you.

Lego Serious Play: the literature

There are a number of books and online resources available explaining the background, and philosophy of Lego Serious Play. These break down into a few categories: the history, the theory and the manuals. I’ve not found any manuals, however, which explain everything. This means that in order to move beyond the basic approaches outlined in the open source guide, it is necessary to be trained in LSP facilitation by one of the master trainers.

The background and science of LSP are available in a few online papers (open source), RasmussenHylton and Statler. These all point to sound reasons of why the process works from the psychological perspective and offer some basic case studies about why LSP works the way it does.

More in depth background to the processes and theory behind the approach can be found in these books:

Brown, Stuart. Play: How It Shapes the Brain, Opens the Imagination, and Invigorates the Soul J P Tarcher/Penguin Putnam, 2009.
Gauntlett, David. Creative Explorations: New Approaches to Identity and Audiences Routledge, 2007.
Pinault, Lewis. The Play Zone: 6 Principle for Unleashing the Hidden Value of Your Company Haroer Business, 2004.
Rock, David. Your Brain at Work Collins Business, 2009.
Roos, Johan. Thinking from Within: A Hands-on Strategy Practice Palgrave Macmillan, 2006.

Roos and Rasmussen were some of the original people involved in setting up the LSP process, while Gauntlett helped draft the open source document for LSP. Rasmussen’s piece provides the context of LSP and a brief background to the theory. Pinault’s book discusses Roos and gives different perspectives on an LSP session with a UK retailer throughout the book.

Roos’s book explains the history of how the idea developed and has been tried with various approaches. However, don’t expect photos and discussion of the LSP process. Lego bricks are only mentioned once or twice in passing. Gauntlett’s book provides the theoretical background to the LSP approach. Together both Roos and Gauntlett explain clearly why this all works as nicely as it does.

Rock and Brown both provide useful theory about why play is important and how our brains work. Rock also explains the SCARF model, which is important in the StragegicPlay approach to using LSP. The ‘SCARF’ model addresses: status, certainty, autonomy, relatedness and fairness. The participants should understand their status in the game with the rules providing certainty of outcome. In addition, the players should have autonomy within the game scenario, and there should be relatedness between the players so that they are seen as friendly players, while the rules also provide a fair game to all participants.

Lego Serious Play session

Together all of these books provide an understanding of why the LSP process works, and some indication of how you can build a session around a topic. However, there is more to it all, which you need to gain from LSP facilitation training. This means going to one of master trainers approved by the Lego Foundation, which oversees the LSP materials. I was trained by  Katrin Elster at StrategicPlay (DE) in Hamburg and have since then also been in workshops with Jacquie Lloyd who runs StrategicPlay (CA). I can unreservedly recommend either of these trainers. Together they have a wealth of experience using these approaches many times a month over many years and will happily share the stories and experience during the training session. Go play, and learn with the best. 

Similar posts that may be of interest:

Thinking about Lego Serious Play and Simplex

StrategicPlay® Facilitation Training in Lego Serious Play

Play4Agile 2014

Another year and another wonderful Play4Agile conference has happened. For me this was again an improvement on the last year. This is as much to do with the learning I’ve gone through since last year as it is about the mix of people, who were there. I just finished submitting my assignments for ILM Coaching Level 3 certificate so better understood what was happening in some situations, which had previously been invisible to me. I also had been trying more games than in the past with students and other groups too. This all helps to set the scene and prepare the stage. This was apt as this year I spoke up more in the open space than I have in the past knowing that the more you put into these events, then the more you receive. I was also happy to do this knowing that I was with my tribe, who’d be kind and helpful if I had a ‘learning opportunity’ through a minor failure.

I arrived at Rueckersbach on the Wednesday in order to take part in the Temenos workshop that had been organised by OlafChristine and Michael  Temenos helps participants focus on issues blocking them, and was something I wanted to learning more about as part of my coaching education as it involves learning by drawing along with story telling, which are always powerful learning tools. A huge thanks to them for running this and opening up many ideas to me and the other participants. This was a nice deep dive of issues with people I trust and was a good warm up for Play4Agile.

On the Friday I participated in the pre-conference gamefication session organised by Katrin  Pete and Thorsten  My team came up with a mobile app to make house cleaning more fun so that you could spend more time at the weekend doing fun things with the people you care about instead of doing the chores. This set up a number of people with good ideas of how to develop games the rest of the weekend. In the evening Alan had us body storming some boats and other mad shapes as a group before we did the general announcements and run down for the weekend.


On Saturday I went to the ‘hosting cards’ session with Michael and Olaf to explore how to make ‘hosting or facilitation’ better. Afterwards was the StragtegicPlay with Lego Serious Play ‘time capsule’ session run by Katrin, Melanie  Peter and Sabine, where I had a realisation that I need to plan a bit more to make our proposed summer holiday work smoothly in the long-term as it will be a bit different from the usual holiday. You can see me building the final model at the end of this time lapse video. The implications about this holiday hadn’t sunk in yet, but the space to play with the hands using Lego helped this realisation. Afterwards the IM Project with Anne wasgood at showing more ideas that can be explored with Improv. This was a variation of the pattern game  where the circle has the claps going round turn into whatever people’s imaginations develops was great fun, and then another variation passing the juggling balls across the circle while ‘daily work’ went around to left and right while the ‘fragile’ jar was also tossed back and forth across the circle. This was a good way to learn about handoffs and communication. Ellen‘s ‘Positive No’ session was fun and provided another stand up before the crowd moment to illustrate the idea of how the participants could learn to nicely say ’no’.Christine, who knows a lot more of these games than I, helped me run a session on playing Improv games to see what could be useful for us to use in our own sessions. Big thanks to her helping. This gave us some good results as seen here: one two. I also found a useful improv encyclopedia of games. In the evening after dinner I was playing  Hanabi a Japanese game about cooperation, which Michael had brought along. This was an interesting game, which I’ll have to consider getting too.

Sunday saw me gong to the Agile mindset games with Konstantin where I finally played both the Penny Game (and heard how it goes better with dice) as well as Henrik Kniberg’s Name Game and heard of other games to illustrate the ideas. This was followed by the Markus‘s collaborative storytelling session where the idea is that the group pick one story from the members to tell and to then draw upon with special focus to develop general points for all where we heard Mikko tell us the story of Stattys which was real interesting and had lessons for us all. I replayed the Katrin’s  SP_LSP time capsule session where I again was able to think somemore about an idea that had been proposed by a friend the previous day.


time capsule

After lunch I went to the product owner game being run by Astrid  Sandra  Joost and Lilian and helped them launch their idea. I then ran a session on playing with different canvases (Business Model CanvasLean CanvasHappy Startup Canvas and Product Canvas  with Mikko so that we could see if it might be possible to develop a game or something. With the help of  Mel, Michael and Mikko, it looks like we did come up with something that I’ll write up later. Lastly, I went to the character building improv style run by Anne along with Katrin, Mikko and Alex where we learned a fastpersona generation technique that was great fun. I’ll have to try it at the Aberdeen GSJ in a few weeks time. During the ‘evening news’ our characters got a quick reprise to the amusement of the other folks. Then Marc and I volunteered to facilitate the open space on Monday. This meant we ended up prepping much longer than I ever thought I’d be in order to get our ideas for the session sorted out as well as getting the chairs and everything else just right. We were wonderfully assisted by Thorsten, who had been spending a lot more time than people realise behind the scenes getting these things ready. Later it was a few rounds of Werewolf with others to unwind before bed.

Monday I facilitated the open space with Marc, which went real well and we only missed one minor thing. After an intro we had competing teams of ‘choirs’ which was fun before the open space started. I told the group about why I was there to try something new knowing that if we messed it, then that was human and ok. I had survived two rounds of being a stand up comic in November 2012 and May 2013 (link will be added) , so this would be easy by comparison. I needed to just sit and catch up on emails so skipped first session and then went the ‘creative suitcase’ session run by Katrin, which showed me some useful ideas to be more creative. Imissed the end as Marc and I needed to prep the closing of the open space where we went over what happened in each session. Then it was over and we got a standing ovation from the crowd, as did each pair who did this, I must say. Still, it felt wonderful to be in the centre of that warmth coming from everyone. Thanks to all of you, and remember: if I can do it, then so can you.

Running the open space with someone was part of my personal growth track this year where I tried new things amongst friends. Others were going to sessions on ‘business model you’, or ‘finding your superhero’. But that wasn’t what I needed this year. I needed the experience of trying new things.

Sessions are only part of the value of this conference. There are also the conversations over meals with an ever changing cast of people as you re-connect with people from last year and meet new friends of friends you recognise from Twitter and Facebook. Here you discuss their current challenges and share your own. This is a chance to compare notes and glean new approaches you can try back home.

Conversations over games in the bar and other rooms are also equally valuable. Sure you maybe playing Werewolf and trying to stay alive as a villager, seer or witch, but you’re also chatting and laughing with each other and see each other’s game facilitation styles. Or you’re playing Hanabi and thinking of how you could use this game to show cooperation needs and the value of choices and information sharing as everyone loses or wins the game.

Roll on #p4a15 🙂

My Play4Agile Story

People attending this years’  Play4Agile 2014 were asked to blog their answer to these simple questions:

  • Who or what brought you to Play4Agile in the first place?

I saw Olaf post a tweet about the first one in 2011 and started following Katrin then too, but couldn’t make it. I was able to meet both of them at ALE2011 along with lots of other amazing people who inspired me very much, and life’s never been the same since.  I have them to thank for opening my eyes to the many possibilities which I hadn’t seen before.

  • What kept you from coming back/ what keeps you coming back?

I keep coming back because of the fun and the learning with these wonderful people in such a playful environment. And it’s good fun as there’s always something that I take home and use whether it be an idea, or games to use, or a better understanding of coaching and facilitation. I wrote about p4a2013 already.

  • How did Play4Agile make a difference in your life, your work and/or your community?

The takeaways of bringing in fun and games into the workplace and my teaching. This has helped make work more fun and keeps bringing new challenges because I’ve learned to keep moving out of my comfort zone as that’s where the magic is according to Pete’s drawing from last year.

Where the magic happens

  • Did you change jobs because of your experiences at Play4Agile or took a sabbatical?

I didn’t need to change my job to make the new direction, as there is enough freedom to change how I do the job. I can modify how I do the job and bring games into the classroom.

  • How might you bring the unconference forward?

The key factor of p4a is the people who attend and the conviviality of the secluded event. We could provide more interaction before and after the event. For example, in the way that this blog post and twitter events build up the excitement before we attend is good. We could also use something to continue afterwards by using on the last day and setting a date in August when we read them so we don’t forget the fun and ‘learning opportunities’ we had.

  • What would be your wish for the next 5 years of Play4Agile?

May it continue to be just as fun and exciting as it has in the past and continue to be as relevant to my life as it has been.

I’m looking forward to this year’s event when I can see everyone again and have more fun learning with friends.

Aberdeen Culture Hack April 2013

Yes, this is a late post, but I wanted to put the details somewhere I could find them as I’ve found a need for them a few times now.

With the help of the city team bidding for Aberdeen as the city of culture for 2017 I helped put together an event for people to create a cultural hack from a group of artists, designers, developers and whoever might come along. The sponsors provided food and drink and we organised what people were doing. It worked out rather well as you can read here from one of the participants. You can also see the app in action at where the code is hosted and should be run from your mobile so that you can experience the ‘walk and listen’ aspect of the app. There is a good video of the devs talking about the event at vimeo.

Learning to program or code

There’s been a lot of writing on this of late so it seems a good time to pull some of these thoughts together. There is the ‘everyone should learn to code’ camp as shown by Emma Mulqueeny, who runs Rewired State and Young Rewired State, because it helps to form logical problem solving skills and an awareness of algorithms and processes. There is also the ‘everyone should code, or do something to foster creativity’ group too as noted in this article on Forbes. And there’s also the ‘don’t learn to code for its own sake’ position best exemplified by Jeff Attwood, or use the approach of  Ciara Byrne  and others, who focus on learning to better understand coders instead.

Mostly though, as I see it, kids should have opportunities to see how things work, and learning to code is part of that, even if you don’t take it too far. Tools that let kids and adults learn more easily by themselves, or with friends is a good way to do that. Kano seems to offer another way for kids to do that too, and you’ll find more links to learning programmes for kids on the page too. There’s also a good list of where to learn code at LearnRoo, altough it’s focused on kids, but that’s ok. You can also find another good listing of ‘ways to learn to code’ based on what you want out of the process of ‘learn to code’ in a post by Scott Hansleman where he compares what a coder, programmer, dev and computer scientist. For him the issue is about ‘why’, and he poses a number of useful comments along with places to learn for hardware and software.

You should also be able to use Project Euler to develop your understanding of algorithms in your chosen coding language too. Yes, you can google all of the solutions, but that’s not the point. As with Code Retreat events where you go over Conway’s Game of Life using different constraints, the purpose of Euler is to learn how to think with the concepts you need to be a better programmer. All of this is supported by the teaching of programming experience by Wiggins, which stresses the need to develop the creative cognitive skills of students to imagine abstract processes.

All of these fit in nicely with another trend of articles on ‘how did you learn to code’ pulled together at geekwire.

The Dream Team Nightmare

Books tell stories to teach us important lessons in a variety of ways. Many ‘howto’ type books tell us what to do in a logical, linear path from beginning to end. Some of these might have quizzes and exercises that help us to learn the materials. Portia Tung’s book The Dream Team Nightmare uses a different device to help us learn ‘howto’ be an agile coach.

Cover of Dream Team Nightmare

Cover of Dream Team Nightmare

The Dream Team Nightmare book  is a ‘make your own adventure’ story so as you follow choices and move around the book. For example, you might find something like this “if you decide to take a walk turn to page .., or if you decide to have lunch with the team turn to page …”, which means you follow your logical path through the book, but in a meandering instead of linear path. Your goal is to make it to the end of the contract with the team and not be fired by the manager.

Instead of ‘learn by telling’ book, this is a ‘learn by seeing and doing’ book. You see what an agile coach does and you decide what our hero does at various times. Sure, you’re still limited by the choices on offer, and you might see other options that might have been, but this is a realistic scenario to show you what being an agile coach is like.
This is highly readable book that will provide you a good read, and leave you thinking about your choices and options long after you put the book down. Go read it and tell your friends about it too.

The programme to learn agile development

While the new degree will bring together lean startup and service design, an important part will be agile development too, so that students know how to use good practices to build quality software. All three of these goes well together.

A key goal of the new MSc Software Entrepreneurship is to appeal to those, who want to learn agile development in a realistic environment. By providing the startup situation on the programme of students forming teams to launch business ideas the students will have the long-term perspective of software development normally missing from the classroom. The long-term perspective means it does make sense to use agile practices such as test driven development, pair programming, and to have the #noestimates discussion too.

As students will be working on a number of startup ideas over the year, assuming that some ideas won’t work, then they will be able to try and better understand the agile practices of software development and how these contribute to developing great services. Even if some students only work on one idea, because their idea talks off, then they will still be learning how to revise and improve their agile practices during the year and will see the difference between where they started with those practices and how they changed over the year.

While the degree is about forming a startup we also want you to leave with the skills to keep that software business growing too, or to work in someone else’s startup, or an agile software house too. Knowing how to set up a development system and have it form a smooth cadence of flow, and then look to shorten your release cycle so that you can use continous deployment, are all part of the knowledge we look to share with you on this programme. These skills and approaches will serve you well wherever you go after this degree. We’re excited to see what happens.

New ‘learning by doing’ startup MSc begins September 2013

The new ‘learn by doing’ MSc has gained approval and will start this September with a second group starting in January. While the degree idea I’ve been pursuing for a while didn’t end up being one where teams would work on projects for other businesses, which is what I thought would be most useful, this didn’t get approval higher up the university. However, a colleague suggested a change, which did make it more acceptable, and indeed possibly more exciting too: instaed of working for others, why not have the students start their own businesses while doing their degree? This makes it a ‘startup degree’, which builds on top of other things we do already, and in some ways is even more suitable for learning by doing. This will not be the traditional entrepreneurship degree where you study other people’s startups. This is you working on your own startup and applying what you learn to your own customer development process. This is you living, breathing, learning and bootstrapping your startup.

We’ll have space set up for the students to work in, and mentor them throughout their year. We’ll also remove the need for exams on almost all courses, and gather their coursework for assessment instead so that we use the artefacts generated by the startup team instead. The coursework could be based on business model canvases, customer journey maps, business plans, prototypes, results and analysis of ‘build-measure-learn’ cycles, and minimum viable product source code too. The choice of what to submit is up to the students, who will also need to keep a journal of their own reflections on the year too, and how they see their team(s) working, or not, and what they learn from the experience. This self-reflection is important so that students demonstrate they are learning suitable habits to help them after graduation, and also to ensure that every course is based as much on individual work as much as group work.

The approach used on the programme will be ‘learn by doing’ so most of the time the students will be working on two applications/products each term. This is so that they all have a good exposure to different types of teams, and also so that they are developing a varliety of different products. The development ideas will be a mixture of ‘lean startup’ and agile informed by service design to provide for the co-creation of the early prototypes so that ideas are validated early. The teaching will be delivered through workshops and seminars most of the time.

This programme should develop students experienced in entrepreneurship with a good understanding of why they use different approaches, and know when to give up on an idea and to learn from failure. Most of their ideas will presumably fail, but that’s ok as they’ll be able to start another idea the next day, and they’ll learn how to build their creativity using a variety of techniques so that they always have many ideas to draw on for possible startups. For them it will just be another ‘learning opportunity on the way to graduation. Graduates will be valuable additions to establised as well as startup firms, who know how to develop, confirm, and grow ideas worth pursuing. If this sounds like someting you might want to do, then find out more and apply here, and if you have questions, then don’t hesitate to get in touch with me.

Oh, and in case you’re wondering, no the university won’t own your business. You will.