I'm working on a large project. And I had to do large amount of overtime on it. The deal was that the majority was applied voluntary during the time the majority of the team (around eight people) were working normal hours. And I felt really great about that. I had time to refactor several times the code a wrote (I was working on the core of the middle tier system so my refactoring paid several time since we had afterwards a really small amout of defects on the core of the system) , I created Architectural Notes for system features I wouldn't have the time to do during my regular hours, I wrote unit tests and developed system features which were badly needed on the project and I grew and improved my self, the project grow and my company grew and it was all voluntary on my own time and my own schedule. I had time for my regular job, my family and my voluntary overtime.
22 October 2011
Overtime, dear overtime
Everybody knows that gut wrenching feeling a person feels when he or she is told to work some overtime, expeciality if its for an undefined period of time. You, me , everyone had that feeling at some point or other. Overtime is often, and justly, negatively perceived in our industry. Yeah, you ship the product on time the client is happy, the management is happy, all those nifty forms and grids are visible and working (sort of) and the load of defects and technical debts lurking underneath are just ready to pup some one sits the next day on the product to test it.
Oznake:
Overtime
19 October 2011
Chicken and Pigs, a chicken perspective
I was reading the Scrum guide earlier today and I've read the "Chicken and pig" story. I wasn't a new story for me since I've read it a few years earlier when I first encountered Scrum (I'm just refreshing my memory). For a long time since that first reading I tought and talked about as envisioning my self in the role of the Pig, as someone who is commented to the project and how I should not allow chickens to dictate the way the project is developed (to some degree, even chickens have their powers to make things happen). But what if I'm the chicken on some project? How should I behave?
I think respect is the most important thing. When I'm a chicken I should respect the Pigs work and try to help them in the way they will let me without causing problems for them now or down the road. It is easy for chickens to say things, but is hard pigs to live with them.
I think respect is the most important thing. When I'm a chicken I should respect the Pigs work and try to help them in the way they will let me without causing problems for them now or down the road. It is easy for chickens to say things, but is hard pigs to live with them.
Oznake:
Scrum
29 September 2011
How to change SVN password in Zend Studio or Eclipse
The intertnet is full of blog posts how to change the SVN password in Eclipse or Zend Studio. Unfortunatelly nothing I found on the interet worked. I've deleted the eclipse .keyring file and deleted the svn.auth folder.
Suprisingly the solution is really simple:
1. Change the perspective to "SVN Repository Explorer".
2. On the repository list right-click on the repository and then click on "Location properties..."
Thats it!
A dialog will popup, and right on the first popup you can change your SVN username/password combo.
Suprisingly the solution is really simple:
1. Change the perspective to "SVN Repository Explorer".
2. On the repository list right-click on the repository and then click on "Location properties..."
Thats it!
A dialog will popup, and right on the first popup you can change your SVN username/password combo.
16 July 2011
Working with a distributed team
I'm currently working as a technical lead on project with a distributed team. It is not the first time I'm working with a distributed team, but it is a the first time the team is so big. We currently have people working in five cities across three countries :
- Labin, Croatia
- Pula, Croatia
- Slavonski brod, Croatia
- Beograd, Serbia
- Skoplje, Macedonia
You'd think it would be hard to work with such a distributed team, which totals up to ten involved people but it is not.
I really takes a lot of communication, some organization and proper tools. The two basic tools are :
- Skype
- Teamveiwer
There are two types of skype communication : written and verbal. The written communication is for large meetings and team notices. We have created a team chat where all team members can share information and where all the big meetings occur.
The most important meeting is the daily standup which is done exclusively in written form and can be done in under ten minutes. The trick is for each participant to write her daily report five minutes before the meeting (which is at 9.00 o'clock each day). The report is written using this format:
YESTERDAY:
- #1 thing done yesterday
- #2 thing done yesterday
- #3 thing done yesterday
etc.
TODAY:
- #1 thing will do today
- #2 thing will do today
- #3 thing will do today
ISSUES:
- issue #1
- issue #2
This enables us to track the project progress, to catch early important issues and problems. The team stand-up is usually followed by an hour and a half of one on one vocal meetings where those daily issues are addressed and solved or kicked up the ladder.
Team viewer is another great tool, it works both on windows and linux (which is great since we have both in our team) and enables one or more people to virtually sit at the same machine and work which is great for doing problem solving, peer reviews and distributed pair programming.
One great tool I discovered is the Architectual memo or note, which is a sketch with UML diagrams and some text describing a architectural solution of a part of the application (Grid system, Form system, auto-complete system etc). It takes me about and hour or two to write once I get the idea right and then I can send it to a team mate discuss it with her and then watch it being built.
03 March 2011
Night time shadows on open sand
I feel as in a sex fevered pipe dream of polarized dragons chasing mind shadows across a digital horizont of conflicting diagrams and clashing systems.
My mind is playing depth perception dreams on me. Hand quivering, extended forwards, I cannot grasp what is in from of me. It is as if its beyond and the across my terrestrial self at the same time, as if it started leaving in an non-euclidean space time continuum, where regular rules of out earthly domain do not matter as innocence proves nothing in a gaming future of constant, hateful warfare.
It is the day of surprises and ending and endless driving across the bare Istrian wasteland of rolling hills and idyllic, void filled, villages and townships.
After two hundred and some kilometers I can proudly and tiredly say that I had three presentations today in two different counties in two different regions and two different towns.
The first two were an introduction in Functional testing of web applications with Selenium 1.0 and a sneak peak of the web driver run Selenium 2.0 (which I wrote in Java on Ubuntu). The second was a more advanced presentation of the same topic where I've generated .NET unit test form Selenium IDE and then executed them inside MonoDevelop again on Ubuntu with NUnit and the test worked. Yey me.
The third presentation was the most taxing of all. In Rijeka for the monthly SQL/Dev user group meeting at the Maritime University of Rijeka I've held an introductory session about WCF RIA Services. In all I think the sessions went well. I've made some mistakes with my slides which I will correct for next time and the low point was my virtual machine which literally broke and wouldn't function right so my code example didn't really show in good light.
There was around twenty people in the room and I had a really good time. I've held a mixed presentation where I talked from slide and draw ad hoc UML diagrams on a chalkboard with sliding panels. I've talked with the audience and there was really a lot of questions which I really liked.
Latter we went to an old fashioned, communist style, drinking place where we had a blast talking with each other.
So long my dear fellows, sleep awaits my tired, tired mind.
My mind is playing depth perception dreams on me. Hand quivering, extended forwards, I cannot grasp what is in from of me. It is as if its beyond and the across my terrestrial self at the same time, as if it started leaving in an non-euclidean space time continuum, where regular rules of out earthly domain do not matter as innocence proves nothing in a gaming future of constant, hateful warfare.
It is the day of surprises and ending and endless driving across the bare Istrian wasteland of rolling hills and idyllic, void filled, villages and townships.
After two hundred and some kilometers I can proudly and tiredly say that I had three presentations today in two different counties in two different regions and two different towns.
The first two were an introduction in Functional testing of web applications with Selenium 1.0 and a sneak peak of the web driver run Selenium 2.0 (which I wrote in Java on Ubuntu). The second was a more advanced presentation of the same topic where I've generated .NET unit test form Selenium IDE and then executed them inside MonoDevelop again on Ubuntu with NUnit and the test worked. Yey me.
The third presentation was the most taxing of all. In Rijeka for the monthly SQL/Dev user group meeting at the Maritime University of Rijeka I've held an introductory session about WCF RIA Services. In all I think the sessions went well. I've made some mistakes with my slides which I will correct for next time and the low point was my virtual machine which literally broke and wouldn't function right so my code example didn't really show in good light.
There was around twenty people in the room and I had a really good time. I've held a mixed presentation where I talked from slide and draw ad hoc UML diagrams on a chalkboard with sliding panels. I've talked with the audience and there was really a lot of questions which I really liked.
Latter we went to an old fashioned, communist style, drinking place where we had a blast talking with each other.
So long my dear fellows, sleep awaits my tired, tired mind.
Oznake:
Java,
Presentation,
Selenium
20 February 2011
So long .NET
Its been a long time since I've written something here. A lot has changed since my last post. It was generally personal stuff that occupied my mind during that time. Business wise nothing new on the horizon.
I've started learning Java again. It is a long time dream of mine to be a Java developer and since I'm about making significant changes in my life I decided to follow my dream.
.NET is a great and cool platform. The IDE is fantastic and the speed the framework is progressing is astounding with the barrage of cool stuff is overwhelming. Recently I've learned WPF, Silverlight, RIA Services and Entity Framework. All cool stuff. But what always bugged my Mikes software it is that you need a whole lot of cash to develop and deploy your solution.
I've always been an open source enthusiast. The ability to develop software with free tools always sided good with my 'have not' upbringing.
So I started relearning Java. And its is progressing really smooth for now since the syntax is so similar to .NET.
On the other note I will conduct a RIA Services for begginers presentation in Rijeka (Pomorski fakultet) on the March 3rd at 17.45.
I've started learning Java again. It is a long time dream of mine to be a Java developer and since I'm about making significant changes in my life I decided to follow my dream.
.NET is a great and cool platform. The IDE is fantastic and the speed the framework is progressing is astounding with the barrage of cool stuff is overwhelming. Recently I've learned WPF, Silverlight, RIA Services and Entity Framework. All cool stuff. But what always bugged my Mikes software it is that you need a whole lot of cash to develop and deploy your solution.
I've always been an open source enthusiast. The ability to develop software with free tools always sided good with my 'have not' upbringing.
So I started relearning Java. And its is progressing really smooth for now since the syntax is so similar to .NET.
On the other note I will conduct a RIA Services for begginers presentation in Rijeka (Pomorski fakultet) on the March 3rd at 17.45.
02 November 2010
Project learning and Book learning smackdown.
During my carreer as a developer I came to realize the learning benefits one gets from doing projects, e.g. solving real life project and the benefits one gets from applying structured learning practices when learning a topic.
Let me explain how I learn first.
Generally once or twice a year I make a sorted list of technologies or topics I'm interested in learning. The topics are sorted by priority and how hard are they to learn. And then I start learning those technologies by moving from he the first item on the list to the last.
When I've picked up a technology to learn I usually by a book or two about it and then I start reading the book while sitting on my computer and working all code examples. This takes a lot of time since I work full time and also have a family but it gives me hand on experience with all aspects of a technology. Unfortunatelly this only gives me some experience, not true proficiency. True proficiency comes form working six months or more in a technology solving real life problems and learning how the technology works in the field, what are its problems and what are the best patters for its utilization.
Projects are really good at being proficient with common tasks in a technology, but do not delve deep in all use cases and technological aspectes of a specific software solution being applied. In some cases I relied only on my project learning to get a grasp on a technology and came completely stack when faced with something new and different for which I didn't have the necessary theoretical background which I would had if I took the time to learn the technology properly.
With book learning I get a real good foundation in a technology but lots of it I don't get to use during the technology life time, so the learning effort is kinda wasted since I don't get to use directly that knowledge practically. On the other side the wide knowledge base usually gets me pretty fast out of tight spots others find impossible to surpass.
In my opinion in order to be a good sofware developer one must do both types of learning :
Let me explain how I learn first.
Generally once or twice a year I make a sorted list of technologies or topics I'm interested in learning. The topics are sorted by priority and how hard are they to learn. And then I start learning those technologies by moving from he the first item on the list to the last.
When I've picked up a technology to learn I usually by a book or two about it and then I start reading the book while sitting on my computer and working all code examples. This takes a lot of time since I work full time and also have a family but it gives me hand on experience with all aspects of a technology. Unfortunatelly this only gives me some experience, not true proficiency. True proficiency comes form working six months or more in a technology solving real life problems and learning how the technology works in the field, what are its problems and what are the best patters for its utilization.
Projects are really good at being proficient with common tasks in a technology, but do not delve deep in all use cases and technological aspectes of a specific software solution being applied. In some cases I relied only on my project learning to get a grasp on a technology and came completely stack when faced with something new and different for which I didn't have the necessary theoretical background which I would had if I took the time to learn the technology properly.
With book learning I get a real good foundation in a technology but lots of it I don't get to use during the technology life time, so the learning effort is kinda wasted since I don't get to use directly that knowledge practically. On the other side the wide knowledge base usually gets me pretty fast out of tight spots others find impossible to surpass.
In my opinion in order to be a good sofware developer one must do both types of learning :
- Project learning , learning a technology by doing a project in it.
- Book learning, learning a technology by following a structured learning mechanism such as a book or reference manual.
Oznake:
education
Subscribe to:
Posts (Atom)