Category: Managing

The Startup developers syndrome

MH900422589When I was studding in college there were these projects that toke me a lot of nights sleep just to deliver them before the deadline. They were database, programming and network projects, the usual preparation/education for the future job or Startup company.

After finishing the college I started to work for IT Companies, and let me tell you I was lucky because I didn’t suffer from “The syndrome of the Startup”. What is this syndrome?

Let me start, first describe how I have observed the IT world.

Along these years since I left school I started to see, that most companies pay for 8 hour/day job but they “ask” for more than this to their developers/workers without any compensation for that, like if it was an obligation. Why?

  • They do not work the 8 hours in a fair way?
  • They deserve less than a car mechanic or a mason? Because these guys if they work 12 hours you must pay them those hours, or your car will not get out from from the repair shop!
  • They don’t deserve the salary?

Of course, the reasons are most of the time others, and I can enumerate some of them:

  • The project manager probably is incompetent, because it couldn’t develop a project plan with the right resources, time and cost, so he hides it with more hours in the project.
  • The sales people just sold a project without questioning the experts to give them the right numbers for resources, time, etc..
  • The analyst team did not collect correctly the requirements so new ones started to pop as popcorns.
  • The manager just wants to improve his revenue in his Excel sheet so his commission at the end of the year can get him to take holidays in a better place, or buy a new car, or get a promotion!
  • “There are a lot of people looking for job these days, if they don’t like it, we can get other’s that are available to work more hours.”

But, for me, the main reason its because the IT workers accept this! Why?

  • Some of them they just think its normal.
    • Why is it normal to be paid for 8 hours and work 10/12 a day? Besides the low quality of life your salary just decreased between 25-50%!
  • They have afraid that if they don’t work these extra hours the managers will not promote them or they will start to talk negatively about them to other managers.
    • First, you will be promoted by your technical and soft skills. If you are very good in these skills, even if you work just the regular 8 hours, against some cultural trends in your company, the company will promote you anyway, because you are good and bring money to the company. Its not the time, it’s the quality and ROI.
    • Second, I know there are companies that talk negatively about the employees who don’t work the hours they expect, they say “they aren’t working as a team”. Well, there is a fallacy here, because if you work more hours and your salary it’s the same, the managers they get a raise because their revenue raises, but the only think you can get it’s a small raise in you salary, so if really you belong to a team everybody should win right?
    • Third, if the company have customers where to put you working, or projects to develop, that fits your qualities you will have work even working only 8 hours. If the company doesn’t have a place for you, you return to the office and after 2-3 months you will be invited to leave, event after you work more than the 8 hours/day.

Other reason that I see a lot, and that’s why I started this post talking about the college is that most developers they have his mind context to start a Startup company, and they work for IT companies with this thought that they are building something for them, like if they will get a reward after the project is finished. But it is so wrong, they haven’t build anything for them, just acquired experience. If in that time they have applied their knowledge to build a project for them then they have acquired not only developer experience but sales, marketing, leadership, entrepreneurship and managing experience, and they have done a great step in their professional life’s. Even if their project/startup didn’t work they have now experience to reach a higher role, like a team leader or manager?

I call this the “The Startup developers syndrome”, because most developers work with a mind set of a Startup but they are working for others where the only reward will be the salary.

 

NOTE: I am not trying to say the companies are bad and workers explored. There are bad companies? Yes! There are bad workers? Yes! There are great companies? Of course, As I said above, I had the luck to work in some of them! There are workers who just want a career, a job role, and they work extra hours to show to their bosses their dedication expecting a promotion. Sometimes workers need to miss a day or other just to handle private things and lot of companies they don’t discount from their salaries this days or hours, so its fair that the worker offer extra hours when the company need it, I think its very healthy for the relation between the company and the worker. What I think it’s not fair is the company, systematically creating the idea that working always more than 8 hours its normal and an “obligation”.

Managers, it is always about people!

 

types-of-exerciseAfter years of developing, team leader and project management experience I realized that all good decisions, even the technical ones must include all the people. Well, “everybody” knows this, every project manager, team leader, manager,etc. Really?

Lets focus on the team developers.

 

