Consider This When Navigating a Software Project
Photo by Andrew Neel from Pexels: https://www.pexels.com/photo/assorted-map-pieces-2859169/

Consider This When Navigating a Software Project

Recently, we have talked about The Most Important Thing in Software Engineering and one common reason Why Many Software Projects Fail. In this article, I want to look at another common problem that you should avoid in IT projects.

Let's imagine you are on a hiking trip with a friend. You have a great time exploring nature and the beautiful landscape around you. However, the region is unfamiliar, and therefore you need to check that you are on the right track from time to time. Otherwise, it might get dark before you return from your adventure, and then it gets complicated to find the way back to your accommodation.

Let's assume you have no GPS signal, your smartphone got lost or the battery is empty. How would you navigate your way back? At least you have a map in your back that you picked up at a tourist shop. You unfold the map and identify your destination immediately. However, your destination is only one part of the equation. You also need to know where your current position is. How would you find out? These are some options:

  • Look around you to identify hints about your current position, maybe a street name, a monument or some other sight.
  • Ask a passenger walking by if he or she knows the region and your current location.
  • Look for a hiking map located at some intervals on the hiking trail where you can find a marker of your current position.

You might even need to walk further for a while until you come across one of these options to find out your current position. Now, how does that relate to software development and IT projects in general? The answer is simple: Whenever you want to reach a goal, you need to know your current position. When joining a software project, there is usually some existing software that needs to be extended or improved. Even when you are working on a greenfield project, there is typically some existing process or other software that needs to be integrated or otherwise accounted for. In other words, the existing IT landscape plus some established work processes are the starting point of your project.

Now, let's translate this concept to some specific actions that you can take to avoid running into this trap:

  • Find out how current processes work. Talk to business experts and people working on the daily business. Maybe someone can show you their daily work while you are watching and asking questions.
  • Examine existing software that shall be extended, improved, integrated or replaced. Yes, even when you replace something, you should look at existing solutions. Read important code sections and ask questions if associated developers are still accessible (often they are no longer available, though).
  • Check for available documentation about existing processes and software. Read it carefully and consider asking questions based on that. If documentation is missing or outdated, strongly consider updating it yourself when you gained some knowledge on the topic. This deepens your own understanding and makes it easier for future engineers.
  • Read test cases for existing software. Since documentation is often missing or outdated, tests can be a more reliable alternative that tells you about desired behavior.

Always know where you are coming from before you head off towards your goal. Otherwise, you will run into a direction that leads you nowhere (best case) or even does harm to the company that you work for (by wasting resources, creating more work etc.).

What has been your experience with finding out your starting point in a project? Let me know in the comments below.


I total agree here Bastian. Joining an existing project always comes with a great benefit. You have a fresh view on the status quo. In my experience it is the best moment to capture the status in diagrams and request feedback on it with your new colleagues. This gives you the chance to a) update documentation, b) together with colleagues challenge design decisions, c) understand the project and highlight its architecture. A fresh view always comes with benefits, it’s up to the existing team to value it. Worst case, you have an updated architecture image, best case you identify pitfalls together and incorporate it into the team work.

To view or add a comment, sign in

More articles by Bastian Isensee

  • Better Than Estimations

    Relying on estimations in software projects is dangerous. Unfortunately, many projects keep doing it and often fail as…

  • The Biggest Risk for Developers

    Working in IT is great. It stimulates your mind and creativity by solving problems.

  • Building a REST API in Golang

    REST APIs are one of the most common architecture patterns in today’s distributed software systems. Therefore, I want…

    5 Comments
  • Code Style Traps

    Readable code is often compared to well-written prose or poetry. Ideally, code should be a pleasure to read.

    1 Comment
  • Better Than Writing Code?

    Software developers love to write code. We enjoy talking about different programming language.

    2 Comments
  • The Problem With Agile

    In today’s world, everyone claims to be agile. Being agile is no longer just for tech and IT people.

    2 Comments
  • How to Avoid Shipwrecks in Software Development

    Building software can feel a bit like steering a ship through an endless ocean. We have to fight storms, waves, fog and…

  • Why Many Software Projects Fail

    In professional software development, there are many aspects to be aware of for achieving excellent results. Last time,…

  • The Most Important Thing in Software Engineering

    When reading and talking about software development, there is a lot of emphasis on code. It's all about writing fast…

    2 Comments
  • Database Usage in Golang Part 1: Basic Interaction

    In this tutorial we will learn the fundamentals of talking to SQL databases from Golang. We will connect to an SQLite…

Others also viewed

Explore content categories