Software project time and effort estimation is difficult. One of the difficulties arise from writing low quality components. These components incur technical debt (or they might just be a mess), break the system at a later time when no one remembers their details, and require frequent revisits. Poor components are usually difficult to understand too. All this results in a lot of unbudgeted effort and delays. Even if you estimated the time for completing the messy version of the component, you would not be able to take into account the additional cost required to get to a clean/stable version.
The corollary is that you have to focus on quality before you spend any time on schedule estimation. To achieve acceptable quality, write unit tests, do code reviews (and at least rudimentary algorithm documentation) and use static analysis tools. Only after you have unit tests, documentation, code reviews and static analysis in place, you might try to guess when the project finishes.
Friday, August 31, 2018
Tuesday, August 28, 2018
Child education
Today we were talking with friends about our favourite topic, education of children. The gist of the conversation was that parents have limited control over their children and can "only" introduce them to different experiences. I criticized the use of the word "only" because a good introduction is not a trivial thing, it requires a lot of thought on the parent's part. The material has to match the child's ability to grasp and find it interesting enough to pursue it further on his/her own.
Examples:
Examples:
- Experience foreign languages via computer games, songs, movies and trips abroad.
- Musical instruments. I played the guitar and keyboard in my younger years and know that playing an instrument is not a matter of talent but a matter of persistent work, i.e. not suitable for most young kids. Talent comes into play when one strives to be a professional.
- Math, history, politics... All of these are extremely interesting but the wrong teacher can cause the child to be disgusted and block them out completely. I know people who refused math or history until they were 30 years old and found out that these were actually quite fun.
- Sports, dance and other physical activities: See The Inner Game of Tennis
Thursday, August 23, 2018
Self learning update for August 2018
Summer vacation is a good time for self learning. I reviewed the following:
Thursday, August 16, 2018
Tavsiye: Pınar Sütkrem
Birkaç hafta önce tanıştığım ve çok beğendiğim Pınar Sütkrem ürününü bal-kaymak kombinasyonunu seven herkese tavsiye ediyorum. Bir oturuşta yarısını bitiriyorum.
Friday, August 03, 2018
Writing source code comments
A conversation I had today with a junior engineer:
Me: This code is quite complex, why didn't you write explanatory comments?
He: Since it is very complex, writing comments was difficult.
Lesson learnt: Review code of juniors as often as possible, don't let them off the hook (!)
Me: This code is quite complex, why didn't you write explanatory comments?
He: Since it is very complex, writing comments was difficult.
Lesson learnt: Review code of juniors as often as possible, don't let them off the hook (!)
Thursday, August 02, 2018
Solve Netbeans src folder missing problem
Recently we updated from Netbeans 8.0.2 to 8.2. One of my colleagues could not see the src folder in Netbeans. What you need to do is to right click on project, open properties, go to Sources, under Source Package Folders, add the src and test folders there.
Important Netbeans folders on Windows:
Important Netbeans folders on Windows:
- user/AppData/Local/Netbeans/Cache: Sometimes Netbeans shows error icons on files event tough there is no error. Delete the cache folder.
- user/AppData/Roaming/Netbeans
Subscribe to:
Posts (Atom)