Imagine you have a project to develop, a software product. You have a team leader and some developers that you will assign to the project. You want to use the new technologies like HTML5, JavaScript and lets add Java, the software product will be an Android app.

The typical decision will be something like this:

1) I have developers and a senior developer team leader

2) They all know Java

3) They all know about HTML5 and JavaScript, because “everybody” knows about HTML and JavaScript. Right?

4) They all know about java and that is the language of the android, and know what is an Android phone, it will be a challenge!

 

Lets remake the decision looking from outside:

 

1) You have developers and at least one of them it’s a Senior.

– Great!

 

2) They all know Java.

– The problem starts here. What they know about Java? The language and some algorithms (even with some years of experience), or they understand how to apply Java in the context of mobile Applications? If this is the first time they will develop mobile applications, they don’t understand the architecture of these applications, how to develop the components, the events, actions, how the hardware responds and send events to the application. The thing here its not the details of the mobile android development, it’s the lack of “mind set” the team will need before start to code, and the result will be most certain a bad quality product, who will need a lot of fixes and rebuilding. (been there)

 

3) Yes, every developer who have developed before web applications knows about HTML and JavaScript, everybody knows WHAT IS, and the syntax and some tricks, but few, very few understands the JavaScript paradigm and good HTML. Be aware of this before anyone tells that he knows about this subjects. It was only in the least 2-3 years that the JavaScript boom has started seriously, and Senior JavaScript programmers are a very small team. Before this language was only used for events in the HTML, now we have frameworks developed in JavaScript, we even can use JavaScript to create servers like “Node.js”!

 

4) It will be a challenge!

– No, it will be a disaster for the company and/or for the customers! The lack of know how in the middle of the project will arise and show all the architecture problems not prevented in the analysis phase or by the Senior. And here you will have 2 options: Remake the whole product from the start, which sometimes its not a bad idea (only for project managers), because the team already acquired the know how and know how to develop in a better way and know what to develop. Or fix the architecture, and this for me it’s the real challenge and here I thing “It will be a challenge” makes all sense! Its like trying to fix an already built house into other blueprint, good luck! (you will see its better to destroy and build again)

 

What’s my point, here?

 

This was just a simple example, to show that the most common way of thinking can lead to big problems, which by the way are always happening.

Before a great decision to be made in the software industry, first take in consideration the people you will choose. They are people with a specific know how and mind set, and to change that it takes time and it is a process you must consider. You can say, you will put them all in training classes. Great, but don’t expect that some dozen hours will create a miracle and prepare them for big projects. Training just gives you an overview sometimes shallow, other times deep, but after the training the people must play for some time before entering the “competition”. You can see this in sports teams. They are professionals, they play for many years, but when something changes, like others players, tactics (projects), coacher (team leader) they need to practice before the real competition to be successful, or you will ear from supporters “they had no time to practice that’s why they are playing so bad”. Probably you say the same about your sports team. Remember those words in your company and your team.

Once someone said, that 80% of the quality of a product comes from management, not the workers, because they need conditions to develop a quality product or project. These conditions include human resources management, understanding human behavior and acting accordingly!

 

What to do?

 

I will not give you a magical solution, from years of experience as a developer, trainer, team leader, architect and project manager, I can help you to take a decision involving all these variables, but as a manager, project manger or whatever manager you must open space for your developers talk about the difficulties and frustrations they have, and not throwing a “it’s a challenge for you guys” like  a magic sentence that in the future will bring its fruits (demotivation and consequently quitting), and I will not talk here how much it costs to bring a new member to a team (think about a new player in a team, even expensive he need time paid by the sports team to adjust to the new environment).

If you are a developer, be more open to your managers, and ask them time to practice, to develop small “challenges” besides the training and before starting a big project, it will give you know how, confidence and experience for a bigger project. Your company its not wasting money its an investment. I think it will cost more to rebuild or fix a bad product than to spend time before doing some “virtual work” and then do the real work. A soccer team plays 1-2 times a week, and receive money from the public, but during the week they spend money training.

Evernote vs OneNote

evernote_vs_onenote

As an IT Enterprise professional I am always trying to find the perfect tool to help me with my daily tasks. I have tried a lot of them, and it comes always to these 2: Evernote and OneNote.

