July 4, 2014

The Developer

What does the developer do?

The developer is the person who codes (builds) the software from the lowest level components. The term developer has been expanded to also mean tester and deployment manager as these skills often require coding expertise as well. For this discussion we will use the term developer to mean anyone who is involved in working with the raw building blocks in order to create the software.

The roles are typically:

  • A coder
  • A build manager
  • A tester

Each of these roles has a different path to employment. I will focus here on the coder role because more and more frequently the other two roles are being carried out by coders. That is not true in all cases and in larger teams these roles do
exist as separate roles. As the purpose of this website is to get you a highly paid job and the pure tester roles do not command the same remuneration as a coder role, we will focus on the coder in this page.

As such, the developer must understand the lowest level of building software: The code and third party libraries of pre-existing code. See the skills section under Code to see what languages are used today and how you can learn them to become a developer.

Artistry

A good developer is like an artist. Development of software is an art form. It takes a while to learn the frameworks, syntax and quirks of a programming language, but once you have mastered the basics, just like the artist who has mastered the different strokes of a paint brush, you can create amazing works of simplicity to do very complex things.

Art comes from a combination of knowing a language well and combining it with design patterns, your experience and some clever thinking. All these things can be learnt and mastered.

Therefore the developer must master the language syntax, principles of Object orientation, the SOLID principles and the core design patterns. See these skills in the skills section on how to learn these.

Place in the team

The developer is the heart of the software lifecycle. There are more developers on the team than any other role and as such the developer role is one of the highest paid and most sought after roles in the industry. If you are already a developer, you have the easiest journey on the road to an IT Finance job.

Coding

You have to learn how to code before you can be a developer. The good news is that coding and the frameworks for running code have been designed to be easy. Almost all languages use more or less the same syntax (C syntax). Design patterns and practices are the same regardless of the language used *.

*(There are different patterns for Object Orientated languages like java and C# than for functional programming languages like F#)

Expected income

The expected range of salary or daily rate for a developer programming Java or C# in the financial sector will range from £35k – £130k + bonus for a permanent PAYE job and £300 – £750 a day for a contract role.

The huge range is due to experience of coding and business knowledge. The top rates will be for people who have five years plus programming experience in the financial sector.

For a junior programmer on their first job with 6 months of home working experience (see getting experience under the preparation section), you could expect to earn around £35k a year to start. You can then use the experience gained here to quickly swap jobs after 6 months to one year and jump up to £40-50k and after three to four years you could be on a salary of £100k+.

A day in the life of a developer

A developer will start the day by taking a work item (story) from the sprint backlog. They will start work on this item by opening the application solution file and start coding a solution to the story based upon previous conversations they have had with the business and architect team.

If they have questions, they will ask the appropriate person, confer with fellow developers, or call a meeting with the right people to have a session in front of a whiteboard.

The solution that they are coding will take the form of writing some acceptance tests and / or unit tests that ensure the functionality does what is expected and the coding the functionality itself.

Once the work is complete, the developer will check in the code to the source code repository and mark the item as development complete in the project management tracking tool.

They will then pick up the next work item (story) and complete that.

At the end of each development iteration (sprint), the developer will participate in a retrospective to identify the good and bad things in the iteration and how they and the team can improve in the next cycle. The will then participate in a sprint planning session to plan the work items in the next sprint.

The developer may also be called in to fix errors or make changes to existing software, perhaps that has already been released. These fixes should take the same process as new work.

In practice, the developer’s day and the above process will be slightly different as every team and every workplace does it differently. Some work better than others. However, they should all follow roughly the above process. This is based on an Agile team.

How to become a developer

To become a developer you must know how to create the building blocks for a software solution.

The developer must be able to:

  • Master the art of coding – see Clean Code by Robert C. Martin
  • Understand how to code well by using design patterns – see design patterns page.
  • Know the different frameworks and server technologies
  • Know the different application types e.g. desktop, services, web services etc.
  • Understand how to employ best practices – see best practices.
  • Understand how projects are run and how to work in an Agile environment see Agile page.

The first step is to choose a language. I recommend you choose C# or Java as these are the most prevalent and highest paid languages in use today. You should then download the appropriate development environment for your language of choice.

Download or buy the recommended resources on the appropriate language page and start to code your own projects.

Once you have some experience and coding skills and have reviewed and understand the design patterns, you should continue to the preparation section to prepare for both the recruitment agent filtering,
the interview and making sure you know what to do on day one.

Simon Powers
Simon Powers is an Agile Coach specialising in large scale transformations and agile adoption. He has a background in very large enterprise architecture which has led on to organisational design and agile process refinement. Simon is the founder of Adventures with Agile.
Tags: ,