Saturday, August 20, 2016

6 Things Deveolpers Can Learn From The Olympic Athletes In Rio

Rio Olympics 2016
Olympic Athletes practice, train, study.so what we can learn from them?

1. Preparation

Olympic Athletes training begins early on in childhood,So the best time to start new thing it NOW.
“If you fail to prepare, you’re prepared to fail.”
— Mark Spitz, Gold Medalist, Swimming

2. Motivation

 “The water doesn’t know your age.” – Dara Torres She turned 41 (yes, 41) Torres had collected 12 Olympic medals throughout her career.You'll never know if you can win the race or not if you are still standing on the start line,
So start coding, Make it run, make it run right, make it fast, make it small.Life is serials of marathons,so how we keep us always motivated is hard and to be motivated search for inspiration.Tip:I used to watch TED vedios to keep me inspirated and motivated.

3. Resilience


With the two runners in a near lock approaching the finish line, Miller dived for the finish and narrowly sealed gold.



Do what ever it take to reach you goal,when you stuck there are help outside.

4. Learn From Failure

“One shouldn’t be afraid to lose” 
— Oksana Baiul, Gold Medalist, Figure Skating
when you fail,dust yourself off and try again.

5. Show Love

EPA
If you’re not having fun, then what the hell are you doing?”
— Allison Jones, six-time Paralympian

We are not machine we only work with them,we have live to life and importantly enjoy.

6. Having a Mentor/Coatch

Coach Glenn Mills and Usain Bolt (Photo courtesy of Ian Walton/Getty Images)
Coach Glen Mills has not only helped Usain Bolt become the world’s fastest man alive, he has also helped Jamaica gain the identity of the “sprint capital of the world.” Always Surround yourself with people who make you better support you and help you achieve your goals.We become who we surround ourselves with and the best thing you can do for your career is to find a great mentor and start to apply their advice.
“You are the average of the five people you spend the most time with.”― Jim Rohn

Monday, August 15, 2016

Do more with less


"it's much more rewarding to do more with less", Donald Knuth 

Measure yourself

'If You Can't Measure It, You Can't optimize It'.  Use meaningful metrics things like how many tasks you finish in a dayor even how many hours you work.So start with profile you daily activity with profiling i mean things like answering emails,meetings,calls every little thing you make.


Mastering your tools

Your OS, IDE, browser for web devlopment and any supporting tools (database management tool,source control tool ,etc ).Best use of these tools can save your times.start with frequent tasks that take you time ,so you navigate through code pages take ten seconds and you know shortcut do that in 2 seconds.I have a tip i use for things when working with new tools google for "tips and tricks for X" and by uses this tip it can save you numerous hour.


Define term "DONE"

Done means done simple isn't it, the word "done but x and y" doesn't mean done.So define done means code is tested and has desired business impact-define your checklist.


Friday, August 5, 2016

The secret ingredient of successful Startup/Company

 Company Culture is the secret ingredient of successful of any company
No Secret ingredient is just follow the recipe.
Company Culture is the recipe of successful of any company. For most companies to have ping-pong tables and free snacks this company culture but these things does not work alone. Providing employee's with sense of safety and well-being and good policies, these promote the culture and happy employees, which ultimately leads to happy customers.

What is company culture?

Culture represents the collective values, beliefs and principles of  members and is a product of such factors as history, product, market, technology, strategy, type of employees, management style, and national culture; culture includes the company's vision, values, norms, systems, symbols, language, assumptions, beliefs, and habits. wikipedia

It is  what the firm says about itself,usually manifested in its vision and mission statement,I encourage to written both and put them in obvious place in your firm.


Culture mirrors leadership

To understand a company's culture, look at what people do,If people are open, forthright and engaged, you know that is the nature of the company’s culture.In contract if people are defensive and passive you also understand the company’s culture.It is simple — but not easy — to build the culture you want.


How to cook your culture?

“If you know where you are going, it doesn’t matter where you start.” Anonymous

It starts with asking your employees  and make list of items.What would you like more of in the workplace? you will get answers like :
  • Better communication and more information.
  • A feeling of safety 
  • More focus on getting work done and less on politics.
  • More involvement in decisions that affect me.
  • etc.

You can also focus on areas to see what kind of atmosphere your workplace has developed
  1. Clarity of purpose:Your employees have to feel that what they do matters, and has a measurable impact on the success of the company.
  2. An environment of trust and engagement:
    Your 
    employees should feel save and involvement in decisions that affect them.
  3.  Continued learning:
     Your company will go nowhere when your 
    employees didn’t continually improve themselves.

  1. Celebrate Successes:You should celebrate successes; even small ones. your team needs to be reminded from time to time that they are on track.

Make small changes in how they do what they do every day, changes that show that they understand and encourage the values people want.

In a good work culture, everybody wins.

Friday, July 29, 2016

Dealing with Legacy Code.



Our life as developers' would be easy if we write only new code.No bug fixing or editing yesterday code It’d be pretty nice, right?

Definition of Legacy code


 Legacy code
Legacy code was defined in many ways and there is no common definition to it even in wikipedia, may by.
  • Code that’s part of an older version of the software.
  • Code that relates to a no-longer supported hardware or software dependency.
  • Code inherited from someone else.
  • Code that isn’t covered by automated unit tests.
To me, legacy code is simply code without tests. ~ Michael Feathers
Well, that is the first formal definition of the expression legacy code, published by Michael Feathers in his book Working Effectively with Legacy Code . it seems that Legacy code is "Difficult to change" but term "Difficult to change" is so vague and we need solution.
But guess it mostly like this picture when re-factoring legacy code.
Refactoring legacy code
Refactoring legacy code


Defensive strategies.

1- Be conventional.

Following standards and language convention make code easy to work with.

2- Code review.

We took about it in previous post but talk to your peer about code you wrote make it more readable.   


Working strategies.

1- Don't make it personal.

We always think it’s faster to rewrite it from scratch than try to understand what other developers did.Don't judge other developer and speak bad about code even it worst code you ever seen.

2- Testing.

Automated unit tests will give developer understanding about key things: dependencies this piece of code has, input data, output results, boundary conditions so on.From here you can walk in the minefield.

3- Start small.

It always seems like a disaster at first, Fear is your worst enemy in facing legacy code.You must start from somewhere.Small bug fixes or even change variable names that make code more meaningful that make working with old code infinitely easier.

4- Make your checklist.

Checklists it underestimated but guess what it works all the time make your own checklist,"Identify changes, find test points, break dependencies, write test, make change and refactor.

Image sources


Friday, May 27, 2016

The power of Pair Programming

 Pair programming is an agile software development technique in which 2 programmers work together at one PC. One, the driver, writes code while the other reviews each line of code as it is typed in. The two programmers switch roles frequently. Wikipedia
The Power

Share the Knowledge: you can learn some tricks and see the problem in a different views.
  
Good code quality: 2 minds better than one and focused on one problem.

Communications: Pair Programming is good way to build better and solid team.



Is there any cons?
 Time consuming: It takes more time i can't argue be in long run it worth this extra time.Think about code quality, fewer bugs and easy maintainability- two owns the code.

image source