This review its not about which one its the best (I will let you decide that), but as a professional I will tell you how I feel about using each of their features.

 

 

First a list of Pros and Cons with the most important features

 

Evernote

Pros:

  • Great community around it, with several products and The Trunk
  • Cloud service with apps in the major platforms, desktop, mobile and tablets.
  • Free apps and applications for windows and Mac
  • Free cloud service if you don’t use more than 60MB/month.
  • Add-ons for browsers
  • Tags management. Very easy to associate to notes and very easy to use them in searching.
  • Geo Notes, if that’s important to you
  • The search feature its very good
  • Collaboration (at least in the Mac)
  • Online editor
  • Related Notes
  • Attach Multimedia files to notes
  • Reminders
  • Share with social networks
  • The applications are free.

Cons:

  • The notes editor could be better. I don’t like the way the tables are created, and most of the times the bullets creation follows a strange behavior after some clicking in Enter and DEL.
  • In Windows the desktop version uses to many space with information about the notes. Ok, its possible to hide it, but then I will have to open and close to find what I want. (I accept some comments here! Its my UI feel, not a problem.)
  • The “list of notes” doesn’t fit well with my expectations. It doesn’t help me find a note with a simple view., I will always have to use the search.
  • Its only about single notes. You cannot create sections, or sub notes or some kind of marks inside a note.
  • The note follows the pattern of a text editor (like WordPad), you cannot write in any place like a real notebook.
  • Ink Notes just in desktop and the note must be or Ink or Text, you cannot have both at same time in the same note.

OneNote

Pros:

  • Integrates very well in the Microsoft Office family products
  • Cloud service using SkyDrive.
  • Apps for Windows desktop, Windows 8 tablet, iOS and Android
  • The limit online its the limit of SkyDrive (starting from 7GB)
  • Search its very good
  • Search with tags its great (although I think the tags management could be much more improved, here I like Evernote system)
  • Great collaboration. I tried to use OneNote online and at same time using in my tablet and the experience was as expected)
  • Online editor its great, very similar to the desktop edition but with some constraints (well, its online)
  • The desktop editor is a pearl. You write anywhere, how you want it, like writing in a sheet of paper. (if you have a surface you can use it like a paper using the stylus). Great handling of tables. You can integrate, convert or use Excel tables in OneNote.
  • Integrates with Outlook and Excel. The editor has almost all the tools you find in the Microsoft Word.
  • You can integrate multimedia files along the note.
  • You can have Ink and text in the same note. Great to take annotations.
  • The online application its free if you have a SkyDrive account.
  • The price of the final product its not expensive if you consider a one time buy. (The OneNote Metro application its free)
  • You don’t have the concept of a note. You take notes like if you have a notebook. (could be a pro or not, depending of your taste)

 

Cons:

  • The handling of the tags needs a rebuild. Its a menu with a lot of tags already developed. You can create new ones, but its not easy to manage them like in Evernote.
  • You have to buy the desktop version.
  • The mobile apps they have a limit of notes before you have to pay them, unless you have an Office 365 subscription.
  • Its note a very single simple note system, you start with a Notebook with a section and page, not a note like Evernote. Although you can create a notebook for very simple notes or use OneNote’s single notes system.

Verdict

I have switched a lot of times between these 2 great notebook applications. When I want to take fast notes, save links, create list for shopping, simple to-do, or a lot of integration with third party apps in the mobile eco system, Evernote its first choice that comes to my mind. But if you work in a professional environment, and you have a lot of notes in some subject, and the concept of sections, sub notes its more intuitive for you, I think OneNote shines here.

Evernote its great sharing the notes between all the devices and very good to organize them with tags and Notebooks, but the notes are simple boxes of isolated information contained inside notebooks and associated with tags. Its about single notes, not books of information.

OneNote its great organizing information for enterprise or scholar environments. The notes are not isolated blocks of text, they belong to a section/sections inside a notebook. It works like a tree (or a notebook with bookmarks) in your mind. If you want the project X Notebook, with sections and sub-pages, where all is organized like in one place and very easy to find, the OneNote its for you!

