Friday, 3 November 2017

Starting text mining with R


Like a lot of Product Managers I use Excel with tools like Google Analytics a lot. Probably like many people I find Excel very frustrating. So having been technical in a previous life, I decided to give R a try. What is R?

 R is an open source programming language and software environment for statistical computing and graphics that is supported by the R Foundation for Statistical Computing. The R language is widely used among statisticians and data miners for developing statistical software and data analysis.
After taking a simple intro course, I started to look around at examples of doing more interesting things. From a work point of view Topic modelling seemed really interesting. Unfortunately a lot of the example code missed a large step (or two) in being useful! 

So I forked the most complete example that I could find in GitHub called "Text-Mining". This did lead me down a bit of a rabbit hole but eventually I had an R script that collected data, cleaned it before doing some analysis. Success! I'm almost a data scientist! ;-) The link has all the details of what I did to get started and some pointers to how you can experiment.

Looking around RStudio the possibilities of what I could do with this were interesting. In particular the R markdown files. The programmatic aspect makes automated report generation a lot nicer than Excel. I think with the chart wizards that Excel is good for one off charting etc. For repeated processing of similar data being able to copy and paste, then tweak in a text editor is much quicker.

With that in mind, the next step was to look at more real world problems/analysis that I wanted to do. So I hunted for some Google Analytics packages. The first I tried was RGoogleAnalytics. This had issues in authenticating and the guide was completely different to the Google site. A little bit more searching and I found googleAnalyticsR, and after installing I managed to get a session. It was at this point that I realised what a faff the Google Analytics API was!


After some work I did manage to get some data out of Google Analytics. This featured a dynamic relative data lookup for the past 200 days. Then group the sessions by day. Turn it into a time series, where I could run the Holt Winters method to get a prediction for how many sessions we would get in the next week.

I also had some mind bending sessions debugging Spanish code and variable names to update an interesting blog on visualising Google Analytics data. I'm looking to see if the sample code is on GitHub anywhere so I can send a pull request with my updates. Otherwise I'll share my own adaptation with some useful R Markdown reports.

Getting stuck in with the "not quite working" Text Mining code was really useful in learning R. Even though it was a toy scale problem, it gave me something practical to develop skills. I'm almost at the same level as Excel now. 

Further reading

Wednesday, 18 October 2017

An evening with Monzo

A meetup that was a bit different for me last night, organised by the Monzo bank's community team. They have had events in their office in London and have expanded this to a roadshow visiting different locations around the UK. Luckily for me they came to Brighton a couple of streets away from my office.

Monzo is a new take on banking that makes use of technology to innovate. It's similar to Root, which is really bare bones "build your own bank", or Entropay, which is going for those that want to easily create online virtual cards. But Monzo is going for a standard bank product, at the center of your finances and re-imagined in a swish app way. It's an overused cliche, but in terms of experience it's like Uber comparing to traditional taxis. I like the product and what they are try and do to help people.

The two talks were “Inside the Partnerships Team” by a developer in that team and "Working from home - not remotely difficult!" (Remote working culture) given by a customer operations team member.IN the first talk Robin from the partnerships team discussed the history of the team and its goals. He then gave a run down of how an upcoming feature went from ideation to development. One thing I took away was the team autonomy, but also how each job function from each team meets to do reviews. From the designers doing critiques, to the product managers in the product council. We have a similar system at 15below for requesting comments, but I really liked the format that Monzo used with nice use of icons to give them a bit of identity. 

The second talk by James about remote working revealed a bit more about how that process was supported by the culture. From the "remote first" approach that leads to consistent and constant recording of what's going on. I though it was interesting that he talked about "1 to 1s" to keep in touch with others referred to anyone in Monzo. I have worked remotely before and work with remote people now and haven't quite experienced that. In my limited experience that kind of regular touch points are with team members or line managers.

It was an interesting evening, I do wonder how much they can grow before the culture changes. But they seem to be making a lot of effort to keep it working as they grow. I think the way that they approach the community model like a startup rather than a bank, will also help this. For example the community voted on how they wanted ATM fees to work, I can't imagine Lloyds doing this! I can't even think of many app companies that collect feedback on their business model that directly.

Saturday, 7 October 2017

First mistakes and successes in the Bashfully MVP process

Since writing about Public beta and starting the MVP process I have gained more insights about our Bashfully launch. These are around what we have got right vs wrong.

