Tuesday, 15 July 2014

Frameworks or Processes

Frameworks or Processes

I was discussing our processes at work 1 day with my manager, Bruce Heard. You notice I automatically said processes. The question is do we have processes or frameworks. Bruce said to me, “if you stood in front of a classroom and write a load of facts on a whiteboard the pupils will remember about 10℅ of what you said. If instead you tell them the subject and that they must use the tools available, eg the internet, books etc to find out what they can about the subject. The pupils will ultimately remember more and learn more.” This principal can be extended to the workplace by providing not a hard rigid set of rules but a more flexible framework to allow the employee some degrees of freedom to investigate, experiment, adapt and learn.

First a business needs to decide if to adopt a Framework or Process approach.
Whichever you choose between using Frameworks or Processes which will be specific to your business its important to have a coherent approach throughout your business so if its Frameworks or Processes it should be a value held throughout your business so all departments fully adopt the approach selected.
Now its equally important for your Frameworks or Processes to evolve but its equally important that your Frameworks dont become Processes or vice versa, to ensure this doesnt happen its necessary to define what your business defines as a Framework and a Process, which will be specific for your business.
This will allow you to govern your Frameworks or Processes and ensure that they don’t gravitate too far away from becoming its opposite force.

Your business should continually monitor your Frameworks or Processes, whichever you have selected as your core value for your business to ensure that they remain steadfast to their definition. A department should be accountable to ensuring all departments adhere to this, if you like, internal auditors of your Frameworks or Processes ( whichever is selected for your business )
It is imperative that each department buys into the core values because if some departments adopt a Framework approach and other departments Processes, since departments rarely act as silos in a business or shouldn’t act as silos and should communicate across their borders you will consequently develop poor communications and tensions will arise between departments

A separate dimension that we’ve not discussed are the tools to use which act as enablers for your Frameworks or Processes. You should have a consistent approach to the tools you use and the tools should be specified in your Frameworks or Processes. Defining tools to use ensures a consistent approach. If tools are not specified in your then the user can select any tool they wish to do their work
which may not be safe, may not following industry standards, could cause issues when you are being audited, may not be efficient, may result in losing business ISO accreditations, difficult to manage, train and support etc

When would you use a Framework or Process. To answer this there are a few things to take into account. If you adopt Frameworks you would not make statements, such as "click here now click there, enter this and then jump up and down", you simply state read this article in the event you need to do X, in other words signpost the user and let them go and work it out for themselves exactly what they need to do.
For processes, you will consider every possibility without the possibility of any other permutation and specifically state the steps the user needs to perform which could be references to other articles and online tutorials etc but the difference to frameworks is that all possibilities are considered and accounted for with a process to explain to the reader what they should do in such events.

Frameworks foster an environment of creativity, empowers employees, saves time in producing exhaustive reams of process material and is more adaptable, and makes employees accountable as they cannot hide behind a process and blame the process when something goes wrong; they know what their role is, they know what their duties are and they are given the tools, training and a framework to achieve their duties.
Frameworks work well in ever changing environments, but not as well in environments were control is necessary where consequences of error is catastrophic.

Processes allow strict control with little chance of anomalies occurring. In businesses were roles and responsibilities and duties rarely change, well defined processes can work well and where it is 100% critical that an exact process is followed; organisations such as hospitals, military and where the consequences of deviating from a strict set of processes can result in catastrophic failure.

Processes can lead to personnel avoiding accountability when errors occur because they are able to blame the process. The only exception for this is if the organisation does not adopt good tools to support the framework, and doesn't allow freedom to develop and experiment with the framework.

Wednesday, 4 June 2014

Self Evolving Software

SES has been launched on the AppExchange.

SES is simply the holy grail of software development, the ability for a computer program to understand what is required in English and hunt down functions in the codebase to fulfill a particular requirement.

Development teams commonly duplicate code because they are not aware that the same function has already been developed by another developer, this may be in the same organization or not. Every time this happens an organization loses money in costly developers time and also by unnecessarily delaying IT projects.

Duplicating code causes other issues such as unit tests have to be created twice and in cloud environments like Salesforce additional unit tests results in longer deployment times to Production, and finally Salesforce is limited to 3,000,000 characters of code so less code will be available.

SES literally automates the processes of finding relevant functions from the codebase and creating the code using these functions to fulfill the business requirement.

By utilizing crowd sourcing software development in SES is a catalyst to faster, more accurate and efficient software development.

Saturday, 10 May 2014

Insert Related Test Data Quick and Easy

We all spend a lot of time making test data for our unit tests, especially when linking multiple objects together.
The function below shows you how you can create a json object, upload it as a StaticResource and then run the following code which will automatically create your test data, all objects linked together as expected.
Instead of it taking you hours making code to create test data this function will take less than 15 minutes and all you will need is around 3 lines of code to upload as much data as you like.
You can also use the same function to prime your sandboxes with specific data that it needs to operate correctly, or your training and test environments with data to fullfil the operations your users need to do.

There are a few additional changes I do want to make to the code, but overall the code works fine

Code will be uploaded soon