Now I am using OneNote, because most of my time its working in IT Project, and I want that each project or company be in a Notebook, and inside it I divide by sections like configuration, applications, issues, daily log, etc., its very easy to find the information without using the tags (I just use them for TODOs and reminders). The editor its a joy and I can use my stylus in the windows surface, which mix very well with the text.

However, sometimes I miss the simplicity of Evernote. Its very easy to take a note in any device and find it using the notebook and tagging. But I will miss the great text editing capabilities of OneNote.


My advice:

– Evernote its about getting notes, tagging them well and then searching, it gives you a lot of notes managing/organizing freedom. There are a lot of third party apps integrated with Evernote. You can, for instance, do a scan and send the photo to the Evernote from an iPhone.

– OneNote its about notebooks and organize them by project, company or class/course or something similar. Its like having real notebooks. Its great for project enterprise environments. (Did I mention the great text editor?)

iPad business applications I use–Kindle

 

I have a lot of printed books, they give me a sense of “paid for something that I really have”. However, I have great technical books, great because their content and great because they are big, with lots of interesting pages. So, what’s the issue here? Carrying books every day in paper its heavy, I can’t put them in my pocket, everyone knows what I’m reading at work, in the train, subway, etc., probably at the end of the day I will let the book on my desk at work, at middle of the day I will remember that at home I have a book that could be very useful at my job.. But it is at my home… well… the ideal was carrying all with me but without the volume!

kindleAgainst my will, at first, I tried to buy digital books. I have an iPad and an iPhone too, which I carry with me most of the time. My books are all inside these too gadgets! Well, they are at Amazon cloud, but I have an offline copy in them. So, when I’m going to work I can choose any book to read, or when at work I can consult any of them. I carry all the books I have, but without the heavy and volume issues!

So, why Kindle? Well, you can buy or rent books. The reading it’s great. You can have your book in 5 different places. Kindle remembers the where you stopped reading and allows you to continue later in any device! It’s very easy to buy a book at amazon.com and after some seconds the books it’s in your iPad (well, could be a financial problem so much easiness!).

I still miss, sometimes, the feeling of the paper in my hands, but the advantages of having in digital format allied with my computer science job, it’s a tradeoff I’m glad to have done.

Do you have architects or senior developers?

 

Why there are very few good Java Architects?

Well, most people will say to me, that this isn’t true, they have Java Architects in their team. I believe, but most of them are Senior Programming Developers with some experience, but not real Architects! Sorry.

As a Java and J2EE trainer I have a lots of students learning Java, Java Programming, EJB, Servlets, JSF, JSP, Web Container, JPS, ORM, along the year. But in the last 2 years I have taught only one time a course about IT Architectures! Even people with 3-5 years of experience they became to my classes learning about Java Programming, some of them team leaders, “experienced” team leaders! After some questions about patterns, cohesion, density, coupling, etc.… 99% of them they just… ahhnn?? That’s when I know, that most of the team leaders are just Senior Developers!

modern-architecture-2A good final Java Product its about thinking in commercial aspects like: audience, final stakeholders, customers, commercial sensibility; and technical like: Load Balancing, Patterns, the 3 dimension of an architecture, density, cohesion, coupling, security, layers, tiers (which its different than layers, by the way), scaling, sessions, performance, etc.. Not only programming! Programming are the bricks, it doesn’t matter how knowing how to put bricks if they aren’t in the right place and in the right way, with a specific commercial goal in mind!
Poor decisions at the start of development will reflect in a weak product which probably will need maintenance in the future! Then the company will train or consult real Java Architects, or sometimes they just keep pushing the “Senior Developers” to try to increase the quality of the product…

So, if you are a company developing Java Products, besides people know about Java, train them in topics like:

– Patterns

– Architectures

These topics are not about Java, but they really improve the quality and the performance of any product development, including Java! And then you will have better Senior Developers, with some commercial sensibility (yes, architectures it’s about commercial sensibility too, one of the most important aspects in most cases), and after a while you probably have Java Architects, and you will have a great team to develop great products! (Well, there are the human factor to consider here.. .but that’s another story )

NDepend – You must have this tool!

 

