Coding Concepts – Cargo cult programming

Cargo cult programming is a style of computer programming characterized by the ritual inclusion of code or program structures that serve no real purpose. Cargo cult programming is typically symptomatic of a programmer not understanding either a bug they were attempting to solve or the apparent solution

Are you an Incompetent Developer?

One of the most interesting parts of software development, are the group dynamics that form to complete the task at hand. This congregation of individuals compromise many different areas of expertise, personality and skill. Neil Green has created this fantastic website describing these personality patterns that arise in software projects. The reasons these personalities exist,…

A Hackathon Guide – What to do, How to do it & Who to do it with?

Definition: Courtesy of Wikipedia, A hackathon (also known as a hack day, hackfest or codefest) is a design sprint-like event in which computer programmers and others involved in software development, including graphic designers, interface designers, project managers, and others, often including subject-matter-experts, collaborate intensively on software projects.[1] The goal of a hackathon is to create usable software or hardware with the goal of creating a functioning product by the end…

Code Review Checklist

Code reviews are necessary to ensure your application is consistent. We live in an age of copy-and-paste craftsmen, so making sure that the bits that do get copied are correct is imperative for this approach to keep on working! There are many articles out there telling you why code reviews are important, why you should…

Coding Concepts – Cyclomatic Complexity

Cyclomatic what? Even spell check doesn’t recognise the word, but it’s a super useful software metric for understanding how your software works. Having read about it a few years ago, it apparent use seems to have deteriorated. I feel it’s a very valuable tool in a developer’s arsenal, and something that should be used in…

Coding Concepts – Reflection

Reflection is a term thrown around every now and again, but do you really know what it means? Why and when it should be used, and what are its main strengths?

Coding Concepts – Anonymous Methods

What is an Anonymous Method, and when should we use them?   Definition Anonymous Functions – In computer programming, an anonymous function (function literal, lambda abstraction, or lambda expression) is a function definition that is not bound to an identifier. Anonymous functions are often[1] arguments being passed to higher-order functions, or used for constructing the result of a higher-order function that needs to return a function. If the…

Coding Concepts – Understanding Generics

What are Generics, and why should we use them? Generic programming is a style of computer programming in which algorithms are written in terms of types to-be-specified-later that are then instantiated when needed for specific types provided as parameters. This approach, pioneered by ML in 1973,[1][2] permits writing common functions or types that differ only in the set of types on which they operate when used, thus reducing duplication. Such software entities are known…

Moving from .Net to Salesforce. My thoughts and the challenges so far.

Having spent nearly a decade in the Microsoft eco-system, I decided it was time for a change. I’ve developed a range of web applications and tools using the Microsoft stack using some fantastic, far flung and now pretty outdated platforms/technologies such as: Web/Windows forms, WPF,  Silverlight, SQL Server, Web API, MVC, VSTO, Powershell, TFS & VSTS. These were/are…