[Our Mission] — The Duty of the Developer As A Professional #1

Abderrahim Benmakhlouf
3 min readOct 9, 2019

--

There are two different values of software : The Primary and Secondary Values.

The secondary Value is the Software behavior. It is linked to the Customer needs, in fact, if there is no bugs and no delay, the customer is satisfied, the secondary value stays High and so does the company’s Business Value.

That is why we Developers always think it is our Primary Mission to ensure this Secondary value and we persevere with it.

In fact, the real Primary mission is mainly to have our code designed and structured for the purpose of making it as easy to change as possible, which makes the Primary Value.

Example:

So, the project begins with a set of customer requirements where the management and the development team give more importance to the Secondary Value by fragilizing the software codebase (no refactoring, no tests, only production code).

At first, when the software is released, we meet the customer needs:

  • Secondary Value : High
  • Primary Value : Low

The customer needs can change very rapidly, so in order to enhance and stay up-to-date with this tendency (shorten delays, more features), we neglect more and more the Primary Value. The next releases could still satisfy the customer but here, the software is no longer able to stand any more changes.

  • Secondary Value : Lower and Lower…
  • Primary Value : Lower and Lower…

Like we can see, a bad codebase can lead to multiple consequences. (You can read our next article: [A- The Impact Of A Bad Codebase] — The Duty of the Developer As A Professional #2.)

If we had granted, from the beginning, a maximal importance for the Primary Value, we could have secured the Customer needs and the Business Value at the same time.

We can have two situations when we maximize the Primary Value :

1

  • Primary Value : High
  • Secondary Value : High

Which is perfect! everyone dream about that :)

2

  • Primary Value : High
  • Secondary Value : Low / Medium

Here at first, the Customer Needs are not met completely, due to the lack of time, ressources and management issues. The codebase is, however, well maintained, tested, structured and designed : The Primary Value is High.

On the next releases, we will see that the codebase is more and more robust and response to changes and Customer Needs. The Secondary Value will be boosted until it reaches a High level and so will the Business Value.

  • Primary Value : High
  • Secondary Value : High

Conclusion:

The Business Value and the Developer’s mission, at first, seem to be coupled with The Customer Needs (the Secondary Value), but in the end, we realize that they are coupled to the Primary Value.

--

--

Abderrahim Benmakhlouf
Abderrahim Benmakhlouf

Written by Abderrahim Benmakhlouf

 iOS Tech Lead Developer — Professional developer — Extreme programming (XP) Never ship shit