NYCPHP Meetup

NYPHP.org

[nycphp-talk] Injection Attack, any ideas?

Elliotte Harold elharo at metalab.unc.edu
Tue Nov 13 08:08:40 EST 2007


David Krings wrote:
> mikesz at qualityadvantages.com wrote:
>> too (security and quality never got any space on the project priority
>> list obviously).
> 
>  From my experience that is true for 90% of all software projects. Only 
> documentation ranks lower. 

In my experience, quality arises from good development practices like 
test-first programming, pair programming, proper object oriented design, 
  internalization of coding conventions, DRY, and a host of other small 
factors. It's not something you assign a time block to and put in later.

Programmers who write quality code do not write code slower than 
programmers who don't. If anything they produce more lines of code per 
day, and their code does more. Possibly, if you have an inexperienced 
team just coming up to speed with good development practices, then 
there's some training time to learn and internalize good coding 
practices. Nonetheless, even if you have to spend two thirds of your 
project schedule sharpening a dull ax, you will cut the tree down faster 
than if you just start hacking away.

The more complex a software project is, the more important quality 
becomes. It is a precondition for developing critical systems. You can 
no more leave it out than you would leave out the condition that the 
code compiles (or interprets, for PHP). You may not put it into the list 
of priorities, but if quality isn't there in sufficient quantity, the 
project will fail.

Quality is not something you can accept less of to complete a task 
faster. If you omit quality from your code, the project will take more 
time to complete.

Security is part of this. A team that knows and understands basic 
principles of security, like using prepared statements, will not take 
any longer to develop a system than one that doesn't. However if you 
first have a team that doesn't understand security build a system; then 
have a second team of security specialists fix all the mistakes the 
first team made, then yes; it will take you longer and you will need a 
place in your schedule to put in security.

The key is to make sure that your team has sufficient experience and 
knowledge of the relevant quality factors such as security that they 
don't make a lot of mistakes in the first place. Sometimes this just 
means hiring the right team. Sometimes it means hiring one good person 
and letting them instill those values in the rest of the team members. 
At worst, it means sending the team away for training and giving them 
time to read the relevant books. That you may have to schedule for. But 
it's still more efficient to sharpen your ax before you cut down the tree.

-- 
Elliotte Rusty Harold  elharo at metalab.unc.edu
Java I/O 2nd Edition Just Published!
http://www.cafeaulait.org/books/javaio2/
http://www.amazon.com/exec/obidos/ISBN=0596527500/ref=nosim/cafeaulaitA/



More information about the talk mailing list