In Search of Organic Software An Article by Pirijan Ketheswaran pketh.org Two different kinds of farms can grow vegetables. One is a factory farm built for scale, and the other takes the time to grow more expensive but healthier plants without pesticides. Will everyone appreciate the difference? Of course not, but the latter plants are labelled ‘organic’ to give us the information and the choice, so that those of us who do care can make better decisions. So maybe we should have ‘organic’ software as well, made by companies that: Are not funded in such a way where the primary obligation of the company is to 🎡 chase funding rounds or get acquired (so bootstrapping, crowdfunding, grants, and angel investment are okay) Have a clear pricing page Disclose their sources of funding and sources of revenue softwarebusinessfarming
How I Build An Article by Pirijan Ketheswaran pketh.org In 2014, I wrote about my belief that design and engineering are best when tightly woven together. That’s truer now than ever. If I’m feeling confident, I’ll jump right into my text editor…From here, more functionality is added and the code is tweaked until the feature looks and feels right to me. Whether it’s something simple like this, or prototyping a new interaction like multi-connect, there’s no substitute for designing with real code. In rare cases when I have ideas or plans that I’m less confident about, it’s time to break out the paper, pens, and markers, Because the Kinopio interface elements and aesthetic are full-grown, I almost never use traditional design software anymore. makinginteractioninterfaces
Why Software is Slow and Shitty An Article by Pirijan Ketheswaran pketh.org Roman empire militaryBuilding is never a straight lineConversations, not commandments Planning doesn't make for better software softwareperformance
The heart of systems engineering While the client has some knowledge of his symptoms, he may not understand the real causes of them, and it is foolish to try to cure the symptoms only. Thus while the systems engineers must listen to the client, they should also try to extract from the client a deeper understanding of the phenomena. Therefore, part of the job of a systems engineer is to define, in a deeper sense, what the problem is and to pass from the symptoms to the causes. Just as there is no definite system within which the solution is to be found, and the boundaries of the problem are elastic and tend to expand with each round of solution, so too there is often no final solution, yet each cycle of input and solution is worth the effort. A solution which does not prepare for the next round with some increased insight is hardly a solution at all. I suppose the heart of systems engineering is the acceptance that there is neither a definite fixed problem nor a final solution, rather evolution is the natural state of affairs. This is, of course, not what you learn in school, where you are given definite problems which have definite solutions. Richard Hamming, The Art of Doing Science and Engineering: Learning to Learn What the problem isComplete and consistent requirements