Every community needs a place for chance encounters to take place. Community needs a heart for people to gravitate towards. Community needs coffee.
There are many articles, case studies and stories about how workspace design and architecture creates interaction, innovation and collaboration. You can see one about pixar here. One about The Bill and Melinda Gates Foundation here. One about the googleplex here. And, of course, there is apple’s new design. In fact, Jonah Lehrer’s book Imagine gives many examples of how different communities and movements have taken hold because of central places that bring like-minded people together that create serendipitous moments and chance collaborations and most of them didn’t need to spend $5bn to make it happen. That’s why I think the kickstarter project to open up a Village Hall in Shoreditch is great and something that the community should back. There is so much talent and activity in the area now that a strong central hub will help develop and enable the community to do more together, and maybe spark something even more amazing. Emergn are part of the community and I wanted to back the initiative.
And, apart from that, it’s always good to have a great place to go for coffee. Please consider contributing. It might be the catalyst for something amazing.
I know some really good writers. People who make money out of writing. People who wow others with their ability to conjure up emotions and worlds full of intricate detail all with the power of a pen (or laptop as the case may be). These people are in their element when writing. But, it doesn’t stop us all learning to read and write at school because it is the foundation and platform for interacting in the world. We have to learn otherwise we would struggle to communicate in general society. It doesn’t mean if you can’t write you can’t contribute, but it does make life just a little easier if you can. Letters, words, sentences, grammar, printing and writing all help us express ideas and communicate. It has been and continues to be fundamental to progress in the world. Communication is fundamental. And now the medium of communication is changing…
After a recent post I was asked by quite a few people why I was bothering to learn about modern software engineering languages and tools rather than focusing on more managerial type skills. Maybe this was because I suggested it was for ex-developers to learn and not everyone (the point was that I am an ex-developer and believe that I need to learn more). I had a few people say that we should let the expert developers develop code. Now, I wasn’t advocating that the results of my learning was going to see me back in front of a keyboard full-time to develop production code. I was more intrigued into the practicalities of development with the modern languages, databases, tools and concepts so I could better understand the decision-making processes, trade-offs and choices being made by the experts who deal with the work on a day-to-day basis. But, there are a couple of other reasons why I was interested and I wanted to share my reasons.
The next generation
At the moment, the UK is trying to promote Computer Science in schools. It isn’t just about teaching the kids though, it also means teaching the adults. We have a big gap in the quality of teachers who are capable of really teaching the foundations of computing. At the moment, the ICT curriculum isn’t really taught by specialists but rather people who have either been asked to do ICT as a secondary subject or the people who have a passion for it but more as amateurs. Often, anecdotally, people talk about how the Geography and Sports teachers are also the people teaching ICT. The fact that we are now trying to make a difference is a good thing, but it is going to take a lot of time to bridge the knowledge gaps. Claire Sutcliffe did a great talk about the gap and the lost time over the last couple of decades (the gap is explained at about the 4:45min mark). There has been a recent drive for digital literacy, but this goes further than having people be able to drive a computer with a keyboard. It is about understanding the platform for the next wave of creative output.
I want to give my own children and other young family members good guidance and advice. The world is becoming more dependent on code. Not just for the developers, but for everyone. As this article on edSurge suggests every age demands its own set of skills. I believe it is not too far away when many non-developer roles will need to be writing code on a regular basis. This will not be the computer code required to create the web browser you are reading this on, but more the type that is required to search for, sort and present data in usable ways. Or automation of simple tasks to get jobs done more quickly. Imagine a customer service agent sitting in a call centre – wouldn’t it be great if they could get access to the vast information stores that an enterprise has about the person they are talking to on the phone so they can know more about the person they are talking to and the products and services they have. I bet many companies have record of most interactions with customers, but that isn’t currently at the fingertips of the call centre agent. Most enterprises are trying to solve this problem by producing canned reports and centralised data warehouse systems. Large business and management information programmes costing millions upon millions without delivering the value promised. It might have been better to have invested the same money in giving more people access to the training to allow them to write algorithms to search and sort data. It might also be a little more successful than most of the enterprise data warehouse programmes I’ve seen.
But the next generation will need to express themselves online more than we have ever done. They will probably take many classes online. They will need to submit their art, music, writing, acting and dance projects online. They will likely even have to submit computing-based creative projects online too. They will probably see more and more projects based on the idea of the Internet of Things, and they will likely contribute to it. Open Data, Open Sensors, hackathons, code clubs and the like. They will live out much of their social lives online too, just as we are only just starting to. To innovate and push the boundaries they will need to code. To participate effectively they will need to code. To fit in they will probably need to code. So, who is going to teach them how to do this, and participate safely? The schools will have a part to play, but I believe there is an onus on the wider community to provide guidance and support this.
The current generation
The then there is another group I come across in my travels; the development/department/product/project/programme managers who are in charge of IT based products and services or delivery programmes because that was the route for promotion, empowerment and decision-making within their environments. The world hasn’t always appreciated and valued the work of a developer. These managers are no longer in a position where they understand the work being done, yet they are meant to be representing those doing the work and managing them. They are still being asked to make the decisions, manage suppliers and staff, and generally be seen as the experts by the people above them. Over the last decade there have been shifts in the workplace and more value is being placed on the developers than the managers. Even in very traditional and established businesses this is starting to become true. Many would agree that this is a good thing, but typically not for the people who no longer understand the work. For this group of people, they need to learn new skills (or indeed re-learn old skills) quickly to remain relevant and valuable. Helping these people through the transition of roles and value is important. I wouldn’t want to see people become disenfranchised because the world has moved on. I sometimes get asked direct questions from this group about what and where can they learn about the advances in technology.
I can’t believe that coding isn’t going to be as important as reading and writing in the next decade. It will be an important medium for creativity and innovation. I know people in many different states of confusion – from 14 year olds looking to choose their GCSEs, to Mums who are struggling to understand what their teenage children are up to and then there are parents and teachers who want to educate for the future, and the managers and professionals who are trying to keep pace with how the world of work is changing. The explosion of broadband and the internet is creating some interesting challenges for people. And some need and want to do more to contribute, but don’t know how to get started. My foray into learning more about the modern tools is in a desire to help others understand where to find good resources and learn how to learn more. There is a huge amount of information out there, it just isn’t that easy to get started.
Me: Hi, my name is Phil.
Everyone: Hi, Phil!
Me: I used to be a developer. It has been 8 years since I last wrote software for a real system. I still think I know how to code and I’m sure I add value to all design and development meetings, but I am starting to think that things might have changed.
Everyone: It’s good that you are here. We know how you feel.
Me: I was pretty good back then. I was so good I got promoted to running things. I still know how it all works, and I’m not worried I don’t understand the new technologies as I can run rings around these young guys. I now do all of the other managerial stuff and make all the important design decisions, create architectures, commit to deliveries and do all of the planning work. Because I know the technical stuff really well, I can represent the technical team.
Everyone: Oh, dear, Phil. We might need to help you.
Me: Well, what has really changed over the last ten years? Programming is programming. I could still develop today, right?
Things have changed and are continuing to change. A lot.
And, if you are an ex-developer who thinks it is still the same world, you might need to learn a few things as you might just be getting in the way.
Development has changed
I come across so many people who used to write code and started their careers as a developer. I come across so many, I think we might need to create a rehab group for all development managers, agile coaches, team leaders, project managers and other senior executives who think that they still know how to develop cutting edge software solutions fit for today’s customers.
Life has moved on. Programming today has changed. And yet, in some ways it is still the same. But, I believe the differences now outweigh the similarities. The practices used are different Everything is agile. Everything is TDD. It is all continuous delivery. The tools and infrastructure. The frameworks that exist now are so good that you can build amazing solutions in a very short pace of time. The old process of capture all requirements, design the whole system, build it, test it and deploy it a couple of years later has gone.
The problem is that technology expectations have risen. Customers know they want more and now. Businesses want more and now. Everyone wants more and now. Mobile platforms are everywhere. Software is now more open and re-usable. Scalability is a bigger deal today than 10 years ago. User experience is not a nice-to-have. Software is eating the world and everyone involved in delivering products and services needs to understand more about what is being built, and how it is being built. This idea is illustrated beautifully by a passage in the Valve’s Handbook for New Employees:
Non-Engineers: program or be programmed
Valve’s core competency is making software. Obviously, different disciplines are part of making our products, but we’re still an engineering-centric company. That’s because the core of the software-building process is engineering. As in, writing code. If your expertise is not in writing code, then every bit of energy you put into understanding the code-writing part of making software is to your (and Valve’s) benefit. You don’t need to become an engineer, and there’s nothing that says an engineer is more valuable than you. But broadening your awareness in a highly technical direction is never a bad thing. It’ll either increase the quality or quantity of bits you can put “into boxes,” which means affecting customers more, which means you’re valuable.
The tools and practices that help programmers be successful are very different today than when I studied computer science at University. They are certainly different to those that the people who developed the original cobol programs that underpin virtually every major enterprise used.
Storage and databases have changed. SQL is even being challenged. That’s mind blowing for someone who only built enterprise software on Oracle, SQLServer and others that underpin most enterprises today. Is the RDBMS dead? The answer is not conclusive, but there are definitely things to consider. Technology choices have exploded for the modern developer. The start-up scene is doing things differently and they are outpacing the established companies. The open movements in software have created a marketplace that can have the novices’ head spinning. And, whilst I don’t feel like a novice, I wonder if I am.
The first step to resolving any problem is to admit that you have one. So, I am going to investigate many of the latest trends, tools and techniques to see how bad it has become. I want going to explore 7 areas of the latest stuff, and provide a resource for others in where to find good information in each of the areas. I might end up going in to other areas if I stumble across interesting things, but I will start with these 7.
I learned C, C++, Lisp, VB and Java. I hear functional programming is in vogue again. This puzzles me given the shift to OO that happened 15 years ago, and my lecturers insistence that objects were the way forward. I’m sure it is not that straight forward.
Ruby and Python seem to be very popular as they help developers be far more productive delivering web-based systems than other languages. I’ve never come across either so I’d like to see what the fuss is about.
My goal is to learn one or more new languages so I can compare and contrast the different paradigms, and maybe build a little app or two.
Startups are following the Lean Startup methods. Agile is now the norm. People are using the Y Combinator approach to deliver working products in weeks. In the years since I left enterprise software delivery in BT, things have moved on and there is much to learn. Luckily, my company has created the world’s first work-based education programme based on agile and lean. It is time to put it into practice.
Git, heroku and other build and deployment tools
This is an area that has changed massively in the last 5 years. SaaS, PaaS, BaaS, EverythingaaS has my head spinning. Git is very different to the SCM tools of the past. Heroku looks cool. I have done a little bit on AWS, but I think this is an area that needs real investigation. I suspect there is much to learn.
I used to run big enterprise systems that didn’t really deal with front-ends. Usability, speed and rich experiences are important for all sites. This is one area that I really want to explore. My design skills are not great and I suspect learning the languages will be the easy bit. Making good looking things will be harder, one suspects.
So what’s changed here? RESTful architecture seems to be a popular topic. Is MVC something people still talk about? I think there is a lot to look into for scaling software, promoting re-use and creating more maintainable software.
The whole NoSQL movement is intriguing. MongoDB, CouchDB, BigTable and other tools will be tools to examine. I have no idea if this is where Hadoop fits in or if that sits elsewhere. Regardless, another thing to look into.
Modern Test-First Tools
At Christmas, I took the developer test for Emergn. It is a core part of our hiring process so we can see how developers think and what they consider to be high quality. I had never written TDD code before the Christmas holiday. I know test first is really important for design and quality reasons, and I’ve seen the results of high-quality development, but there is much to learn. BDD, Gherkin, Cucumber, RSpec, JUnit, Selenium and DSLs.
I’m sure I should be looking at iOS and Android development too, but it seems like an awfully long list already.
Now all I need is a couple of little projects to provide a backdrop for learning and making all of these areas practical. I am certainly not confident in the amount of new things to look at and I suspect it is going to take a long time to crunch through all of this stuff. Especially whilst holding down a demanding day job. If you have any ideas for shortcuts, useful resources or other areas to look in to, I’m all ears. I will share my findings.
Have you ever had someone come into your house without taking their shoes off? This is one of those things in our house that really ruffles my wife’s feathers. We have two small children. That means we have lots of small children who come round to destroy the house (aka play). Light carpets and muddy shoes is not a good mix. Children learn from their surroundings. They do what they’ve been trained to do. I was trained to take my shoes off at the door. So was Helen. In our house, the culture dictates that we take our shoes off and William and Lottie do a pretty good job at remembering. Don’t get me wrong, we are not the shoe police, but eyebrows will be raised if you do not comply.
Recently, I have come across a number of things connected to creativity, culture and change including a Model Thinking Coursera course to try out MOOCs (I’ve found it to be very good if you’re interested in online learning). The shoes on or off example was one that came up as a way of describing differences between groups. It interested me because it is something so simple and I hadn’t considered it as something ‘cultural’. It made me think about the things that define culture, and how might examine creative, innovative and agile business cultures.
To start off with, it is worth trying to give a definition of culture. Here are a few definitions that I’ve come across:
Trilling (1955): When we look at a people in the degree of abstraction which the idea of culture implies, we cannot but be touched and impressed by what we see, we cannot help but be awed by something mysterious at work, some creative power which seems to transcend any particular act or habit or quality that may be observed. To make a coherent life, to confront the terrors of the outer and the inner world, to establish the ritual and art, the pieties and duties which make possible the life of the group and the individual – these are culture, and to contemplate these various enterprises which constitute a culture is inevitably moving.
Boaz (1911): [Culture is a] totality of mental and physical reactions and activities that characterize behavioral responses to environment, others, and to himself.
Tylor (1871): [Culture is a] complex whole which includes knowledge, belief, art, law, morals, customs.
LiveScience states that culture is the characteristics of a particular group of people, defined by everything from language, religion, cuisine, social habits, music and arts.
Basically, it seems to boil down to what we believe, what we do, how we do them and all the other manifestations the describe what and why we are who we are. It is also useful for me to use the differences between groups, the similarities between people and the things that are interesting or unique within a group to help describe a culture.
When you consider that simple things like taking your shoes off at the door might be something that describes a culture in terms of how values are lived then you can quickly see how many cultural variants might exist. If you just consider 20 questions similar to shoes on or off you get over a million different permutations. Unfortunately, life isn’t as simple as 20 questions with yes/no answers and tend to contain many shades of grey and conditions. It is much more complex.
As I was writing this blog I saw this tweet by Bob Marshall (@flowchainsensei): “Folks who believe they can slot Agile right in to their existing worldview will see nothing but pain and dashed hopes.” This fits with my experience well. People who really practice Agile have a very different view of the world than the cultures you find in most traditional and large companies. They value different things and have completely different perspectives as to how an organisation should be run. Beware! Here be dragons and those waters need to be navigated with a clear goal in mind.
The good news is that culture can change. Just look at what’s happening around you since the web came of age. Looks at how open and transparent things have become and how the speed of innovation and communication have changed.
I was reading this and this and this whilst I was thinking about this post because I am interested in what thoughts are out there about the conditions required for creativity and innovation to thrive. Many of the companies I work with tell me they are seeking to be more creative and innovative, and yet it really isn’t clear as to how that will work. They don’t seem to change any of the conditions that are really required to encourage and enable it happen. Instead, they try to change process and management control. This just reinforces the culture that probably already exists.
The words that come up when I talk to people about the conditions that creative cultures have include curiosity, challenge, openness, trusting, safe, diverse and freedom. What comes across is that people are free to try things out, explore what they want to explore, challenge orthodoxy and collaborate. This doesn’t mean that everyone should be hugging and agree on everything. It also doesn’t mean that people are always actively dissenting and disrupting the goal of the organisation. In fact, they value and require debate, challenge and feedback because it strengthens ideas and creative output. The only other thing that comes out is that this is best done in a high trust environment where people are respectful. A key element of the most creative cultures is a clear vision and purpose that people can work out how they best contribute to. Interestingly, there are real similarities between the values described here and those that are promoted throughout communities on the web. Culture is changing outside your organisation, but is it being allowed inside?
This all sounds very obvious, but there are many places that don’t live these values. Instead, there is higher emphasis on things like productivity, efficiency and deadlines (which all happen to quash creativity).
Why is any of this important?
Well, there are two reasons. The first is that your culture is directly linked to your success (or potential demise). For instance, trust has been correlated to increase in value creation in many studies, Dincer and Uslaner (2009). A 10% increase in trust improves GDP by 0.5%. Wow. That’s worth figuring out and investing in.“Virtually every commercial transaction has within itself an element of trust, certainly any transaction conducted over a period of time. It can be plausibly argued that much of the economic backward- ness in the world can be explained by the lack of mutual conﬁdence.” Arrow, Kenneth, “Gifts and Exchanges,” Philosophy and Public Affairs, I (1972), 343–362.
Many of the words I mentioned above are related to how trust manifests itself in society. Higher trusting cultures have lower transaction costs. They can do business “on a handshake”. Entrepreneurs and artists are free to invest their energies into creating value rather than wasting their time and effort in protecting resources and ideas. They are open to collaborate and improve upon each other’s work. In low trust cultures the time is spent on defending, not growing. But, this isn’t just about the wider culture of a country. It is also applied to a companies and their ecosystems.
The second reason why this is important is in considering how culture takes hold and might be changed. People tend to have two strategies when considering their own behaviours and actions within different environments. They either look for coordination with people around them or consistency within themselves. Ideally, they look for both for greatest impact and it isn’t always clear when and how people decide. People tend to coordinate when it leads to a better outcome for themselves. Where people have deeply held values and beliefs they need to exist in groups that value and believe the same things otherwise they will become restless. However, there are other values and beliefs that people won’t hold on to quite so much and will be happy to coordinate with people around them and in doing so may violate their own values to some small way. If there are too many of these things though, it will lead to the same result as the important values and people will leave. The interesting thing here is that differences also create innovation to occur as it generates different perspectives and heuristics within a group. So, you want some core shared values, but not ALL shared. Time needs to be invested in examining and exploring how the behaviours of different groups and teams in your organisation represent the values.
Your culture needs deliberate work. And a set of values that people can buy in to.
The world is changing. The web is helping shape a new set of values that fit better with those that foster openness and creativity. We need our education policies and workplaces to encourage the same things. This will enable growth.
I’d love to get your perspectives on how you see the need for change. Culture is certainly not something that is easy to change or easy to define what you really want. I’d welcome a chance to discuss these ideas further with you and I’d be happy for you to come round to the house. Don’t forget: take your shoes off at the door. You have been warned.
Have you ever seen a program or show by Derren Brown? If so, you might believe magic does exist in some real sense. What he does during a show is nothing short of breathtaking and has people scratching heads and whispering loudly as to how his wizardry is achieved. Recently I went to see his latest stage show, Infamous. Without giving away any of the details of the show (which was excellent), it made me think about creativity, talent and the path people travel to develop their skills. He weaves a story throughout the show about the trials of his childhood. It seems much of what happened shaped him and helped him hone his skills and passion, and, in some way, developed his desire to be infamous.
Sir Ken Robinson spoke in his 2006 TED talk about creativity and how the whole of our education system (indeed all education systems on earth) systematically remove creativity throughout school by focusing more on numeracy, literacy, logic and critical thinking rather than allowing people to explore their creative potential. His talk is funny and compelling, and makes you think about how you were educated and how your children are going to be educated. You should watch it if you haven’t. I agree with the thesis and I see the output of our education system every day – generally, folks shy away from innovation and creativity for fear of failure and non-conformity. Ever heard the term ‘I don’t want to stick my head above the parapet’? Our education system and the modern large company workplace seem to value similar things: conformity, standardisation and management-by-objective target setting. For the orthodoxy these words are all reasonable and positive things. Yet, they are the very things that remove creative thinking, make people compliant and turn people into sheepwalkers, and ultimately remove creativity and innovation from the workplace. In his book, The Element, Ken Robinson talks about many people who found their passion. Their life’s work. All of their stories are about trials and tribulations. It touches on the failure in the school system to captivate and motivate that person and how they developed a tenacity to find their talents elsewhere. Through these trials each person developed the character, found their passion and developed their skills to a point that they are in their element. He asserts that some of the most successful people you will ever meet didn’t do well in school.
In a previous post about the power of environment I touch upon the influences that shape us to develop skills. Every one of us goes through a formal education system and that environment has a different effect on every person. I believe we need to reduce the idea of conformity and standardisation, and improve the chances for people to develop their own passions. Everyone needs trials. And they need opportunity to compete, react, rebel, create, fail, create again, fail again and again and again. Much of this has been removed from schools in favour of teaching specific things to pass tests. It doesn’t help us invent and create new things. People (children and adults alike) need the support to build the capability to keep dusting themselves off and trying again.
Workplaces are becoming extensions of the education system as technology moves faster now than ever before and things we are need now to compete in the modern business world now were only invented in the last 10 – 5 years. Most of us couldn’t have learned those things within our education system. They are alien. The problem is that neither the workplace nor the education system has the approach to deal with this reality and it comes down to capacity of the individual rather than a deliberate approach to help build the capability.
This is what sets the stories like Derren’s apart from all of the people who were discouraged to really develop their passion and stopped. This is the bit where the system doesn’t work. We need an environment that works the whole brain and body, and spirit to keep trying regardless if you conform to the norms or not. It cannot be just about focusing on words and numbers. Failure and creativity are not the same thing. But you cannot be creative without being able to fail. I bet Derren did many times.
I recently bought a raspberry pi. It was after I went to dinner at St James Palace as a guest of BCS and listened to two of the people who were part of the story of the pi in some way. My rationale was that it would be a good way to introduce Lottie and William to computing. They are very familiar with iPads, iPhones, Android and the like, but I wanted to show them something more about the basics. And I wasn’t disappointed. It was like the early eighties for me when I first got my commodore 64 and I started playing snakes. The same game existed and it was fun. The kids loved it. It amazed me how they got more fun out of a blocky, pixelated game that needed the up, down, left and right arrows than playing their games on the iPad.
Lottie is four and now wants to do more with it. So, we’re going to do write a story and game in Scratch. It is a simple way of starting to teach kids about code and make something fun. We’re both looking forward to it and it reminds of my first programming exercise of making a balloon shaped sprite bounce around the screen.
For anyone looking to learn programming or give children something to do and learn, I would recommend them getting a raspberry pi.