What is it, exactly, that makes the companies feel weak in their knees when it comes to GPLv3? Every legal team in an incorporated has second thoughts while reviewing the adoption of a GPLv3 licensed software or the licensing of their own source code under GPLv3.
Continue reading “The GPLv3 Paranoia”
The “Manifesto for Agile Software Development” catalogs very practical suggestions on how to engineer a software in an effective way. These are like fundamental truths, and I believe these could be extended even beyond software engineering, so much that they could be called Management Principles for Effective Teamwork. In the title of the manifesto, “Agile” is an adjective. It wasn’t called “The Agile Manifesto” or “The Agile Methodologies” where “Agile” becomes a noun. When something becomes a noun, it becomes a commodity — something that could be bought and sold. Rather, it could have been aptly called “The Agility Manifesto” for a terse colloquial version.
“Agile is not what you do. Agility is how you do things.” — Dave Thomas
Continue reading “The “thing” called Agile”
If there is one idea in Computer Science and Software Engineering that underlies every other idea, then what is it? (It’s not Algorithms!)
“All problems in computer science can be solved by another level of indirection.” — David Wheeler
If indirection implies how a problem can be solved, then decomposition implies how a solution was reached. Problem Decomposition is about understanding the solution to a problem. It is the inverse of indirection.
Problem Decomposition is breaking a big, complex problem into smaller parts that could be solved relatively independently.
Continue reading “Problem Decomposition deserves more attention!”