Recent issue in Mockito for Python made me seriously think on how I release and add features.
The story started the day I decided to add feature called "spying on real objects" to Mockito. Ideas was good so I quickly implemented it. Then, strangely, I got this feeling like I'm doing something wrong. I started thinking that maybe I am missing something, maybe I don't have all use cases covered by unit tests and so on. It quickly disappeared together with a cup of coffee and a cigarette. I quickly made new release, added documentation and uploaded version to repository. Done.
After two weeks, when I finally got time to look at mockito, I found a bug report regarding that same feature. And it turned out a really big issue. Not even an issue! The whole design of feature was wrong. The report even made think if adding that feature was really a good idea. As people started misunderstanding it and it made tiny API of mockito heavier. Gosh!
Today, understanding a fact that time machine is not yet invented, with a coffee and cigarette on a balcony, I made myself a promise: "release as late as possible and resist adding new features as long as possible". Funny thing that I actually knew it from all that nifty books. Hopefully, learning this lesson on my own mistake will imprint it in my brain forever.
1 comments:
well, not really agree.
create two branches: stable and alpha. and play a lot with alpha before you merge into stable.
Post a Comment