I've Made Ten Thousand Fried Eggs and Didn't Know What I Was Doing Sunny-side-up eggs. I've made them probably ten thousand times. Crack, pan, heat, done. And then one day I realized I had no idea what was actually happening. I didn't know what temperature the whites set at versus the yolks. I didn't know why sometimes the edges lace up crispy and sometimes they don't. I'd never once thought about…
This is to inform the two and a half people reading this blog that I left my consulting career at ThoughtWorks for the Silicon Valley Internet startup scene, joining Scribd . ThoughtWorks is by far the best place to be a software consultant, and I still love these folks. But commuting across the continent sucks, especially when one has teenage kids. Scribd is a service that allows users to publish…
Many years ago, yours truly was remembered (fondly, I hope) by some people in Jakarta, Indonesia as "that Russian who never sleeps". This is how it happened. A company I worked for was a vendor of telecom billing and customer care solutions. At that point in time, we have just produced a brand new version of the product, and our gig in Indonesia was basically the first attempt to implement it in…
Some friends of mine are working in a small IT organization, trying to adopt agile principles and methods. Recently, I sort of sold them on the "make it work, then make it fast" principle. Next thing that happened: they wrote some code, put it into production, and it proved to be too slow. Apparently, significant rework is needed now. Here is what I probably should have told them about avoiding…
For the last few months, I've ben away from the Ruby land, doing first a Java and now a .NET project. I also had to write a few hundred lines of Python. Hold on with condolences - it wasn't a bad thing at all. I actually loved the opportunity to tinker with other mainstream platforms and see how things are there these days. Besides, JetBrains makes wonderful tools. Besides, next time someone tells…
Here is a scenario that seems to play out all too often. A young software development organization decides to address the lack of quality in software they produce by adding some testers. They hire a bunch of people (usually with little or no development skills) to do some variation of manual software testing. Before long, the testers realize that critical regression defects are a particularly…
In the previous post , I described a mismatch in the abstraction level between automated UI tests and business requirements that those tests purport to express. I also promised to tell something about how to deal with it. First, let me admit (with a due dose of regret) that I've no idea how to make the problem go away. Automation is expensive. Automation costs can easily be so big that manual…
Ask a Java developer in my neck of the woods to create a web application (of the usual "shovel some data from Oracle to HTML" variety) and s/he will probably come up with an instant architecture. Some sort of MVC => Spring => domain layer => Hibernate => database. Blueprint done, let's go write some code now. What can possibly be wrong with this? The Spring => domain layer => Hibernate part. There…
Over the years, I have seen many projects that tried to implement automated acceptance tests by driving application under test through a UI. Most of these efforts fail. Those that don't, are still very cumbersome and expensive to maintain. I'll leave the whole "why test automation tools industry looks like a massive fraud scheme" rant for a future post. Even good developers, not succumbing to the…