Successes

  • Having a pre-release landing page
  • Having a baseline twitter campaign 
  • Using the above to get a baseline conversion ratio

The Twitter campaign had a segment list, budget, and set of content we could re-run. This allowed us to see that the Twitter engagements this time weren't being matched with similar conversion rates.

Exactly what we got wrong is what are trying to prove. But one thing is that we inadvertently changed a variable on the landing page.



This took the logo away from the landing page, moving it to a reusable sign in screen. This also made the registration button a generic button as below


Another theory is that the copy around the registration button made a difference. Luckily this is easier to do a simple A/B test around. So we'll tackle that first!

Whatever the cause another thing we did right was "releasing" early. First by having the equivalent of a download page to gauge interest in the idea. The second was then release a functioning version of the profile. This had about a third of the intended features. The main aim here was to gauge interest and to get feedback on the remaining features.


Overall, I'm please with the progress so far. Trying to adopt an experimentation and data-informed mindset is paying off already. We are able to treat any solutions to problems we find as hypothesis and test them. In the next phase we are also going to step up some qualitative user research.

Further reading


Monday, 2 October 2017

Public beta and starting the MVP process

So deciding to "go live" shouldn't be a difficult decision ... in fact getting people interested enough to use an early stage project is hard enough!

This is the latest instalment talking about going through the MVP process with Bashfully - my side project that hosts online profiles.

Once we did though we got to see some real behaviour. So far this has lead to us:

  1. Cutting two stages from the on-boarding process
  2. Improving the layout and language in on-boarding
  3. Adding a page describing the profiles in Bashfully
  4. Made the "Call to actions" more prominent on the home page
  5. Prioritised some mobile layout fixes after seeing higher than expected mobile usage
Using FullStory has been invaluable here. Being able to play back and share session, to see what people actually do across all users was so helpful. With our initial batch of beta testers (thanks Shaun, Chris and Ed!) we were able to ask what was going on, then check the video. We could then look for the same behaviour in the all the visitors.

Having tweaked and tested with real life testers, we then started sharing to a wider audience. First a mail campaign to the people who had pre-registered. Next creating a profile on BetaList to get a wider range of testers. This has a month's waiting list. So, to generate more interest we have tried a limited Twitter ad campaign.

We have also got into a rhythm of smaller updates to improve the functionality and usefulness of the site. Two big features we are looking at for the next stage, based on feedback are:
  1. GitHub integration
  2. Tailoring profiles and sharing specific versions of them
The first one really fits in with our vision to tell a story and link experiences in one place. With Open Source Software, developer and designers experience is a lot more transparent. We can tap into that, and use authentication from GitHub so we aren't adding to the number of passwords people have to remember!

The second was a requested feature before we even launched the beta. It makes sense, and is one of LinkedIn's weaknesses. We are really giving people the control of their story and how they share it. The ability to remove experiences that aren't as relevant and highlight those that are.

Further reading

Sunday, 13 August 2017

Building an onboarding process for a green field product

Photo by Riku Lu on Unsplash
Onboarding is an important part of B2C and pure "pay to play" SaaS. With so many tools to use, why would any user put effort into getting up and running? With B2B SaaS platforms that include professional services to get up and running then this isn't important. The same impact comes through the service that accompanies the product.

I have been lucky to experience a great onboarding experience when evaluating product management software for work. The best by a country mile was ProdPad. This had two elements, the first was the trial and flow to get up and running. The second was the emails the accompanied it. My previous post discussed the efforts to rectify the previous mistake, in getting email engagement up and running pre-launch, and how we use email in the onboarding process.


So the first decision was how to to go from registering an account to getting to the profile page. Should we create a blank slate and allow the users to build it up? Or should we go to a wizard process to collect details and finish with at least a partially complete profile? Given that the vision was to guide people we went with the wizard approach. 

Kick starting the experience

Next how could we kick start the process? Data entry is usually dull and most people already have some kind of CV or job/education history profile. How could we use this? Well, the most requested import in the beta survey was from LinkedIn. Luckily LinkedIn have a PDF profile download that we could use for the initial version of the registration process. 

Because this is the first experience people are going to have of the app as a user we really wanted it to be the best it could be. So it was the first full user journey where we've created wire-frames. This has gone through a couple of iterations now and is taking shape. It's still a way off where I'd like it to end up, but given how little time we get to spend on it I'm happy with the framework we've built to go through the MVP process.

