Showing posts with label the fish. Show all posts
Showing posts with label the fish. Show all posts

Monday, 27 August 2012

Morning meeting - is it the evil?

Agile methodologies says that the team should have a regular daily meeting, where the team members can exchange information. The rules are very simple: everybody must talk, and have to touch tree topics - what did I accomplish yesterday, what is the plan for today, do I have any obstacle on my way.

We should have the morning meeting sharp 9:00 every morning. We involve remotely working colleagues as well. My boss used to initiate the call sharply and that was a sign to the local guys the meeting starts. As far as I see, he stopped this activity couple of days before, and now observing the team. Since he doesn't initiate the meeting, it never starts at 9:00. The developers are chatting, eating and around 9:02 they realize something is missing. They start to come together to the meeting place. Today that small conversation happened between a lead developer and the boss.

LD: Do we do the meeting today?
B: Why shouldn't we?
LD: I thought since you don't come we don't do it.
B: I think it is your business to have the meeting on time, since you are interested in information sharing.

I don't understand them. At 8:59 I'm prepared and excited to tell the team what's with me. I'm proud of my achievements form yesterday and dare commit on task to perform today. Furthermore I like to share my doubts and questions with the team.

The problem is twofold. People usually think that it is a reporting meeting - but it definitely shouldn't be. You don't report to a particular person - you talk to the team. Reporting meetings always have a negative feeling. The second problem is that we can't make visible progress on most of the items we develop due to the nature of the project - and hard to commit to things for the same reason. That's why the developers think the meeting is the evil.

I'd like to attend good stand-up meetings, what shall I do? How can I explain to them the how can we make it different? Don't know yet...

The Fish

Friday, 24 August 2012

Know the target environment of your application

As a software developer, I believe my job is not only to write source code. I like to know what is around my application, how it will be operated, etc.

There is a fragment of a discussion flew above the table today. Participants are a lead developer (LD), developers from another team (D), and the boss (B):

LD: Guys, on which version of JBoss do you run BlazeDS service?

D: On JBoss 4.2.3GA
...
B: Are you sure guys? I'm sure you don't use that version. Actually you run BlazeDS using the downloadable turnkey distribution, what is a Tomcat packed together with BlazeDS and samples...

D, LD: [fried fish]

D: uh, you are right...

Imagine a situation, that a scuba diver uses not suitable gas mixture for diving. The chance of injury or death is high in that case due to decompression sickness or oxygen toxicity. If you deploy your application to a non-suitable environment it will lead to its injury or death - and that happens, when the developers has no clue about the target environment.

The Fish

Wednesday, 15 August 2012

Generalization at all cost?

I'm participating in a long chat - yes that is usual to use chats to discuss long-long, sometimes useless things (let me rephrase: rarely useful things).

The topic is a new module - what requires advanced data storage approach due to amount of data to be stored. The head of operation decided to use a partitioned approach.

The developer in charge doesn't like this, since it makes his life difficult. They are using Liquibase - a database migration framework, and it doesn't support this on an elegant way. It uses an XML based DSL to describe database changes, and with this offers a database implementation independent solution. The second changeset the developers have to implement breaks this dream - because cannot be described with the DSL, and native SQL queries must be written. I understand that breaking a dream hurts - but that's life.

In my opinion, it is a fairy tale that a software can be database implementation independent. Well, if you use 3 tables, only for CRUD operations, it can be true - but seldom to have such database structure in enterprise environment. I've never seen it to happen - and I don't believe in it. I don't believe in Liquibase DSL approach too - it is a not necessary abstraction layer. I like Flyway. There is another fake promise from Liquibase what I don't like: you can do painless database downgrades. Flyway guys thinks differently - worth to read this. There is no free lunch.

The discussion in the chat is now like a flame war. The developer tries to get numbers from operation to proof their truth: the partitioned schema is performing better. That is not necessary - they took the responsibility to define the data storage method. That's it. The developer's task is to implement that.

Too much democracy hurts.




Use a tool or write some code

I was in the kitchen, preparing some coffee - fish needs it to swim...

Joined an ongoing discussion some performance related topic as a listener. The boss and two senior developers were talking.

DevA: We should examine what happens if we put a certain load to that component.

Boss: Great, can you separate it from the system, start it and feed it with certain amount of objects? How does it communicate with the rest of the system? I suppose via a JMS. So you can put objects into a queue with a certain frequency to simulate the load.

DevB: We have a demo component, what can be used as a feeder. And we should create a dummy implementation of a component to relay those objects.

Boss: Jmeter is the tool to accomplish those kind of tasks. It speaks JMS, and knows so many other things...

DevA, DevB: [fried fish]

DevA: I don't know Jmeter, it is not necessary, since we can write code ourselves...

DevB: I don't know Jmeter either...

Boss: You should check it. It has a comprehensive documentation. And it is open source, and easy to extend.

DevA: I don't know how can generate testdata with it. We can write own code...

Boss: To accomplish this testing you must use Jmeter, because it is not only feeds the app, but can monitor several things... And it is a tool specialized to performance testing. Please use it...

At this point, the senior developers stared the boss - they might think that: "This is an idiot, use an unknown tool, when we could write code?"

In my opinion, software development is not only coding - but using the tools and practices provided by others. The approach "I write everything from scratch" is out-of-fashion since 80's...



Monday, 13 August 2012

Do you like to read others code?

Two of my teammates are struggling to get a framework working.

I caught the following discussion in the air, we are all sitting in a big "island":

Developer: oooh, it was pain in the neck to find how to use this maven plugin, we had to look into the source(!) to see how it works

(their task is to research, they don't have strict deadline)

Boss: fortunately you're developers who understand Java source code

Lead: this sucks...

I would be happy in such a situation, it's amazing to explore something new.

In my opinion, it is a big personal success, when you understand others code, and the framework in use - even you don't have any documentation...


Friday, 10 August 2012

The mythical GC

Today my boss stood up, and asked everyone:

Boss: Guys, I have an issue - at one of our clients there is a problem with garbage collection. All experts are on holidays, who can help me?

Everyone looked to the boss - including me - but since I'm not experienced in that topic I just watched what happens. Nobody answered. My boss is not a developer - but he understands many things well at some degree.The Fish

Boss: Do you know  what is garbage collection, right? I know that it is a scheduled process, which runs periodically, and get rid of unused objects.

Dead silence in the room. The developers looked suspiciously to my boss. They might thought that this is an exam and they can fail...

Boss: I know that there are object generations. Hands up, who knows how many are...

He raised his hand. Everybody was looking at his monitors - someone told loudly: "three".

I hoped that there will be a small conversation, and I can learn something new about garbage collection. Unfortunately it didn't happened, since my boss gave up - because everybody was sitting like a fried fish - without any intent to participate in the discussion.

I don't know who screwed up - the boss or the team that the conversation has been ended before it could have been started...

Intro

Hi everyone,

I'm an IT professional, working for a software development company. I friend of mine invited to post on his blog - documenting my challenges facing day-to-day. 

Stay tuned, you'll understand my name soon.