Home basics computer Computers fundamentals Programming python technology Foundations of Agile Python Development
Sunday, 11 March 2018
Foundations of Agile Python Development
If you’re embarking on a Python development project, then you should buy this book—there’s nothing quite like it. I know this because I was looking for it last year, and I couldn’t find it. This book introduces the tools you’ll need to get started on agile projects in Python, and unlike any other book out there, it shows you how to tie them all together.
Sure, there are many good books on agile development. A lot of them cover the development processes in great detail, and this is a good thing. Agile development is very much about human interactions and the environment surrounding software development, but there is a whole ecology of tooling to make everything work at a practical level.
Agile development eschews extensive up-front specification, and it anticipates that the product will constantly change, but it puts in place rigorous checks to compensate for anticipated change. Testing is an integral part of agile development from the very start, and it is pursued with ferocious rigor. You need software tools to facilitate testing.
Agile projects have very short release cycles, and this has implications for tooling, too. There’s no way to have two-week release cycles if it takes you days to integrate changes, days to perform QA, and days to package and deploy the software. This means that agile development puts a high value on build and release automation.
While agile development techniques can be applied to any project, both testing tools and build automation tend to be very language specific. These tools do exist in Python. They’re widely available, and by and large they’re free, too, but the documentation tends to be . . .um . . . spotty. And while there may be documentation on the individual tools, the documentation telling you how to tie these tools together is usually sparse to nonexistent. This book provides that missing documentation.