Lessons learned

The structural bits are relatively easy to get going. We know from the design what the profile will look like at the end. The next challenge is get the guidance and feedback for the content down, but for that we need to launch!

... which brings me onto the most important lesson from this phase. Delivering something now, when you probably won't have any users, is better than delivering "the perfect process" next year. When you probably still won't have any users but you could have built some up and got a year's worth of valuable feedback. 

Also a great way to learn about onboarding is to do a product evaluation and try a number of products solving the same problem and meeting the same need. This really brought home to me how different ProdPad was. It also was interesting to see how empty space affects this experience. One of the products I used had a very minimal design. This looked great when it contained data, but as a new user and no data I felt a bit lost. Almost randomly clicking to find what to do next.


Further reading

Sunday, 6 August 2017

Brand - what is it good for?

Brand is a large part of what people see and remember about products and services. Here I talk about the first couple of iterations of building a brand for Bashfully.


Initial logo





When starting out I created a logo in one evening from some clip art and an online tool. It was this rather fetching and bashful apple to the left in purple. This was used to give the twitter and git accounts some character. But it was always known that it was a placeholder logo.

This became more obvious when the first version of the landing page was created and it didn't really fit anywhere. As we have prepared the design for launch day we have solved both problems, A bit more effort into the design and what it says, plus bringing in the "brand" colours to the site design.

Second iteration

We have moved from the excellent responsive templates provided by html5up to a custom design using the Bulma framework. The html5up site was good as it allowed us to get a decent looking site up and running while we brushed down our rusty CSS skills, and concentrated on the functional side of the site and user research. Now we are getting form to fit the function and it feels the right time to spend more effort on the design and structure.

I have also put some more thought into the logo. We both liked the purple, so have settled on the exact shade. But given the vision I wanted to convey more the "singing the praises" angle. We also both liked strong letter logos like Facebook or Google. I also wanted a font where the B would look a bit like a person ... not sure if I've achieved that!

Another subtle nod is the colour purple, we are helping people channel their inner "purple squirrel" and tell their story.


Building a style guide

I have also started a style guide as we go along, I know what a pain this can be to create afterwards. Here I am using the Mockflow Styleguide app. This has made it dead easy to create. Although one hiccup I did have was in uploading a font file - make sure you don't have a full stop in the name!

It may not look too much at the moment, but as we add more icons and colours into the palate it's going to be really helpful in making sure we stay consistent. The other thing that is going in here are text guidelines as we develop the tone of voices and brand language.

Although I have been through whole brand development at work with the Harrison Agency and at a lower level with the 15below module names, it's not my main focus. So, it has been fun taking more of this on. Another thing that I;ve picked up is that red and green are good, vibrant colours for print work but in digital product you have to be careful. Red is usually used to signify destructive actions or failure. Green means success or creative actions. Likewise blue for info and orange and warnings. Not to say that you can't use them, just more care has to be taken.

My main advice for greenfield projects is, get something as a placeholder. Don't spend too much time on it until the last responsible moment.Then build the style guide as you go along. This bit can be tedious data entry, so do little and often! :-)

Further reading

Sunday, 30 July 2017

Using JTBD in a B2B setting

It's now about 4 years since I started to think that the "As a ..." user story format wasn't the best starting point for building long running products. One of the things that I found and liked was the jobs story format.

The situation


When collecting the data I didn't do proper JTBD interviews as such. But I did extract the info from pre-sales calls, product demos, and talking to users. Plus enriching the collected date with the known strategic goals 15below as motivation , i.e. reduce support overhead.

I have adapted it a bit and marked it up for our dev teams here. But here is an example for a password reset function. Main thing is that as a B2B supplier we have four distinct groups that could appear in the stories.

  • 15below (us as supplier) as an org, 
  • our clients,
  • their users, 
  • and the client's customers 
Here is a simple example for a password reset function




all the words in bold are entities that have a defined meaning in a glossary, so that we try and get common understanding. So in this example, the clients are senior managers and procurement folks who set "the requirements". The users are people at the same org who actually use the platform to perform "the work". a Person is a real human being that is a uses the system. In this particular story we don't have the client's customers. Who are travellers (we do travel software). These are the people who get the output of the work and take part in two way communication. That's to say they are the users of our public sites and services.

