Are you a good or bad programmer?

This is the mail I have shared internally with product engineers working on the product.  But later though of sharing it with larger audience.

Hey Team,

Though we are working hard on product and trying to meet timelines, I thought of sharing what are expected from you guys as product engineers in Qilo/Qlique. But rather then verbally telling you every day what needs to be done, I thought of sharing it with you through this mail.

Why its required:- because we should not do same mistakes which we had done in last 45 days.

Attributes of Good Programmer

1)      Their first priority is to understand what needs to be done from business perspective. And try to visualize and understand all business cases before starting with coding.

2)      They declare variable names, function name, file name which are meaning full. They avoid declaring variable with name “i” or ”j”.

3)      They prefer code re-usability.

4)      They write optimized code. Every server side API written should give results in less than 1 second. Every UI page should be rendered in max 3 seconds.

5)      They Unit test code properly before confirming to manager that functionality is done from their side.

6)      They are focused on writing code which other programmer can understand.

7)      They communicate and discuss with fellow programmers before updating their code.

8)      They are always focused on learning new ways of writing better code. They read a lot on software architectures, blogs of successful programmers. They remember which code of their was written poorly or needs improvement and do required improvements.

9)      When functionality/code they have worked on is NOT working, they do NOT blame fellow team-mates or say it’s working on my local environment.

10)   They are always focused on how they can improve their productivity. Which tools can help them in achieving that or at what time of day they are productive? Remember, coding need a lot of focus.

Attributes of Bad Programmer

  1. They write code which needs rework again and again to achieve the desired functionality.
  2. They DO NOT unit test the code properly.
  3. They write code which takes minutes to load UI page or API to respond.
  4. They don’t think while writing code that what will happen when my code will be used by 10 thousand, 1 lakh or 5 lakh people.
  5. They write same lines of code in every file. I mean they duplicate code.
  6. They keep thinking about how to achieving the functionality rather than just getting their hand dirty with coding.
  7. They expect some 100 page document on required before starting with coding. Waterfall model days of development are over. Product needs to be shipped fast to customers.
  8. They are not good team players. By this I mean they don’t talk before editing code of fellow programmers. They avoid talking to manager about the problems they face. They want to solve all complex problems on their own rather then discussing and taking help from fellow team-mate.
  9. They give estimates on new feature or enhancement without properly understanding how it will be achieved or in what shape current code is.
  10. They become arrogant and egoistic once they master one skill/programming language. They start believing that organization or company is running because of code they have written. They stop learning.

Cheers,

Manager matters

“You will leave your job because of bad manager”, this is what you hear most of the time in job world. And that’s 200% correct too. Manager matter in your initial career life . Its very critical to work under a manager or boss from whom you can learn :-

  1. How you can improve core skill of your domain
  2. Personal management
  3. How to communicate well
  4. How to manage teams

And this is what exactly billionaire founder of Alibaba ,  Jack ma suggests. Watch this video and listener carefully for at least 1 min.

https://www.youtube.com/watch?v=_SKc7kMczCg

If you are not working under a manager who is not self motivated, who is not aspirational towards his career, who is not passionate about what he is doing, who is not able to manage himself well…change your manager or change your job.But what are the traits of a good manager:-

  1. He personally takes interest in your career development.
  2. He treats every team member equally.
  3. He manages the execution well and knows what needs to be done. And who can do what.
  4. He pushes you and pushes you very hard. This is where most of the time reportee’s get dis-engaged with manager. Believe me a manager who pushes hard is the one interested in getting things delivered fast. And that’s how knowingly or unknowingly you will improve you skills or ability to manage yourself.
  5. He accept your mistakes and encourages you to improve.

And at the end as a reportee if you can contribute towards your managers career success, you will also succeed.

Importance of sense of urgency in execution

It remains one of the most discussed topic internally at our startup Qilo. Sense of urgency should always be there on all fronts , be it:-

a) In product delivery

b) In recruitment

c) In acquiring customers and generating revenue

d) In getting funded

e) In decision making.

Lets see what happens if you don’t executing fast enough :-

1) Most of the startup ideas are not truly innovative in nature. Most of the time you are NOT bringing something totally NEW to market. You might be giving one to ten percent twist to an existing idea OR you are bringing something which is way cheaper then existing product OR you are just copying a product/idea which is successful in developed economies. This means that your idea which you think is unique, might be getting executed or about to go in execution phase by so many other aspiring entrepreneurs out there. One of the parameters which decides who will win depends on who comes to market first. And that can only be achieve if you execute fast. If you DON’T execute fast, it means you will launch late and might miss the opportunity or what is called as right timing.

2) Most of the startup ideas has very low entry barriers. Are you thinking that completing the development of your tech platform will make you next rich guy? Even a high school students can now days code and develop  one. If you don’t execute fast enough, you soon will see your competition increases and you will end up in pricing war OR will fail to capture enough customers to create a sustainable business.

3) Launching product late or going to customer late or generating revenue late means you are delaying the epiphany of product/market fit. To understand what Product/Market fit is, check this post.

4) Delayed execution means that you are not learning fast enough. Not learning fast  enough means you will not be able to success-ed faster OR fail fast.

At a same time I want to provide clarity on sense of urgency in execution. This should not get confused with you end up working 18 hours a day or making your team work like crazy. If you will do that, you end up getting sick or create a team culture where no one will be willing to work for long term. With sense of urgency in execution, I mean :-

  1. Not sitting on decisions or waiting for the time to take perfect decision
  2. Not delegating the work which you should not be doing
  3. Waiting for the communication from others to complete the job in hand
  4. Not focused enough for the job in hand
  5. And not waiting for the perfect product to start selling.

