Coding Zealotry: Peer Programming

In our next episode of the smash hit series “Coding Zealotry” (aka “The Random Babbling of a Madman”), we’re looking at the practice of peer programming (pair programming) and asking ourselves whether we should abandon our solitude and do it all together.

Peering Into the Paradigmboat-606187_1280

In case you’re uninitiated, peer programming involves two programmers sitting in front of a computer, writing the code together. Usually one guy writes and the other guy points out all his errors. Depending on the chemistry it can be a fun session of engaging on unique ideas, or a world war of spats over variable names. Continue reading →

Coding Zealotry: Class Interfaces

In a previous article entitled “The Religious Zealotry of Coding Best Practice”, we looked at how some best practices are implemented blindly, even though the costs outweigh the benefits where the practice is actually implemented.

In this article we’ll take a brief look at class interfaces.

It Starts Simple

So here’s a classic service class in C#:

public class CarCreator
{
   public Car CreateCar(string name)
   {
       return new Car { Name = name };
   }
}

It’s simple, it does what it says it’s going to do, it’s easy to read, and clearly easy to add onto. Continue reading →

The Religious Zealotry of Coding Best Practice

Looking across the different cultures of software houses, I’d say there are roughly three camps:

1. The Hack-Attack

The fast food merchants of code production, these guys look to get it out ASAP. Do the least possible work to get the sign-off from the customer, to get a product installed that does what it’s meant to do … for the most part at least.

I actually respect these guys – you can laugh at the quality of their work, but like a fast food outlet technically gets the job done (fills the stomach), these coders are incredibly efficient. In terms of bang-for-buck, they are often remarkably cost effective.

It’s fairly easy to understand the problems with this approach though. Some projects just go wrong. The code is at a level of spaghetti-ness that would impress a native Italian mafia-run dockside restaurant. Typically what happens in these firms is that a fast-build project is also a fast-fix project, so instead of accepting that the code essentially needs some level of re-write, the quickest dirtiest fix is implemented, which often only exasperates the problem. Continue reading →

The Developers that Ruin the Show

“Previously on <TV show name>…”, we discussed how a business can slide into the blame game, where the need for accountability can cause staff to avoid ownership, and where every failing can result in additional processes that produce more cost than benefit.

code-707069_1280We’re preaching the virtues of trust, but as many a broken marriage will narrate, trust that is broken is often never recovered. For every grade-A star, there is a problem developer lurking behind his three monitors, about to ruin the party for everyone. How shall we fix a problem like Maria?

We’ll look at several common party poopers, and I’m sure you’ll even find yourself reflected in one of the categories. I certainly do. Each of these citizens starts with a low level of trust, and as you retrain them and increase their trust levels, you can drop the obsolete processes that originally served as safeguards. Continue reading →

How to give your LinkedIn Profile a Makeover.

With thousands and thousands of blogs about sales and marketing out there, it’s tough to know which ones are the ones worth reading. Between the news, LinkedIn, Twitter, and email, most people are inundated with generic, untargeted content.

Hence why, rather than labeling myself a ‘blogger’ I have dubbed myself a serial ‘Re-Blogger’. Finding targeted and interesting content in weird and wonderful places and sharing it to those that in normal circumstances may have missed it.

Continue reading →

Money-Making is Where Money is Made

When it comes to inventing new tech ideas, it’s so tempting to target the consumer market.  You’re living out your daily life and out of that context you think: what about this new cool app that could do this and that … consumers would love it. Right?

The problem with retail apps is that they’re asking consumers to spend a little bit extra on top of what they’re already spending.  While a good deal of their budget is dedicated to entertainment, that money is not currently untouched – it’s all being spent already.  So when you come along with your cool app and ask someone to spend, you’re asking them to switch their spend from something they’re already enjoying so much that they’ve been willing to pay for it.

If you’re going to be successful in the consumer space, you need to take one of two approaches: Continue reading →

8 Emerging Tech Trends You Can’t Ignore

“IT executives are always preparing for the next big thing in IT. We’re seeing technologies with overlapping software and systems support. We also see a sharp rise in the role of IT in business as it relates to mobile and cloud-based device implementation.”

This is an expert from an article I read on ‘IT Marketing World’ By Freelance writer, Dave Landry. 8 Emerging Tech Trends You Can’t Ignore.

“Observations made about today’s technologies has prompted the following trends. They are the least speculative and are expected to have real-life consequences with regard to how we work and do business.” Continue reading →

Architecture and modeling in Visual Studio

I’d like to take a closer look at the use of CodeMaps in Visual Studio to debug and to document our solution. The following link to Architecture and Modeling has some very cool videos detailing how to use Code Maps to find the root cause of a bug. Further to debugging Code Maps can be used to assist in documenting program flow and dependency chains visually. Lets start with a very basic example of how to generate a CodeMap. First off if you don’t know what a Code Map is then let me explain. When browsing your VS project files and looking at the ‘References’ link that appears above a method declaration, if you pay careful attention you’ll see the link ‘Show on Code Map’. See below. Continue reading →

Simple C# Licensing (Rhino Licensing)

What is Software Licensing?

Software licenses typically provide users with the right to one or more copies of the software without violating copyrights. The license also defines the responsibilities of the parties entering into the license agreement and may impose restrictions on how the software can be used. Software licensing terms and conditions usually include the usages of the software, warranties and disclaimers and protections if the software or its use infringes on the intellectual property rights of others.

About Rhino Licensing –

Rhino Licensing uses Public-key cryptography, also known as asymmetric cryptography, it’s a class of cryptographic algorithms which requires two separate keys, one of which is secret (or private) and one of which is public. Although different, the two parts of this key pair are mathematically linked. The public key is used to encrypt plaintext or to verify a digital signature; whereas the private key is used to decrypt cipher text or to create a digital signature. The term “asymmetric” stems from the use of different keys to perform these opposite functions, each the inverse of the other – as contrasted with conventional (“symmetric”) cryptography which relies on the same key to perform both. You encrypt a value using the one key, and it can only be decrypted using the other key. In the case of license key generation, we store our private key on the server, and distribute the public key with our application. When the user receives a license key, the application is able to verify that it came from us by using the public key. If someone tampers with the license key it will be invalid and the software will no longer execute.

Continue reading →