суббота, 30 июня 2012 г.

U do not need scrum

Well, I tried scrum. Honestly. It's a pretty good development method and very effective. If everything goes right, it may rapidly increase yr and teammates development speed. Everyone knows his tasks and may predict time to complete them. If something changes, there will be time to easily change direction of development and fix everything up.
Unfortunately, scrum has its own boundary of applications. In imaginary ideal world, where everything is predicted and anything u want to do u do from first attempt it is an ideal solution. But we live in other reality where above mean sea level may be positive and negative values, where sin or cosine values can be any value and there's no prohibition of taking square roots from negative numbers. And there's no place for creativity.

So, it's just words. Why do u need scrum? U need scrum:

  • when u have detailed, self-explanatory concept document
  • when u know exactly yr tasks
  • when u can estimate yr tasks
  • when u have an image of app in yr head  and may guess how it would work
  • when u need to quickly get results
  • when u need to see changelog of the app
But u do not scrum:
  • if there's no agreement with teammates about design and functionality
  • if u can not estimate yr tasks, because it's a creativity process depending on inspiration
  • and u can make over one task again and again
  • if u need to create something new, conceptional
Now I have six tasks on my board and can estimate three of them. Others are connected with design and may be overdone many times. So, if u ask me when I'm gonna finish my work and release next version, I won't give u any estimates or predictions. Even if I do, that will be not truth.

воскресенье, 24 июня 2012 г.

U do something wrong, man!

Sometimes I'm writing code and my inner voice tells me: "Stop! U do something wrong, man!" There are some signs of writing "code smell" I wanted to share with u. Of course, they aren't true in last  instance, but they are reasons to stop coding and think a little about what u're doing.

So, u do something wrong, man:

  • if u don't recognize ur code after two days u wrote.
  • if u have more than three level deep class inheritance
  • if ur unit-tests change the state(db, ini, etc...)
  • if ur unit-tests runs hours
  • if u have such class names as "AnotherClass, SuperSingleton, ButtonX", or variables like "a, b, buy_1, buy_2"
  • if u have 4-5 connected to each other singletons.
  • if yr task takes 4-5 days to complete.
  • if u have MVVMC instead of MVC
  • if u agree with everything with designer, yr investor and has no idea to change it.
I'm sure, to be continued...


When programmer needs to be designer

In any type of work or hobby inevitably comes such a moment, when u don't like to do. For example, I don't like drawing. I don't know anything about beauty, proportions, I hated every single minute holding brush in my hand in school. I'm negligent about clothes I'm wearing, I really do not care about beauty, about interfaces. It simplifies life.
Unfortunately, it had bad consequences. In past days every program I had written I used just myself. Now I'm writing code for others. And I know they don't care about how program works inside, what design patterns are used, how genius it is and what it really can do. They use program and if it doesn't satisfy their requirements, they will delete it or even write in review something like: "You're such a bastard, return my time, money, ex-wife back!". Their requirements are various, starting with program functionality, ending with design. 

Stop! Here's a big mistake. Firstly design and then functionality, not vice virsa! Program may be super-functional, but the first thing user sees is design. 
Are u knight of brush or not, u need to know how to design good-looking, user-friendly interfaces.
As a example, let me show some screenshots: both of them are ugly. The difference of them is in second line: in first pic, not all text are visible, but in second it's small. What of them is better and what changes can be made to make this screen attractive?




воскресенье, 17 июня 2012 г.

Dropbox & deleted files

Today I suddenly realised that I permanently deleted my project folder, hoping that it had been saved in remote repository. But it hadn't. That was epic fail.

I found program that scans deleted and formatted volumes. No results. Despair, absolutely no ideas.  I have been working on that project 3 months and now all files are gone.

But fortunately I stored it on Dropbox. Dropbox saved me. You may not know about it, dropbox can restore deleted files. Thank you, dropbox!

Two important lessons I've learnt:

  1. do not forget to make backups.
  2. do not be too self-confident, it won't give good results.


Now I'm working on Lugat Sozluk - osman turkish dictionary. If everything goes ok, new version will be available on next week.

English please!

For about three months I wanted to start writing all my posts in english, but couldn't find courage to do it.
From this day on I will write posts in english.