Following agile software development guidelines:
Continuous feedback and interaction between developer and client (frequent milestones).
Adaptation of the specifications during development phase.
Simplicity to cut down development time and ease debugging and code maintenance.
Unit and functional tests that both strengthen and document the project, using TDD (Test-Driven-Development) whenever possible.
Thanks to free software and its wide community is possible to develop high-quality applications on time. Thus, with whole conviction and personal coherence, any software I develop is offered as free software to the client.
To avoid distribution issues, I will use (unless otherwise needed) the X11 license, a permissive MIT license, permissive and without copyleft restrictions. Therefore, the client benefits from the four basic software freedom, since you can:
Use the software when, where and for any purpose.
Study how it’s done and be able to adapt it to your own needs (that means that the source code is provided).
Redistribute it internally.
Redistribute it to the public with or without changes, asking for it the amount you want.
This way the client keeps control over the applications or systems he/she already paid.