Tuesday, 17 February 2015

My Favourite Startup Tools for Devs

As I've moved from failed startup idea to failed startup idea, and convinced my girlfriend that "this is the one, just give me some space to finish it and we'll finally spend lots of time together", I have actually picked up a few tools that are immensely useful.

Here are a few tools I seriously recommend that you consider if you ever decide to put your relationship on the line and get one of your own ideas up and running.

Feel free to leave a suggestion or two of your own in the comments.

Tuesday, 13 January 2015

Finding Common User Journeys with Apache Spark

Understanding the behaviour of your users as they navigate and interact with your websites and applications is one of the key sources of insight for improving your products and your business model. One particular metric that can be especially useful is understanding common journeys - helping you to understand user intent.

Google analytics provides the “Behavior flow” report, shown below, which provides detailed information about common user journeys. But if you don’t want to use google analytics - perhaps you want to create more advanced or customised behaviour flow tools (or you want to keep all your data private in your own datastores) then you can easily recreate this functionality using Apache Spark regardless of how big your dataset is.

Google Analytics' behavior flow tab
This blog post should be accessible to any developer, though the examples are in Scala. By the end you will see how to create your own behaviour flow functionality, and you’ll also see why Apache Spark is becoming massively-popular - because it is powerful, easy to use, and fast.

Monday, 29 December 2014

Do You Know Your Employer's Business Model?

If you are a passionate software developer who is motivated by more than just writing code, then you should consider learning about your employer’s business model and business models in general, so that you can play a significant role in making technical and business decisions.

I am just realising how lacking an understanding of business models has prevented me from making better day-to-day decisions and held back my workplace innovations.

But as I’m learning from the Business Model Generation book, I’m seeing so many ways I can increase my contribution on the products and projects I find myself involved in. This feels like a breakthrough in my career that will empower me to become a more effective problem solver, developer, and leader.

In this post I will explain why, after I first share the definition of a business model.

Wednesday, 5 November 2014

Enabling Continuous Delivery: Through Process or Patterns?

Continuous delivery enables businesses to out-iterate their competitors and deliver software significantly more efficiently. Deploying to live early and often is the fundamental practice that leads to these benefits.

More and more, companies nowadays are moving to continuous delivery because they see the massive successes other companies are achieving. Enabling continuous delivery, however, is not a linear path to riches. Due to the challenges involved, there are a number of approaches available.

Keep the suits happy - deliver software frequently

Monday, 27 October 2014

Is Your Team Responsive to Change?

Change is a constant in software development and business. Successful organizations are often highly responsive to change. As a developer, you play a crucial role in providing this vital capability.

A company needs to keep pace with the latest innovations and be able to quickly deploy and iterate their own innovations. That’s why it can be super-important to be responsive to external changes - like competitor innovations or customer demand, and internal changes - like new insights and innovations that have more potential than existing items on the product road map.

Unfortunately it’s not enough to assume that your *agile* process will magically make you responsive. In fact I encourage you to reflect on your culture, and your software delivery process, and be honest with yourself; is your process really just waterfall software development masquerading as cargo-cult agile?

I’m going to list a few indicators that help me to understand whether a team’s culture engenders responsiveness. You can use them to ask questions about your team. But first I want to elaborate on why responding to change is important to you as an individual and the companies you work for.

Monday, 22 September 2014

A Stakeholder's Thoughts on Developers, Collaboration, and DDD

As my career has progressed I have gradually grown from a programmer into a person who uses collaboration and technology to solve business problems. Learning about Domain Driven Design was one of the most important steps I took in achieving this, because it taught me to focus on business problems and collaboration with non-technical people.

In this post you'll see some insights that may help you to grow into a (better) leader and business problem solver. They come from a recent interview I gave to Sarah - a product owner and travel & holidays domain expert.

Sarah shares her thoughts on collaborating with developers, and provides insights into what she perceives as a good developer. I hope you find this information useful and are encouraged to spend more time learning about problem domains and business priorities.

Thursday, 21 August 2014

Conference Video Recommendations

I love watching conference videos, and certainly find it's a great way to learn and keep upto-date on a diverse range of topics. In this post I'll share a few of my favourite talks, and give you links to all the conferences I am aware of.

Normally I pack my tablet full of these talks and watch them during my commute. So you don't have to find lots of time each week, you could try and make productive use of your journeys to and from work like I do.

Please let me know if you have any suggestions or recommendations... I hope you find this list useful.