One thing I keep meaning to update is "User wants to log in". This should really be the job they want to do in the system, as no user really wants to log in to sites. But it's pretty generic and could be anyone of at least 4 distinct workflows. Think that the format needs an extension to show the different paths needing the same behaviour.

Tools and support


I'm not using any specific tools for this. I am concentrating more on the process of getting the information that I need. Once created the job stories get treated like a high-level epic. So they get stored in ProdPad on roadmap items. Then pushed into JIRA as epics before being broken down into the tasks to deliver the functionality. One aspect that has been important to me is seeing the non-functional requirements. Then and making sure that they are considered in the design. I've never felt comfortable with non-functional requirements being hidden away and treated separately.

Once the feature is delivered, I am then storing them in Confluence. This allows me to use the page history function to track the changes in:
  • capability, 
  • constraints (non-functional requirements) and 
  • the user needs. 
Although the basic job to be done doesn't tend to change, the context and approach does. Usually in our development though, what happens is that extra motivation lines get added. Mainly as we go through the post-launch "product discovery" phase.

B2B and B2B2C differences


A lot of the guides to using the jobs to be done approach are very biased towards and end consumer. As such they favour B2C environments. As you can see in a B2B, or even B2B2C setting!, I have had to make some slight adjustments. It's more about also helping your client build a business case. How much their customers' needs come in depends on the balance in customer experience vs cost in their business model. So when looking at the data collected, there is another step in linking the needs and pain points of the end customer to the business driver in the client's pain points.

However you use this tool, bear in mind that the story format isn't the most important thing. The aim is that you can share context and the goals of your (potential) users. Frameworks are for finding ways for talking about what's valuable.

Thursday, 27 July 2017

Getting email up and running for side projects

Photo by Songeunyoung on Unsplash
Rectifying my previous mistake - not building community by using email engagement - has proved to be a learning experience! Since our investment is minimal (and we have no real users yet!) the tools that we use all come with some constraint/trade-off. This next bit explain this is going to be slightly technical ...

With Heroku it has surfaced as putting in CNAME records in the root of the domain. With register.ly this then stops us adding any other root records, for example mail servers. Cloudfare has a service that will flatten CNAME records for you into A records so everything plays fits together. So a switch of nameservers and 48 hours later we had email in place.

The services that we have chosen for email are Zoho and MailerLite. Zoho has a Office365/GSuite vibe going on and includes a mail list server. This setup not only works for newsletters but also the transactional emails. So we get account welcome, platform updates, and follow up emails as well. As someone who has been creating workflow systems for nearly two decades I am impressed by their automation setup. The main problem has been restricting myself to a very simple MVP. Too tempting to build a baroque workflow straight away! So this gives us the tools to get a connection to users and the app, with community building. I hadn't considered email lists, but have now added that to the roadmap.

As this project is taking shape we are using more of the skills from our professional lives. For example, a lot of the code to integrate these services now lives in a GitLab kanban board. We are creating issues for specific bugs instead of general cards in Trello then pushing code changes to git. Not sure why this is. Could be the launch approaching has caused it to kick in? Or it's getting to grips with DNS has reawaken what it's like to work in an early stage company.

As we are getting ready to launch we have also added a system status page. UptimeRobot has a great system for doing this. It evens includes the obligatory Slack integration for alerting. This didn't use much technical skill, add a DNS record and it worked. It was funny how excited setting this up made me!

I did originally write a whole post on the onboarding process. This fell a little flat as it was missing a lesson or stand out experience. The aim is to have more to share on that next time.

Saturday, 8 July 2017

Building awareness of Bashfully

So to validate an idea you need to have people be aware of you. The first step in Introducing bashfully was a Twitter account. This provided someway of people finding out about project, promoting the survey, and getting to the landing page.

Publishing the survey was one of the first pieces that I had available to promote. It was also vital in starting to get some evidence for the problem that we were trying to solve and the audience.

The landing page was a very important piece in getting started. When this was created it gave us a way of sharing progress, to explain the concept in more detail. This then meant that when we directed people to the survey from the landing page we could get better feedback.

Another key feature on the landing page was a sharing button on registration, this gave people who were interested a way of generating some word of mouth interest. Around the same time a friend asked me a question about her website and I noticed some interesting meta tags. This took me on a journey learning about Twitter cards and the Facebook Open Graph template

