grails (11) vaadin (11) meteor (6) java (4) elasticsearch (3) apple (2) centos (1) cloudbees (1) google analytics (1) gradle (1) heroku (1) javafx (1) javascript (1) jdbc (1) jug (1) logback (1) logging (1) mac os (1) management (1) mongodb (1) mongolab (1) mysql (1) twitter (1) ubuntu (1)

Sunday, June 12, 2011

Feedback on the university graduates

First of all, this is not criticism of university or students! This is meant as a feedback one might benefit from. 

Why do I want to give a feedback on university graduates?
Well, I am working in quite big company (Tieto) and a lot of students (mainly from VSB Ostrava) want to work there. I am responsible for hiring Java developers for our unit. I have done more than 100 interviews. It took me more than one year of interviewing. I am trying to find out what applicants know and if they are capable to join our teams. I have gather a feedback on what are the applicants weakest areas. 
Team work 
    1. They don't know how to...
      1. work in a team (because they don't have the experience).  
      2. share the source code.
      3. properly plan / divide work tasks.
Project set-up (from technical point of view)
    1. They don't... 
      1. know how to set-up project in IDE using Maven. 
      2. know about code quality and code checkers. 
      3. understand to the importance of javadoc. 
      4. know what is the continuous integration. 
      5. understand to usage of automatic testing (JUnit + Mocking) 
Modelling and Software engineering
    1. They don't... 
      1. know why it is important to draw class diagrams. 
      2. know how to make class diagrams from requirements. 
      3. know how to implement the class diagram! 
      4. have any experience with usage of the design patterns, so they don't see the difference between using and not using the design patterns.
English skills
    1. Most of the graduates are saying "English on the school is very poor and it gave me nothing". 
Here is my message to the students who want to be code developers. 
  • Your teachers in the school can show you the way and explain the basics. The rest is up to you! Don't relay only on what the school teaches - be active and take the responsibility for career life.
  • You must get the experience. There are many ways how to get it. For example: join open source projects, create your own project, work in a company or work on a project with other students. 

Saturday, June 11, 2011

Resource & Material vs Agile approach

What is wrong with Resource & Material approach?
Resource & Material approach is when customer pays for the resources working on the project and the invoices for travelling and similar stuff. 
Imagine you are the customer. Why you should accept paying your supplier for the people working on the project? I think you want to pay for the implemented features not for the people working on the project. It means you want to have it done so it can help you to solve your problems. 
The customer takes the big risk of loosing money by accepting Resource & Material approach.  
The supplier takes the big risk of closing down the business for the low customer satisfaction. 
What is good on the Agile approach?
The realization team must be committed to deliver what the customer needs while working in the agile approach. The commitment must be done for short time period, not for years.
The customer says what he wants to deliver in an upcoming time period. This gives customer good control and overview of the process. And the realization team can be sure that are doing the right stuff.  
Let's sum it up.
Don't be naive and plan work for few weeks, not years. Require realization team to commit to deliver something what is giving you a value at the end of each time period. 

Thursday, June 2, 2011

Agile or Fixgile?!

Have you ever heard about Fixgile [fixdʒaɪl]? No?!?! Don't worry, me either. Actually nobody could... because we came up with this name during creation of an offer for a customer who is not yet ready for agile.

When you are running in Fixgile?
You have experience with agile approach and you are not capable to accept fixed price/waterfall models.
You insert many items from the agile approach into the fixed price offer (but some the key ones are replaced by fixed stuff).
You want to use agile approach in your project but your customer is not ready for it and therefore not accepting it. 
How Fixgile looks like?
Specification (both system/functional and technical) is created beforehand. 
Testing is running together with development. 
Project is running in iterations (getting feedback by customer, doing demo presentations...) 
Test cases are created at the beginning of development. 
You divide all the required scope into the small pieces - so you create contract for each small part (way to mitigate big commitment at the begging). 
Customer is pushing you to estimate more work and commit your team for bigger scope (sometimes you are lucky, sometimes not).  
Is Fixgile good?
Sure! We all (suppliers & customers) are learning all the time and it is necessary to gain experience and knowledge somewhere. I believe it is the first step towards the agile approach and more happy customers and suppliers.