I’m a .NET developer since v1.0 at 2002, and as you may guess, I’ve used a lot of tools to help me doing my job. How many times you realize that you are always doing the same thing over and over, in the same way, and sometimes you don’t even notice that you are letting some “little” bugs or “little” bad practices that in the long run will damage your code? And, how about projects with lots of assemblies, methods, complex behaviors, is this familiar to you? If it is, you want to check this tool NDepend

The first thing you probably note it’s the name, which lead us to think that this tool its about dependencies between components, assemblies, methods. Well, its true! But its much more than that! How many of us don’t need to visualize the dependencies from all angles in our project? How much do you value seeing the relations between your classes, assemblies, methods? How great its to know which method it’s the more complex, or more used, or more critical? Probably this “.net method” should be the more unit tested and optimized! In a team, a tool like this has great value, either for developers either for team leaders who want to know how the technical aspects of the project are going.

But this tool, its not only about dependencies, its about code complexity, metrics and very good warnings and advices to improve your code quality, too. In some tests I’ve made with this tool in one of my projects, I discovered that some of my code should be improved (almost saying fixed!), NDepend has show where there was some source code problems and why they were problems! I’m learning from this tool, besides my senior professional experience as a team leader, developer and Certified Trainer!

In NDepend you will find a lot of interactive visual graphs, matrix, trees of your code and its relationships, but besides the visual features of this tool, which are great, you have access to an advanced tool CQLinq(Code Query Linq) which allows you to build Linq queries to query YOUR CODE! Yes, querying your code!

I think it’s a beautiful feature, and a pertinent add-on to any tool which aspires to analyze code.

An example:

A Linq query to return all my public methods with more than 30 lines of code!

You can use all the Linq operators, such as Take, Except, and have access to a very rich API to query your code by a lot of different metrics, such as:

What are the 10 most complex methods?

As a first experience with this tool, I was very impressed, it’s a very productive tool, improves the quality of my code and of my team developers too. This tools its used by a lot of great companies like: ThoughtWorks, Microsoft, HP, Siemens, Google, Redgate and hundreds of others, they are not wrong about choosing it!

I’ will keep exploring this tool for my projects, my first impressions were great, so, why stop? If you are a professional developer I think you should give yourself an opportunity to improve the quality of your projects trying this wonderful tool! You can use it as either a Visual Studio Extension or as an Application outside Visual Studio.

For now I’m really enjoying what I have seen so far. In the future, I will certainly dig more deeply in specific features of this tool and post about my experiences,

Video about Science Of Persuasion

 

If you are a team leader, project manager, negotiator you must understand how to apply these principles. This theory could be applied to any area, but in the world wide IT management it’s a must, for instance if you are a  developer and  you are overloaded and need to persuade a project manager or business manager, or even someone needing for a promotion, making a presentation… well, if you need a YES to something, learn these skills, learn to apply them to your situation and the probability of your success will increase too! Be wise!

 

Animation describing the Universal Principles of Persuasion based on the research of Dr. Robert Cialdini, Professor Emeritus of Psychology and Marketing, Arizona State University.

So you think you are a Senior…

 

– A senior takes the responsibility to find the best technical solution.

– A senior knows the juniors of his team, their limitations and their strengths.

– A senior is proactive.

– A senior knows the business impact of his technical decisions.

– A senior knows that the best solution is not always possible, and knows how to make trade-offs.

– A senior knows that bugs will occur, regardless of his programming skills or of their juniors.

– A senior understands that what matters is the customer expectation, not the quality of the algorithms.

– A senior knows that the success of the project is related to the expectation of the customer and not only according to specification.

– A senior is multilingual, speaking several languages: commercial, technical, professional, end user, other.

– A senior knows when to apply the appropriate language.

– A senior is almost a project manager.

– A senior is almost an architect.

– A senior is almost a sales person.

– A senior is paid to be guilty.

– A senior knows that his job is a transition from juniors to an architect, or commercial, or project manager, or business developer, or manager, or whatever.

– A senior knows that his position its the starting point of the “the rest of his professional life.”

– A senior, sometimes, would like to return to his junior times.

– A senior is a leader.

– A senior must have a balance between hard and soft-skills.

– A senior is always learning.

– The responsibility of a senior is to be responsible for everything!

Effort, control and stress in your projects!

 