So, after a bit of experimentation I came up with this for our landing page

<meta name="twitter:card" content="summary" /> 
<meta name="twitter:site" content="@bashfullyapp" /> 
<meta property="og:url" content="http://bashful.ly" /> 
<meta property="og:title" content="Do you want a better online resume?" /> 
<meta property="og:description" content="Tell the world about your achievements through storytelling on Bashful.ly!" /> 
<meta property="og:image" content="https://bashful.ly/images/hamster-background.jpg" />

Which when you copy a bashfully link to Twitter gives you this ...



As the functionality develops we will be exploring this further! I wasn't expecting to learn this kind of thing when we started this side project, but it certainly has given me an extra insight to social media for my day job.

Once the registration process, landing page and survey were all up and running I started sharing. First with HBX networking groups as they are part of the target demographic. Then on twitter, first just from the bashfully account, later from my personal twitter and LinkedIn accounts.

Another important factor was starting to write blog posts and share on personal social media to boost awareness. The blog that really got interest going was one about the technical infrastructure. This lead to a lot of interest from friends and acquaintances. I'm guessing because of their background and the subject matter made it seem more "real". The lesson here is to write a piece that will resonate with an audience, then promote it to them.

As I was doing this and collecting together research I realised a big mistake. I hadn't thought about emails sharing useful information to people who had registered. This would have served two aims, the first the reason people were interested in the product in the first place - information and guidance about creating profiles and selling their skills. The second, more selfish reason, was to create engagement. Make sure that they remembered us when we were ready for the public beta.

It's a bit late to do that now as we are making such good progress! But it will come in soon after we launch. One benefit of doing it this way is that we will have a working site people can use and more concrete news that we can share.

Coming next are the lessons learned in building the onboarding process...


Monday, 3 July 2017

Chromebook on the go after 3 months

Bit of an update on cloud working and the tools that I'd picked out to investigate over the past three months: Draw.io is a great alternative to Visio, although working in a Microsoft dev and productivity stack I'd still stick with Visio. It's missing some extra collaboration features that would give it the edge. Which brings me onto Mockflow. This is a great wire-framing tool. The collaborative element allowed for some "paired designing". Each with our own laptop to look things up while the other added elements that we'd agreed to.

Pixlr editor is a good replacement for what I need in an image editing tool. Haven't missed the desktop aspect. Similar experience with Caret, although I haven't needed a text editor that much. Office online is a bit frustrating as it loses what should be a key feature - consistency. All I want to do is put some bullet points in!! But it suffers from the same issues that ALL WYSIWY HTML tools I have ever used suffer from. It gets confused between where the formatting applies.

As a laptop I have no complaints with the Chromebook, it makes the hardware a commodity item. One that I don't have to worry about. The ability to mount Dropbox and OneDrive as file stores also negates vendor lock in. I can have multiple back ups and work where it is appropriate. iOS even comes with a Google Drive widget so I can email my mock-up files on the go!

Where it gets interesting is with Codeanywhere and Cloud9. I prefer Cloud9 as being a bit more user friendly and a tad more RAM in the free pricing tier. It took no time at all to get a virtual machine running Linux and install R and create a PDF containing a graph.

This does open up all kinds of possibilities. For hobbyists, you can try out a new stack without much knowledge about the setup or ops. Then if you don't like it get rid of and you don't have clutter on your system. Then have a clash of libraries the next time that you want to try something. It also provides the ability to get some experience while using similar technology to enterprise systems .

For startups you get access to enterprise style infrastructure, if not scale. One of the most surprising things for me as I've looked at a couple of side projects is just how easy it is. I'm sure that for $9/month you could host an email marketing system for an SME. It'd (optimistically ;) only take a few weeks of full time work to get it up and running.

For enterprises that last sentence may seem worrying. How can competitor analysis keep track of specialist companies? Especially if they can pop up within a month and steal your business? Well, by doing the same thing. Get your pioneers to experiment. No need to wait for ops to be available. No need to worry about too much in fact. Do the experiment. Learn the lessons. Then either bring the experience in house or do some knowledge transfer. Or migrate to your usual infrastructure and tech stack.

