Tuesday 30 July 2013

How Much Business Training for Software Developers?

How much do Software Developers need to understand the business of the application they are developing?

Management and Business People tend to think big-picture (and that is a good thing).  They view the application as a growing (hopefully) number of services to a set of customers making the customers' lives easier, and ultimately making the company money.  Without question, this view of the application is crucial to the success of the application.  Without this view, the services that are built may not fit together, may not be complete, or may be missing altogether.

So, how much of the underlying business do Developers really need to understand?  How much time (and therefore money) should be spent on training Developers on what the application ultimately does?

When a Developer is building one of the above-mentioned services, they do not look at it as a piece of a larger number of services which form the application; they look at it in terms of what pieces of information are moving, what processing should be applied, and where that information should go.  Depending on the nature of the data, this could be a database, a call to another system, mathematical processing, etc.

To Software Developers, an application is just an endless paddle-ball game of requests and data processing.  The request comes in from the User, some data gets processed, and is then retured and displayed to the User.  Request comes in, data goes out; request comes in, data goes out, request comes in...  You get the idea.  An application is a series of data requests, API calls, reads / writes to a database, display of data to a User, etc.  

Remember, the same Developer can work on software that governs the fuel flow of a rocket one day, quantity of jeans on store shelves the next day, and a patient medication system the following day.  Do they need to be a PHD in rocket phycics, Masters in Business, have their MD?

As a Manager, you want top notch Software Developers that can write great code with few issues as quickly as possible - regardless of what business you are working in.  It is extremely beneficial that those Developers can transfer their skills from one subject matter to another; quality code is needed in rocket physics, retail, health care, etc.  Taking time to train Developers on the business of the application is ultimately wasted time, and time is money.  

You may be thinking that a Developer who has been with a company working on the same application for a long time is a benefit because they get to know the application and business the longer they work there.  What is actually happening is they are remembering the application, not understanding the business.  They will remember the services they worked on but that does not mean they understand the business.  Plus, the longer a Developer is in the same place, they run the risk of having their skills become stale.  Technology is moving at such an increasing rate that a Developer that is not moving forward is really moving backwards.

So, if you have a new Developer that has just joined your team, get them pair-programming with an existing Developer, and get them into the code as quickly as possible.  They do not need days or weeks of training to get them understanding the business.  They already know code; don't get in their way.

4 comments:

  1. "Technology is moving at such an increasing rate that a Developer that is not moving forward is really moving backwards."

    Very good point, many companies today fail to keep pace in ensuring their software developers keep pace with current trends and technology. Bigger companies often cut training budgets and programs first in response to external or internal financial pressures to ensure the profit margin to the executives and shareholders stay strong.

    It is just now that companies are waking up to the fact that it is cheaper to train good people than it is to hire them. Most HR sites agree that to fill a position of a skilled professional the cost can be 1.5 to 2x the cost of the yearly salary. An investment of ten to twenty thousand dollars to train a good employee really makes more sense the cost of hiring and training an employee, especially at a more senior level.

    Cheers
    Harry,

    By the way that is why I am in Project Management and Change Management now, because my development skills started to lag behind the skills needed to do my job as a developer.

    ReplyDelete
  2. It goes even deeper than spending the money on training. A lot of companies have adopted a strategy of allowing their people to have 1 day either weekly or bi-weekly to pursue something that interests them (in the technology space). This could be spent investigating new technologies, approaches, methodologies, etc. that interests the person. Ultimately, this benefits the organization by allowing these new items to be reviewed to see they should be brought in. As well, this approach allows the employee to grow. It's another 'Win Win'.

    The same can be said about the technology in an organization: If it is not moving forward, it's moving backwards.

    ReplyDelete
    Replies
    1. In Daniel H. Pink's book "Drive" he talks quite a bit about that particular aspect of motivation. Post it notes were developed out of that type of organization that allowed employees to pursue projects they were interested in. Google uses the 80/20 rule for work, 80% of your time is spent on your own project, 20% on anything you want to pursue.

      It is unfortunate that most of the organizations I have worked for, allow little time for training, little time to pursue options outside there own area. The company I work allows 20 hours a year for mandatory education, and that has to done on my own time outside of work hours.

      Cheers
      Harry

      Delete
    2. I can see both sides; the Company's and the Developer's. From the Company's perspective, I can see wanting to get the most productivity out of Developers. That way, they can sell it, and pay to keep the lights on. For the Developer, they get to investigate and use the technologies they WANT to use.

      Ultimately, I think it has to be good for the Company as well; they get happy employees, and are able to investigate new and alternatives to current technologies.

      This approach fits well into companies who have a focus on technology rather than money. It is a 'company culture' thing. The question that companies need to ask themselves is 'Where does our focus lie?'

      Delete