Software developers like to write code. Well that makes sense but software development is the process of delivering working code to an environment where it provides value to a user. In my experience, a developer will generally spend their time doing the following tasks:

  • Requirements Gathering
  • Writing code
  • Manual testing
  • Releasing

This is what happens even though you have dedicated QA, operations and business analysts and with good reason. Testing, releasing and requirements gathering need the input of the people who write the code. There is no escape, it doesn’t matter whether you are writing your own app or working as part of a massive team, it’s a critical part of the process. What’s more is that in the most successful teams that I’ve worked in, coding took up less of my time than the other 3 tasks.

So embrace it. Test and release automation are complex and should be interesting for people who enjoy writing software. Requirements gathering? Well it is what you make of it I guess. It can be really rewarding to build good relationships with the stakeholders and to learn about the business in which you are working.

As an individual, if you do not embrace these tasks then you will forever be unhappy as you will be forced to do things that you don’t want to do. If as a team you do not embrace them then you will end up with bottlenecks at the boundaries between the tasks, you will not get software to production as quickly as you otherwise could, it will have more bugs and it will be less suited to what the user really needs.