The other aspect is that with scale in customers, you also have an advantage in problem knowledge. One way to keep customers is to double down on understanding their problems. Then solve them. Also keep revisiting this, to keep actual problems at the forefront.


* my optimistic and purely hypothetical SME marketing tool:
  1. Get the sending side sorted with basic metrics recorded (this would be heavily manual driven process by the startup)
  2. Get some reporting based on metrics for performance of first send to users (first time you give access to system)
  3. Get some basic content management for next send
  4. Get billing in place ready for first invoice
  5. Then refine each aspect of above each time you sell it

Of course this is dependent on experience with the technology, free time, and understanding customer you could get each stage above down to about a week. It's also not going to be competing with Pure360 after a month, but it will do a job for someone.

Sunday, 25 June 2017

Building Bashfully - a brief background

The first guest post here on "Part of the Process" from Martyn Osborne as he explains the Infrastructure side of bashfully, a parallel concern to testing the vision.

Since we've recently publicly unveiled Bashfully, it seems prudent to run through the technology stack and why we chose it.  I’m hoping it may also at least partially explain why starting a side project was appealing to me!

Backend stack

Naturally, there were some elements I wanted to focus on when selecting the language:
  • Fun.  As it's a side project (in addition to a full-time development job), I wanted something interesting to play with in my free time.
  • Different.  During the day I spend most of my time in C#, F# and JavaScript in Windows-land.
  • Functional.  I love F# and the paradigm, so that was the direction I wanted to go.
  • Web sockets.  This project is a toy - and I wanted to play with them at some point (of course, when appropriate!)
  • Practical.  Yes, I wanted a toy.  I also wanted a project that will eventually materialise!

I had been keeping a close eye on Elixir for quite a while, and Bashfully seemed an excellent excuse to use it in anger!  Elixir also has an excellent web framework with Phoenix, and an exceptionally helpful community.

So far, Elixir genuinely makes me happy.  I personally think that’s high praise, and I may dive into more detail there in the future.

PostgreSQL suffices for persistence.  Elixir has good support with Ecto, it’s easy to run on my machine, and Heroku allows remote PSQL sessions.

Frontend stack

To be honest, I battled with the idea of making Bashfully an SPA for a while (and I have some expertise in that area).  However, I now believe that would have been overkill; especially at what is essentially a prototype phase.

Instead, we’re primarily using Phoenix to render pages on the server side with Vue sprinkled throughout where advantageous.  I’m not particularly attached to Vue yet, but it’s sufficient and I am eager to explore further.

Hosting
                                                        
On the hosting side of things, Heroku has been fantastic.  We’re using GitLab CI to build, test and immediately deploy Bashfully to our Heroku staging environment;  we can then promote that build to production with Heroku’s pipeline feature.  This was working well within an hour!

Even though this setup was primarily to make my own life easier, it also had the interesting effect of allowing Neil to easily make design, wording and content changes to the application (via GitLab’s excellent editing UI) and have them deploy to staging without any technical barriers.

Security

This bit is pretty important.  We have worked on a similar web application for a while and have learnt several lessons along the way; these lessons have been incorporated into Bashfully.

We decided from the very beginning to go passwordless and use third-party authentication providers (Google, Facebook, etc).  This was trivial to set up (we’re using Ueberauth) and means we don’t have to process or store credentials - very helpful in the age of data breaches!

Site-wide HTTPS has also been implemented courtesy of LetsEncrypt via Heroku.  

My advice

For anyone else attempting a side project (and with the intention of going live in a reasonable timeframe!), I would suggest:
  • Don’t pick any technologies too esoteric.  Make sure they’re fun, but also practical!
  • Do pick some technologies that you are familiar with.  Writing good quality idiomatic code when learning one technology is hard enough - don’t try it with too many.
  • Keep the infrastructure simple.  I toyed with the idea of building the infrastructure myself on AWS;  but not doing so let us concentrate on the mockups, journeys, and the application itself!
  • Define your vision early on.  Staying focused on building the right things is critical, and a vision helps (especially as a developer!).
  • Break the project up into smaller chunks.  Something like Trello is a great help.  I would argue that this is a critical skill for any developer and one that a side project can help with.

Thanks


If you made it this far - kudos!  I will probably be expanding on these topics in the future, so keep an eye on this blog!

To add to this, not only was I using the GitLab UI but I have created, merged and squashed feature branches. I have even wired up some page handlers unaided without knowing any Elixir or Phoneix!

