“Kick the can down the road” driven development
Posted in :
This is something I felt we were doing sometimes in the agile software development. It goes like this, we analyze a problem, and we come up with some sort of solution / architecture / design. But during implementation we realized we missed something, especially on the consideration of things like performance. We know we cannot work on the stories forever, so what do we do? We create a new “performance” story and put it in the backlog, meanwhile pushing the existing story forward. This is okay for one time but not every time, in my opinion.
Also, recall a code section in which sometimes people tend to overlook.
Those are scenarios are different
if(condition 1) { // do something 1
if(condition 2) { // do something 2
}
}
vs
if(if(condition 1) {) { // do something 1
}
if(if(condition 2) {) { // do something 2
}
PS: came across this tweet – “coding is 95% copying and pasting”. I think the author may said it in a joking tone. For me seriously I am guilty of this quite a bit in my career. Once I cloned (copied) the javascript code (framework) for a tree structure, and later I started to regret it. One reason I copied was I didn’t know how to properly use an Object Oriented approach there. Also during re-rewrite projects (hope you don’t have to work on those), sometimes there are quite a bit copy/paste as well. I understand sometimes there are valid reasons, e..g., if we just do a “life and shift” without intension to change any business logic. In practice though, there are usually room for improvement during rewrite.
Also, once a business analyst shot me an email shortly after I asked doing a DB update for a month end job. And that person quickly realized the reason for that update and retracted the email or the question. It still shows the sign of a not well organized place though. Believe me that’s not the most disorganized place I worked so far 🙂