Skip to main content

Big companies, Software Engineer and Partnerships

Some weeks ago I talked with a friend that used to work in a big company. He told me two interesting stories.

Story 1: You are working for a client on a project for 1-2 years. Things are going very good, you’re company decide that they will allocate another person in the team. The new developer will be a junior and he will take your place on the project. Because they allocated a new person in the team, you will be allocated only 2.5 days per week on the project. The rest of the time you will work on another project. They ask you to join the scrum every day and pretend that you are working all the week on the original project. The new member of the team will cover you. The client knows that the team is now n + 1 (the new member). So you begin to join the scrum every day and pretend that you are working…
First problem is sincerity. Going in a scrum meeting and pretend that you are working on the project on a specific day, but in reality you are working on another project is wrong. From the relationship perceptive you are destroying the trust that you have with the client. Yes, you think that he don’t knows, but in time he will observe that something is not okay.
Don’t forget that at the end of the phone another person like you exists. When you are pretending that you are working on the project – you are lying him.  
A software engineer should never accept a request like this from the company because a thing like this affects him professionally. You cannot name yourself a professional when you are doing things like this. The company cannot force you to lie.
If you need to work for one or two days one another project you should tell the client that you will not be available on that days. But, in this situations your company will request you to not tell them the true.
The best thing that you can do in this situations is to tell them that you don’t want to work anymore on that project. You cannot accept this “business” model.

Story 2: Your company has a very good partnership with another big company. Your partner comes and ask you to investigate and search a solution for their problem. After 2 days of investigation, your boss is coming to you and say that the both solutions are good, but you should hack the “investigation” in such a way that the second solution to be selected. This should happen because the team that has knowledge on the given technologies doesn’t have any project on the queue. You know that the first solution is better, so what should you do?...
This is a very common situation and I heard people saying that this is the way how businesses are made. Maybe this is true, but when you propose and push a solution that is not valid for the client you will suffer a lot – and you deserve to suffer.
When you will be ready with version 1.0 or in the moment when you will add some new features you will realize that is impossible to accomplish and the costs are very high.
In this situation, the guilty is divided between your company and you. First of all they push a wrong solution and now they will need to pay in one way or another. If the project was a fixed price project then they have big problems. Otherwise, there are chances that the client will pay without knowing the true, but in the end the partnership between them will suffer.
The software engineer that pushes the wrong solution usually is the one that will need to solve the new problems and it will not be easy for him. From the beginning he is making a big mistake, listening the management “recommendation”. The best thing that can be done in this moment is to talk with the client and explain the mistake – the current solution is not the best one and they should use another solution.

Comments

Popular posts from this blog

Why Database Modernization Matters for AI

  When companies transition to the cloud, they typically begin with applications and virtual machines, which is often the easier part of the process. The actual complexity arises later when databases are moved. To save time and effort, cloud adoption is more of a cloud migration in an IaaS manner, fulfilling current, but not future needs. Even organisations that are already in the cloud find that their databases, although “migrated,” are not genuinely modernised. This disparity becomes particularly evident when they begin to explore AI technologies. Understanding Modernisation Beyond Migration Database modernisation is distinct from merely relocating an outdated database to Azure. It's about making your data layer ready for future needs, like automation, real-time analytics, and AI capabilities. AI needs high throughput, which can be achieved using native DB cloud capabilities. When your database runs in a traditional setup (even hosted in the cloud), in that case, you will enc...

Cloud Myths: Migrating to the cloud is quick and easy (Pill 2 of 5 / Cloud Pills)

The idea that migration to the cloud is simple, straightforward and rapid is a wrong assumption. It’s a common misconception of business stakeholders that generates delays, budget overruns and technical dept. A migration requires laborious planning, technical expertise and a rigorous process.  Migrations, especially cloud migrations, are not one-size-fits-all journeys. One of the most critical steps is under evaluation, under budget and under consideration. The evaluation phase, where existing infrastructure, applications, database, network and the end-to-end estate are evaluated and mapped to a cloud strategy, is crucial to ensure the success of cloud migration. Additional factors such as security, compliance, and system dependencies increase the complexity of cloud migration.  A misconception regarding lift-and-shits is that they are fast and cheap. Moving applications to the cloud without changes does not provide the capability to optimise costs and performance, leading to ...

Cloud Myths: Cloud is Cheaper (Pill 1 of 5 / Cloud Pills)

Cloud Myths: Cloud is Cheaper (Pill 1 of 5 / Cloud Pills) The idea that moving to the cloud reduces the costs is a common misconception. The cloud infrastructure provides flexibility, scalability, and better CAPEX, but it does not guarantee lower costs without proper optimisation and management of the cloud services and infrastructure. Idle and unused resources, overprovisioning, oversize databases, and unnecessary data transfer can increase running costs. The regional pricing mode, multi-cloud complexity, and cost variety add extra complexity to the cost function. Cloud adoption without a cost governance strategy can result in unexpected expenses. Improper usage, combined with a pay-as-you-go model, can result in a nightmare for business stakeholders who cannot track and manage the monthly costs. Cloud-native services such as AI services, managed databases, and analytics platforms are powerful, provide out-of-the-shelve capabilities, and increase business agility and innovation. H...