Thursday, 22 June 2017

MEETUP: "A look into what every Product Manager forgets " at ProductTank Brighton

Three varied viewpoints and interesting talks at tonight's ProductTank, around what Product Managers usually forget. First up was Mark Rodgers sharing how they overlooked things in the first iteration of the new image search functionality at Brandwatch. I can completely relate the situation in my own work. That thing where when you see the product with real data and a real usage situation you suddenly notice something and think "how did I miss that?!", since it now seems so obvious. This made me feel a bit better that if someone, as experienced with Mark and with his team at Brandwatch, can make that mistake it's not surprising I do.

Next was Ben Sauer from ClearLeft. His talk was a more abstract look at companies culture. For example, how it is all around us but that we don't notice it. And consequently (or maybe because of?) we don't discuss it enough. He recommended a couple of books to read Creativity, inc  by Ed Catmull and 
Nonviolent Communication: A Language of Life by Marshall Rosenberg that I am looking forward to reading. Especially as he said the lessons of applying NVC to his life had improved his relationships. One particular piece of advice that stuck with me was to use comedians for change. That is if you are using videoed user feedback to convince "higher ups" that something is a bad idea, get someone funny. He put forward the suggestion that it helps if people can laugh at themselves when admitting a coursed of action was wrong.
The final talk was Tim Stamp from Rakuten talking about security and how this can damage business reputation when done badly. I know that I have thought about user permissions a step too late in the design process before. One piece of advice he gave was to get someone in with a security focus when discussing the user journeys so that they can suggest how attackers could abuse the system. A related point that Ben made in the panel Q&A after, was that we don't have discussions about security/usability tradeoff enough. So get security in at the user journey mapping should help that happen as well.

It was also very satisfying listen to Tim talk about passwords, and if possible avoiding them by using single sign-on. Exactly the approach, and for exactly the same reasons, why we have avoided them on my side project!

Sunday, 18 June 2017

Introducing bashfully

So in my last post on the "untitled side project" I said that I would elaborate more on the idea. When we started the project we had a strong idea of the kind of project that we wanted to do. And after settling in the area I started doing some reading around and thinking about who we could help. What change were we looking to make in the world? How were we looking to alter behaviour? (a litmus test for innovation) 

The project is called Bashfully. Partially a play on the concept of being bashful and shy about talking about your achievements. Partially because the name could be part of the domain in the .ly TLD ;-) This project is to provide an online resume to help people shine in ways that the current sites do not. To help them be proud of what they have achieved. Finally, to allow them to see their career development as a journey and set their own narrative.

The Trello card entitled "what are we hoping to learn?" says:


MVP is to test the hypothesis that there is a market for a resume site and network for people in a creative role or within 3-4 years out of university. These people are not currently served by either LinkedIn because the format is quite restrictive/unispiring or Facebook because it is too informal and basic. Although both sites offer good networking and the target demographic are already somewhat established in at least one of these.
As the first step to sense check this I created a survey and shared on social media. Around the same time, we created a landing page. This had two purposes, 

  1. to share awareness of the project, including the survey 
  2. to build up the functionality iteratively
The first part of this functionality was the registration of interest. This is the foundation of the user authentication that the full site will use. It allowed us to explore the different APIs that we wanted to use and actually integrate with them.

The initial results from the survey were great. One idea suggested was almost word for word how I would describe it - with the caveat we need to be careful of confirmation bias! Another respondent gave us an idea that was brilliant and we hadn't thought of. 

The output of looking at these survey results also helped firm up the vision from the initial hypothesis.This was a vital thing to get in place. Any project and especially product needs to have a clear sense of:
  1. Who you are helping?
  2. Why you are helping them?
  3. How will this help them? What is the positive outcome for them?
Without this, any sense of prioritisation or ROI calculations that you will hope to do are likely to be a mirage at worst. At best you'll have a useful proxy, but that can change without you noticing. This is as true for a 2 person side project as it is for any commercial organisation. Probably more since we are doing this for fun and not profit, and launching is part of the fun!

Thanks for reading. The next instalment is likely to be on crafting the user journeys and mockups to test with real people (aka "users").

Further reading


Starting text mining with R

Like a lot of Product Managers I use Excel with tools like Google Analytics a lot. Probably like many people I find Excel very frustratin...