2015/12/31

Which is the next hot technology for full stack developers?

I am trying to compile a list of technology stacks that full stack developers are using and could in the future become part of a recognised approach like LAMP. Please tweet me your suggestions...


  • React / Go / Mongo : MGR 
  • React / Node / Mongo: RNM
  • Angular / Ruby / Mongo : MRA
  • Ruby / Rails / Postgres : RRP
How about layout technologies? The main runners seem to be:

  • Foundation
  • Bootstrap
Then there is view / control systems like:
  • Backbone
  • Angular
  • Ember

2015/12/23

Ansible Destination Not Writable


This is a quick blog post FYI in case you are searching for error messages like:


msg: Destination /etc/mysql/my.cnf not writable

This may be caused by the need to set the sudo flag in any roles/your_role/vars/main.yml files as it seems that they default to sudo : no if you define a main.yml for your vars. While creating the main.yml file for all of the vars your role defines seems to be best practice it isn't intuitive that you need to redefine that this role should use sudo.


---

sudo : yes

Thanks to Patrick Kuti for his tip in this ansible discussion for the solution.

Note too that vars in a role overrides inventory variables. If you want to document the defined variables use roles/role/defaults/main.yml instead.

Links:

2015/12/17

The Three Stages of Software Design Evolution


I have had a number of conversations lately with different people on the subject of assessing job candidate competency. This is a really hard thing to do in an interview. One of the main reasons is that the stress of the interview can seriously detract from the candidate performance.

A colleague asked me how I would assess the levels of competency for a developer and after some thought I came up with a few distinctive levels:

JFDI: Hack, Ship, Hope

Now we are talking here about the 'design' element of the process. You can hack code in a well designed component or a poorly designed one. The choices you make on your first attempt will determine whether when you need to change the code whether you can iteratively change it or it has to be replaced.

Startup developer teams often end up building components that are thrown away. This is usually because they didn't fully understand the requirements. This is kind of a special case. Startups are supposed to solve problems for which the answer is not known aren't they? (Well supposedly).

At this level code review may not pick up on the design decisions being made (or lack of design) during individual diffs. 

Ask a Friend

In reality most software developers have discovered Google search by the time they graduate. The even more socially adept may have also discovered the joy of getting help on Quora and StackOverflow. The tricky thing is that once you are in an professional role you often can't reveal too much about what you are working on.

There are a few different activities to look for:
  • Searching the internal repos for a working solution (yes code can be re-used).
  • Internal forum activity.
  • Engaging a more experienced engineer. We all need coffee breaks.
  • Finding the coding standard for your team and seeing what the normal design pattern usage is.

Defining Norms

Once a developer has started to get feedback on designs there is a natural tendency to share the decision. This may be as part of a show and tell or a wider presentation. These sorts of activity will drastically improve the efficiency of not only the developer solving the problem but the reset of the team by sparking ideas and understanding.

The nirvana of defining 'the way we work' is upon us. One of the most debilitating challenges facing any developer sitting at their keyboard:
The past, like the future, is indefinite and exists only as a spectrum of possibilities. - Stephen Hawking
There can at times simply be too many possible ways to solve a problem. Design patterns can help but they some times contradict each other. In order to be able to 'get things done' some times the best thing can be to have a standard way which means you can get started then discover along the way the problems you still don't know about. This idea works well with the concept of tracer code.

Defining Exceptions

Clearly the goal of defining a norm like how should a problem be solved should include the counter cases. If the goal of defining ways of working the challenge here is to understand where a library, tool or process doesn't apply.

How many times have you seen hadoop map reduce used to solve problems exactly matching the documented counter cases? 

Some framework take this "when you have a hammer everything looks like a nail" philosophy to the limit. 

In a startup context you can also find that you come full circle and use the wrong tool simply because you have to get something done. The reversibility design pattern is your friend. Apply liberally. 

2015/12/16

Sales University

In a previous post I mentioned the sales training from Rod Sloane which I attended at Google campus. My goal was to brush up on my sales skills to support a few projects I am working on at the moment.

In addition to finding some seminars and networking groups I also built myself a reading list of some of the top rated sales books available on Kindle. For each one I downloaded the sample and bought it if I was convinced it was worth a read. I will update the list as I get through them.

Coffees for closers

A really useful read for those who haven't, like me, had any formal sales training. It gives you a lot of tools and examples to help you think about what you could have done differently in retrospect.

Predictable Revenue

I really like how this book outlines a number of funnel steps and helps you to focus on tracking conversion rates so that you can predict sales volumes. The idea is that if you know the conversion rate of all of the steps in your sales funnel then you can estimate team size required for your sales target. I ended up using the sales funnel stages that are defined in this book to create the opportunity states in my CRM. Great stuff

To Be Read (Not all directly sales)

- The DIY manual of copy writing that really packs a punch
- Delivered: the no nonsense guide to email marketing
- 79 network marketing tips for fast track success
- Sell them the pen
- The little fish guide to marketing
- Bootstrap marketing: 101 tips for marketing on a budget

Other Events