Don’t be a developer who only knows how to write code

Bruna Pereira
Feb 13, 2020 · 4 min read

When I talk to friends and family about my job, it’s always hard to concisely explain what I do. I usually explain what it’s like to develop a web/mobile application, giving them a brief overview. The truth is that, after quite a few years working as a software developer, the easiest part of my job is writing code. Maybe that’s why, when explaining my job to a lay person, code is the part I address.

After learning about so many different programming paradigms, languages, and frameworks, my brain has become used to learning new technologies, and it’s become an easy task. Besides learning about technology, there are two other areas I consider essential for a software developer to familiarize themselves with in order to be successful in their work, and they are:

Business

source: https://metrostateipd.org/current-programs/leadership-management/business-analysis/

Generally, the the process that precedes software development is accomplished by a Product Manager or business Analyst. It is in this stage that we define priorities, delivery rate, and discuss how to make some of the application’s functionalities possible. Developers, here are a few ways you can contribute to this stage:

  1. Assisting in the analysis
    If there is someone responsible for this task, that doesn’t mean that you shouldn’t be aware of and contribute to it.
    One of the most beneficial aspects of agile is the consequent organization of small teams, where everyone can have an end-to-end context of what’s happening. The contributions of people who will develop are very rich, and can use this dynamic on a daily basis to elaborate upon functionalities, get to know edge cases, and even help prioritize.
  2. Learn the deadlines and priorities
    We don’t always have a single deadline for each functionality, so it’s super important to at least know what the priorities are in order to keep the stakeholders, internal clients, or people interested in the progress of the project informed.
    Beyond demonstrating that you’re interested in knowing what’s being developed, it is very helpful to everyone when they can count on more than one person to give these answers.
    After all, I find it very frustrating when I’m waiting for a functionality, and when I ask someone from the responsible team how it’s going, they respond with “I don’t know the deadlines but look for the PM, they can tell you”.
  3. Understand the needs of the end user
    The role of the PM is also to bring the team the vision of the end user’s needs, but sometimes this gets lost in translation. Whether it be at some refinement moment that someone wasn’t present at or because someone really forgot a particular level of detail.
    What’s important is that this is a recurring theme before starting to develop a functionality. Do your best to make a habit of bringing attention to the end user’s needs before starting to discuss how to develop the solution.
    I have seen various people from the business areas present a solution, only for it to come undone when the need it meets is questioned from a technical perspective. This results in a more efficient way of solving a problem in a way it wasn’t thought of before.

Processes

source: https://www.paolodellaguzzo.com/blog/2017/08/04/metodologie-agili-lean-migliorare-azienda/

It’s not enough that you know what the ceremonies of scrum are. You should understand the flow of end-to-end development processes, from the point that an idea is conceived in someone’s head to the point that it is in production. Challenge the status quo and advocate for improvements in the processes of software delivery.

The book Lean Software Development. An agile Toolkit describes the 7 principles of lean software development, and it’s an excellent foundation to understand and improve the agile development processes of your team.

Some ways to get more involved in these processes are:

  1. Help enable ceremonies (daily, retro, showcase)
    If this task is done by just one person on the team, help them and also create this habit throughout the team, so that it’s not just you but all members of the team that do it.
  2. Meet the board
    Learn about the functionalities that are prioritized and also how they were distributed. I often hear people justify the delayed development of a task by pointing to its size. Developers are the only people who can foresee a scenario like this, so be the person who examines upcoming tasks and promotes discussion when it appears that there is a better way to distribute the tasks or describe functionalities.
    Know what’s in development at the moment; know the bottlenecks; help to finalize more tasks, because finishing tasks is both more difficult and important than starting them.
  3. Understand the metrics
    If your team estimates tasks, it’s important to understand the history of these estimates; this way, you’ll be more consistent in your future estimates. If your team doesn’t estimate tasks and uses other types of metrics to predict delivery, it’s essential that developers know how they’re measured and what the latest results have been, as well as the desired result. This way, it’s easier for people to improve, because they know when they should feel a sense of urgency.

Conclusion

Interested in working with us? We’re always looking for people passionate about technology to join our crew! You can check out our openings here.

Creditas Tech

Our technologies, innovations, digital product management…

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store