Faster execution is what makes a startup different from big organization. Faster execution is required consistently for a long duration of time.Faster executing is what  has made Steve Jobs and Apple different from other companies. Executing faster is what made Elon Mask challenge big organization like NASA and Boeing in Space/Rocket launching industry. If you read and listen to co-founders of failed startups or successful one, they will tell you how important sense of urgency is in execution.

Fire co-founders or employees who don’t understand this and trust me you will move closer to success in your startup.

 

Create a culture where people live the brand

How do you create highly engaged and measurable solutions for brands that help connect the employees?

In today’s business environment, it is imperative for businesses to build a high performance based work culture. To do so, you need a powerful EVP – a free-flowing connector between the brand, the business and people. A powerful EVP enables organizations to attract the right people to deliver the right values in the right way. Everything starts with the brand. Our employer brand engagement solutions work across the talent life cycle and integrate brand and business. The idea is to create a performance based culture that not only asks of but allows people to ‘live the brand’. This is done through attracting the right talent, constantly engaging with them and eventually making them the evangelists for the brand.

Attraction: Signaling the change, creating awareness and drawing attention and interest for the brand. Building on the motivators and differentiators

Engagement: Forming an emotional or rational attachment between talent and brand.

Advocacy: Ensuring an experience, which builds positive cognitive and emotional affirmation that in turn encourages word of mouth advocacy.

Measurement of an engaged talent force has to be on a continuous basis. A robust and scientific culture audit is one of the key tools we use to evaluate employee engagement levels with brand. Employer Brand Perception is also a great way to measure how engaged the current talent is and how potential talent perceives the brand. Fostering an engaged culture in the workplace is not a one-time effort. Companies whose engagement statistics improve after a particular effort aren’t done with the task. Rather, it’s important to measure engagement periodically.

How important will be talent’s contribution for growth/survival of businesses enterprises in the coming times?

It is more important than anything else. People create companies and never the other way around. It’s imperative to have the right talent delivering value in the right way. It’s not only a given but critical to business success. Companies should foster an environment to build a passionate workforce and it will happen only if they are engaged at the brand level. Today companies spend millions on engaging with customers. Yes, that is what makes or breaks businesses. But taking one step back and engaging with those who create companies becomes the most important aspect of success.

How important is the consumer brand in attracting, retaining, and engaging talent?

A strong consumer brand definitely helps is attracting talent. However, retention and engagement can only happen with a strong employer brand. A testimonial to this is talent migration toward start-ups and small enterprises. A strong consumer brand is not necessarily a great employer brand, the motivators and differentiators for talent works very differently than consumers. Aligning and leveraging consumer brand’s strength to build strong employer brand can be done to attract, and engage talent.

What are the key arguments in favour of building a stronger talent brand compared to a consumer brand?

The consumer brand and the employer brand are two sides of the same coin. They have to complement each other. A great consumer brand will help in attracting talent, but the moment of truth happens at the employer brand level and that’s where you need to be the strongest in. A well-defined EVP along with living the brand are the core to building a passionate talent force. An employee who is engaged is one who feels committed to his organization and its goals and delivers business results.

When does a consumer brand overshadow the talent brand?

The investment made in the consumer brand is always far larger and becomes the face of the organization. It’s imperative to leverage its strengths and get the talent aligned to it. Defining a clear EVP and living by it makes an unbeatable combination. Its binds brand, business and people.

Enterprises’ wanting to be start-ups

There has been a panic attack amongst enterprise lately, trying to inculcate a start-up culture in their organizations. Has the dragon actually woken up? Or it’s just for fancy boardroom presentation.

Having spoken to business leaders in enterprise, two most worrying areas are innovation and new competition.

Competition, which they never thought existed or even, belonged to their vertical.

So why are they so unprepared? If you look back in history all evolved civilizations, were crushed by smaller groups like Viking, Mongols and the reason they lost was not because they were not prepared, the reason was they did not have a purpose and they were complacent.

The one big difference between a start-up and an enterprise is “Hunger”.

Hunger for success, for sustenance and for survival.

Changing the dress code and cool work place does not give you start up culture, its igniting passion, defining purpose.

The enterprises’ that are looking to change have to first starve and be hungry and that’s how they’ll build a culture that innovates, performs and strives for success.

Hungry KYA?

Communicate my fellow founder

As a founder and leader, you always and should be spending considerable time in communicating your vision and thoughts to your

  1. Co-founders ,
  2. Fellow team members and
  3. More importantly to your customers.

When I was leading my first startup, though I was talking to my customers , but I was not talking and giving required time to my co-founders and team members. I was talking on phone for few hours/minutes a day(we all were working from homes) and thought that all of us understood the vision and priorities. But I was wrong, we should have worked from same place alteast thrice a week to better understand each . And more then that I should have spent more time in listening to team member’s why they are not able to put 200% percent .Phones and emails are not right tools to communicate about vision, about understanding your team strengths and limitations. This has resulted in many  problems and misunderstanding for long period. And end result was dis-engagement between founders and team member’s.

 

Another bigger problem is when you start thinking that “Customers don’t know what they want”. And you day in and out keep putting in efforts to improve your platform based on your understanding. And you keep assuming that one fine day customers will click on that “Pay” button and you will get your first revenue. Sorry my fellow entrepreneur, that is not going to happen. Talk to them, understand what problems they face on your platform, what they will pay for, how they want to pay for your product/service, and then pivot your platform and pricing model accordingly.

So stop bothering about whether platform building is on track(as per your understanding) or and start bothering about what your co-founders, your team members  and your customers are saying.