In all projects there is stress. It is up to each of us, control it and reduce it. There are people who only know how to work under stress, and that, damages his/her health, it is scientific and is well known. What to do to reduce stress? This question answers itself with two questions: What level of enlightenment have you about the project you’re involved in? And as a consequence, how much do you think you can “control” the future?

The stress comes from the lack of control of the future, and this happens for 2 reasons: The first is lack of project planning in a clear way for all team members, along with the confidence of the leader who will not “persecute his team developing members” if they cant comply with the impossible tasks times! A well developed project plan, along with a risk plan is a relief for all stakeholders of the project. I think just reading this gives psychological relief and reduces stress!

The second reason is the balance between control and energy expended for such control. A few years ago someone showed me the following drawing:

circles

In this picture, the circle in the center indicates what we control, and the energy we spend on that control. When we move away from the center (things which aren’t in our control, such as other people decisions and acts), the less control we have and we can only hope for influence, that will vanishes the more we move away from the center.

In the center we spent little energy to control things, like our decisions, but when we try to influence, or moving away from the center, we must spend much more energy, like trying to convince others for some decision or trying to control other’s things. If we try to influence things that are very far away from the center we have to spend a huge quantity of energy, raising our stress and causing damage to our health (body and mind).

small_394435153So if you are a project manager, and you really want to manage healthy your team so you can have a very successful project in every way, learn to manage well your energy and of your team, it will give you in a long run a successful personal, professional and social life. Let me say to you some Christian advice “love thy neighbor as thyself”.

If you are one of the team developers, you are not obliged to accept whatever the project manager gives to you, if there’s one thing I’ve learned is: it is harder to say “no”, and is easier to say “yes”, but it is the “no” that define your life. Do not be confrontational, present alternatives, discuss your point of view, if the project manager don’t accept it and the right its on your side, well probably the company is not for you!

This way of seeing things applies to all our life.

 

photo credit: bubbo.etsy.com via photopin cc

LinkedIn Recommendations–Do you know the risks?

There are a lot of people asking for recommendation in LinkedIn and other social networks.
My focus will be on LinkedIn, because it’s the most popular business professional network, where many people are trying to gain and increase their “personal brand”.
Although it seems a great way to gain some free “personal brand”, I think the person who will write a recommendation for a friend or colleague must think twice before do it:

Among other questions I will start with:

1) In your professional analysis is it really true what are you writing about your friend?
2) Are you ready to answer about the words you used to recommend your “friend”, to your boss, ex boss, future boss, colleague, friend, etc.?
3) Do you want to be accountable for a future failure of your recommendation just because someone who trusts your judgment accepted it has true?

On LinkedIn it’s not about what people are saying about you, I can value more your value, reading the recommendations written by you, because it reflects your judgments, person analysis, technical and personal soft skills, etc. If you can do a good analysis, probably you know something about the subject you are talking about, and that values you, not the person that you are recommending.
Even being a friend of yours, it’s your reputation in the game, and above all in the the social network, visible to thousands of people, including head hunters and job opportunities.
Sometimes people ask me if I know/recommend someone to a specific job. Sometimes I know someone, sometimes not, but I always try to recommend a person that I know it will do the job, and be careful enough to say what I know about the person and don’t risk to blindly recommend her/him, and in the future be the guy who cant analyze people, who has recommended a failure, that will be my failure. How can I, in the future, present my self as a Team Leader, Project Manager or a Senior if I cant analyze the skills of someone? And, these skills must be not just technical ones, but soft skills too.

So, my “recommendation”: be very honest when you recommend someone on LinkedIn or other social network, because its not about the person who are recommending, but its, above all, the content of your recommendation about that person, which will reflect you as a professional. And it will be your name and your reputation, and your capacity as a business professional.

Don’t jeopardize your future just because he’s a friend.
Sometimes, it’s hard to say no to a friend, he could not understand a friend saying no to a “little help” for is professional life. In that case, I recommend you to be honest, try to focus on things that are really true, and if that friend had to work with you, what role do you think will fit in him? That, I think, it will be the content of your recommendation.

Hope it helps you in the future!

José Cruz

Bad Behavior has blocked 158 access attempts in the last 7 days.

Hyper Smash