DEV Community

Cover image for Software CSI, a job of the future

Software CSI, a job of the future

Damnjan Jovanovic on December 31, 2018

This must be job position of the future, maybe it won't be called CSI SE, but it will be described like in this post. Someone has to investigate al...
Collapse
 
david_j_eddy profile image
David J Eddy

Love this idea Damnjan! Where do I sign up? Maybe after this DevOps crazy settles down CSI SE can be the next big trend? If it bring quality and responsibility I am onboard!

Collapse
 
damnjan profile image
Damnjan Jovanovic

Hi David, thank you so much on such positive feedback :)
I planned already for some months to give a talk at a conference about CSI SE, as a serious proposition to management to think about forming such a position/role. I'll be so happy to hear more of your thoughts on this topic if you have some now, or you come with some idea later.

Cheers,

Collapse
 
wolfhoundjesse profile image
Jesse M. Holmes

Contact your local FBI office. Recruiting efforts at my college in the early 2000s included the tag line, "You'll get to track down predators while carrying a laptop on your back and a .45 on your hip." 🤣

Collapse
 
puritanic profile image
Darkø Tasevski

Enhance that
Enhance

Collapse
 
steelwolf180 profile image
Max Ong Zong Bao

I got a feeling that HR will be including this job title when they are hiring

Collapse
 
codemouse92 profile image
Jason C. McDonald

Ironically, when I do stuff like this, I also use CSI: Commenting Showing Intent. Once I've fully commented the code, which may take anywhere from minutes to days (depending on the size of the code base), I can better see what I'm doing.

Collapse
 
damnjan profile image
Damnjan Jovanovic

Hi Jason, thank you for your comment. I prefer self-explanatory code + unit tests as in-place documentation (explanation) of the code.
However, I read the idea behind CSI (Commenting Showing Intent) in the article you shared, and I can only say that it is not my style, which does not mean that it is not working for someone. For example my team-mate, who is sitting next to me, his role is to writing automated feature tests in PHP and he doing all the time "Commenting Showing Intent" style. That apparently works for him; I'll be glad to share this article with him :)

Collapse
 
bootcode profile image
Robin Palotai

Interesting idea - thankfully in CSI, it is not required for the detective to have prior murdering experience. It might be more accurate to call the software engineering counterpart Dexter SE :P

All of this happened, because some time ago, we had such a massive deficit of engineers, so everyone got employed, no matter what skills or formal/informal education they have. Good practice or patterns wasn’t enforced, because employees were scared that they would lose developers.

I would argue that hacky code happens even in the best teams. The main vector of hacks sneaking in are requirement modifications to an existing codebase. The process looks like:

(I just updated my handbook Programming Without Anxiety with a chapter on Bugs and Debugging)

  1. New system gets designed, interactions with neighboring systems mapped.

  2. New system gets implemented, hopefully tested, etc. After some unavoidable early bugs, it runs just fine in production.

  3. Small new feature request pops up. Think of it as the final straw. Even if small, it can turn the whole design upside down.

  4. Guess if the whole system will be redesigned for the new feature to nicely fit, or if it is hacked in at some semi-convenient place.

Collapse
 
exbe profile image
exbe

Isn't it a part of a role of principle engineers?

Collapse
 
damnjan profile image
Damnjan Jovanovic

I would say it should be the role of every engineer to know clean code standards, principles of object-oriented design, etc. It should be every dev person responsibility not to merge dead code, dirty hacks, etc.
But it's not... unfortunately.
And that's how this role is born because we can't count that engineers will stop creating more garbage and mess.

Collapse
 
exbe profile image
exbe • Edited

That's what I am saying - it us responsibility of a seasoned engineer with very good mature level to enforce best practices.

If we can't count on engineers to control software mess, that would require legislation and regulations on which your agency would run, otherwise software CSI role would be nothing, but a woodoo practice similar to dark agile scrum master.

Collapse
 
sandordargo profile image
Sandor Dargo

I don't watch TV nor series anymore, but I love the analogy!