Wednesday, January 4, 2017

The latest and greatest trends in 2017 for software developers

           
          2017 is here and I found that not many of us know about last trends in software development. Being on a short vacation, I researched about the latest and greatest trends in software. Here are some of them.
 
           1. Chatbots. The bots are taking over! Chatbots that is. Everywhere you look, it seems like companies are launching its new chatbot-powered apps. Quartz went live with its chatbot powered news app in February. Back in September, American Express threw its hat in the ring and created a chatbot for its card members. Not to be outdone, 1-800-Flowers made it easier to order from their site with its chatbot this year. The new interest in chatbots is due to the ease of actually creating one. Thanks to Facebook’s Messenger Platform, the barrier to creating a chatbot has dropped dramatically. Developers no longer need to create the technology from scratch, but rather just plug into an existing API.
 
            2. Agile Will Remain One of the Favorite Methodologies. Agile methodology is being used in the industry for over 10 years. Around 80% of the software development companies are dependent on Agile for the success of their projects, and it’s becoming more popular day-by-day. Even public sectors companies, which are considered to be conservative, are adopting agile. Recommendations for integrating Agile into corporate procedures is also doing rounds. Besides, non-tech management also prefers the methodology.
 
            3. Internet of things(IoT). IoT is exploding. Since 2008, the number of devices connected to the Internet has exceeded the world population. These new devices generate a lot of data and they need to communicate with each other,
 
            4. More Focus on User Experience. For years, creating a good software has been about providing the best functionalities while keeping the user interface as simple as it can be. Over the past couple of years, however, user experience or UX, has been a big buzzword in the software development industry. In fact, it has been more than just a buzzword. User experience mattered and it will continue to matter even more in 2017. Whether you’re developing an app for smartphones or creating a complete business suite for enterprises, ensuring a high level of user experience should be one of your primary focuses.
 
           5. Functional Programming is Gaining Centrestage. The high velocity of change forces IT leaders to innovate. One innovation that has caught on and now become the norm is functional programming. Many enterprises now build several small software components using functional components, and then architecture systems out of many such small software components. With the focus on speed and ease, enterprise apps are now becoming highly focused, including only what is really required, doing away with the frivolous. Instead of a single bloated one-size-fits-all enterprise app or software, enterprises are developing specific apps for specific functions. Tying the different front end apps together is a cloud-based backend and database, to which the apps sync seamlessly. There is a new approach to the nature and structure of coding enterprise software as well. Developers are also abandoning the lengthy process of collecting specs and rather going ahead with a project through a new Minimum Viable Product (MVP) approach. The MVP may be regarded as a “lite” version of a feature concept, requiring just a fraction of the time that it takes to build the full feature. After releasing the MVP product and gathering feedback, developers upgrade it to a full blown version. Time tested procedural programming languages such as C and Java still retain their dominance, but new functional programming languages such as Scala, Erlang and Clojure,noted for the power, are fast gaining ground.
 
           6. Hackers and criminals will get smarter. There were around 707 million cyber security breaches in 2015, with 554 million in just the first half of 2016, according to Intel Security, formerly McAfee. This year, hackers are learning to use artificial intelligence to automate their attacks, making it even faster for them to break into targets’ accounts.  

Wednesday, November 2, 2016

Dear Mark Zuckerberg, Grow old along with me!




            
            All of us face the problem: we're getting older. It's not about passport age or look. It's about our place in a society, where we must work. Our employers become younger and younger, our problems to become employee get bigger and bigger. Couple days ago I found an article posted by "Computer World" magazine on Facebook about age in IT industry, where I work. When I started my career adventure, we did not have Facebook, LinkedIn, Twitter or Instagram, and thruthly speaking, I did not think about a day, when I will be comfortable reading about age. Vu'a la, time goes and I'm not just reading, I'm trying to express my opinion about enormously painful problem: aging professionals in IT. Moreover, I hope, my opinion will be influential for many bosses like Mark Zuckerberg, who will change their feelings about us, who have already spent 20 and more years in computer industry.
            Right experience, professional and life wisdom comes with age. Most of people used to think, it's a quite axiomatic, not me. Rephrasing a famous Soviet writer Anatoly Rybakov "In order to write - you should write"(Russian "Чтобы написать — надо писать"), to be on a top you have to start with bottom and work out every day on every position. Moreover, every time moving up, you have to feel engaged in your work and learning. The task takes time, and it's not only time. It takes unbelievable courage and even tenacity to find a right place, sometimes it's a tiny spot, to mature your skills and develop an expertise in enormously fast-moving IT industry. According to Gallup, only 33% of Americans feel being engaged in their jobs, and, I hope, many of them are dedicated IT workers, who spend endless time thinking about their assignments. Every line in resume, every chance to interview, every line of code, every new tutorial, every stand-up meeting is a step toward a maturing wisdom, which never comes too fast, too soon or too easy. Definitely, I'm a great supporter of Albert Einstein, who defined "genius as 1% talent and 99% percent hard work..." In addition, I love to repeat Nigerian proverb: "It takes a village to raise a child". Hiring a mature talents, you engage a capable and in many ways qualified workers, who will raise, lead, educate, and mentor in a good traditions a young generation to become next geniuses. The history shows, there is a teacher behind each smart head, and each head in any age and time are quite expensive, in American terms, uneconomical.
            



                Many years ago Soviet magazine published a quite captivating story about Nobel laureate and great physicist experimenter Pyotr Leonidovich Kapitsa. Also it belongs at the right time when Kapitsa lived and worked in Europe, in laboratory for Rutherford. "The owner of one factory was extremely concerned. The steam generator which was provided with light and energy all its plant strongly vibrated. It is very complex problem which common decision does not exist and now. A great number of experts tried to repair it, but all their attempts were unsuccessful.
— Time — money — the owner of factory repeated to himself, counting losses because of the lost products — time — money.
At this moment of people in blue overalls glanced to it in office. — I can repair your boiler, the sir — he told. The manufacturer was not impressed.
— I invited the best of the best specialists that they repaired the boiler, but none of them could help me. Look at yourself, you have only a small bag with tools and tools in it not so much if I am not mistaken.
— Quite right, sir. I took only those tools which will be useful to me for execution of this work. So you will allow to settle your problem?
Kapitsa did not make impression on the manufacturer, but as it had already nothing to lose, he led it to the room where there was a boiler. In the center of the room there was a boiler. From it in all directions the huge number of the pipes which are reported with each premises of plant lasted. Patronizing tone the manufacturer invited him to start business.
Quietly and without vanity of people in blue overalls took out one tool, a small rubber hammer from the bag. Accurately and methodically it began to tap different sections of the machine, attentively listening to sounds which were made by a metal surface. In ten minutes it taped pressure sensors, thermostats, bearings and connections, where as he assumed, there is a damage.
At last, it returned to the bag with tools, put back a small hammer and selected the big hammer. It approached one of elbow connectors in one of sections of pipes and struck weak blow with the hammer. The effect was instant. Something moved, and the steam generator ceased to vibrate. The manufacturer was delighted:
— Amazingly! Amazingly! Send me a bill. Double your quotations.
— In it there is no need, the sir — Kapitsa answered.
When several days later the manufacturer received the account, he was stunned. The sum much more exceeded its expectations. 10000 pounds sterling! Big money for those times. In spite of the fact that he paid much more those experts who tried to correct breakdown, but failed, he knew that they spent several days there. And they were representatives of the companies with excellent reputation! And this strange person spent only ten minutes there. The manufacturer gave to the secretary assignment that she sent it request with a request in detail to paint the cost of the rendered services.
Soon the answer came from mail.
In ten minutes of a prostukivaniye (tapping) — 1 pound.
For knowledge of where it is necessary to strike — 9999 pounds. Total: 10000 pounds."


               
             Dear Mark Zuckerberg, I know, it's not nice to say: "The younger - the cheaper", but it looks to me, it's a vital reason why older professionals have problems to be hired and retained as employees by many companies. You have to admit, we know how, when and where to strike. It has to become a culture to appreciate good workers in many ways. It's quite easy to divide us, but it's difficult to add or multiply. Only together we can accomplish a lot. Please, grow old along with me, and I will do more than you expected!


                
            P.S. In spare time I will try to explore 2 new sites for me Hacker Rank and Code Fights See you there!

Thursday, August 25, 2016

To be a customer.



I used to be the biggest fan of SEO. Many years ago, when Google just offered their concept to be first in searches, I decided to learn how it can be possible for anyone, who joins Internet community to predict Search results. I spent countless number of hours on Internet trying to find some patterns in Google searches. I have read many articles offered on Internet by many professionals, who believe they know secrets of Google. In those days SEO was a mostly search-centered methodology, which sometimes works for marketing and PR specialists. Even now, if you ask me, how to be first, my answer would be to work on content and find right keywords. The time, when SEO was a search-centered methodology, is gone, now SEO became a customer-centered industry, which wants to know more about potential customers than in most cases customers know about themselves. So, SEO is becoming a one of the most proactive informational channels in our life.
The first and somehow very important tool is Adobe SiteCatalyst,developed by Omniture and acquired by Adobe to become a part of Adobe Digital Marketing Suite. From my personal experience, most of businesses don’t understand a value of analytics coming from Internet users, and SiteCatalyst makes easier to do a work around numbers. Being a content fanatic, one of the most important problems for me was and is content by itself. SiteCatalyst can help to determine what pieces of online content are being viewed, which is hugely important for most of businesses. Most of Internet users don’t have interest to read text from A to Z. They’re looking for the answers of their questions. If the content can give them the solution, they would consider starting conversation to a business. Content analysis is the most important part of SEO, which is sometimes neglected by different companies. Size does not matter, even product does not matter, but content will bring a right customers. Nowadays most of the businesses want to sell their products over Internet, and SiteCatalyst might be helpful to analyze which products are the most popular among users and how users look for these products. I’m not surprised, that some big companies brought SiteCatalyst to feel more confident with Internet traffic, visualize their customers; moreover the tools like SiteCatalyst can produce marketing research quite faster and more predictable.
Doing some work, I always learn something new. This time it’s Ensighten, tag management system, which allow to analyze and predict customer behavior. Tags are simply little snippets of code that influence how a website or webpage performs when a visitor visits it. Invisible to the user, tags can be used for a variety of marketing's most favorite things: third-party tracking, data collection, remarketing, conversion tracking, website personalization, attribution, and segmentation. First tags appeared around 2007. Now they are widely accepted and have been used by many businesses to attract new and retain old customers. Based on data was brought by tags, company make decisions, find solutions and even forecast events.
These days companies want to be on a top of searches as well as understand deeply their customers. As you can see, tools are available to do this important work. Many years ago marketing research used to take months and months, now you can generate reports on a fly using fresh and historical data As you can see Internet changes everything and everybody. We’re moving faster and deeper.

Wednesday, August 10, 2016

I waited...



     
      For all long and successful years I'm working as a Software Developer, I want one thing: become a better programmer. As many of us, I'm trying to figure out, what is the most important skill I should learn to be successful. It's not about money, prestige, titles or companies. It's about a personal feeling to be on a top of the profession I have chosen many years ago. It's about a satisfaction, which comes from my personal self-esteem and self-confidence. Technology changes very quickly, projects start and end, people come and go, but my skills stay with me.

      More than 20 years ago my parents and I immigrated to USA from former Soviet Union, and after I took some classes and evaluated my university diploma, I started a career as a computer professional. I joined a huge army of geeks and geeketts, who work long days to get things done on time and with the best possible quality. To say developers work hard, it just say nothing. We make the impossible possible every time, when we understand how important our service and products. Yes, we serve governments, businesses, universities, armies, and just people, who need to be served and want to be connected to a better, more open world. We're just human as rest of the world, and humanity comes with a price: self-fears and self-doubts.

      "Can I do this?" - I ask myself every time, when I'm learning new technology, coding and testing a new procedure, proposing a new trick, fighting for my ideas, researching the best solution, and asking for help. Fearing and doubting, I also was shy to talk about it. Does it make me a better developer, can I talk about it publicly, may I be understood in a right way in male-dominated environment? All of these questions bother me for years of my work. Finally I found an article written by a real developer, who actully came to conclusion, that self-doubts makes him a better developer.

      I could not imagine, he has the same feelings and enough brave to go publicly impressing many of doubting ones, that fears and doubts, which are most of the time hidden from our coworkers and bosses, are OK, and overcoming is just an important part of our work. Many people including most bosses think, we have to be perfect to work, to succeed, to be promoted and recognized, and, the most important, to build better software. Actually, it turns out, that people, who are not perfect and don't show their extremely positive build-up self-confidence, are the perfect workers, who reach a better results every time they try. Overcoming self-fears and self-doubts, they learn a better, even more efficient, ways to do a work. I wrote enough code, but even now I ask myself: "Is it good enough?" I always think, having my experience, it's an abnormal to ask this question almost all the time. It looks like, it's a VERY, VERY normal thing. Many years ago I noticed, that my doubts make me not just a better programmer; they help me not to repeat mistakes and learn technology deeper to bring my understanding on a different level. I cannot say that I'm not afraid of mistakes, crashes, and incomplete code, but I use just about every situation to turn my failures into personal professional victories over fears and doubts. Yes, I can fix it. To avoid criticism, many people just do nothing, say nothing and become nothing. One thing, they think they have, is a show-off self-confidence, which they display every time they notice a slight sign of weakness in eyes of others. It's not just about men, it's about many people, who don't believe in doubting ones.

      I wish, I were such smart many years ago, when I started to learn computer technology, and Internet was in diapers. I just needed real mentors to be better and achieve more. I met a lot of people from different backgrounds, and almost all of them don't understand how to set reachable goals that I can accomplish, how to stop trying to make everyone else happy, and forgive myself. Being surrounded by very self-confident people or, better to say, people, who pretend to be confident all the time, sometimes I spend too much time on guilt and self-criticism. Yes, self-criticism is an important for a healthy self-conversation, but our work requires some moments of trying new things. To feel a purpose and accomplishment in a long-term success, we often must take baby-steps, which are accompanied by painful errors, failures, and crashes. Most of people would quit, but we don't. We're moving forward.

       I'm sure, some people are ready to criticize me for my presentation of computer work as a hard and in some ways impossible thing. Yes, it's difficult, adventurous, and very satisfying, but not for everybody. You have to find your way in technology, and, I think, I'm enough lucky because I found something unique to build up a career for many years. Moreover, I'm learning from my mistakes, even fears and doubts. To tell the truth, I don't know any other way to become successful in my industry. Many people try to impress they are victorious, moneymaking, and highly employable developers, who learn any idea for 5 minutes and can work out any problem. I'm sure, it's a quite familiar scenario. Let me tell you, it's just the poor-written scenario for a cheap reality show, not a real life with unexpected downfalls, problems and glorious winnings. These developers try to conceal their own burning fiascos. They are not moving forward, they are taking us back. I always remember wisdom words by Bill Cosby: "I don't know the key to success, but the key to failure is trying to please everybody." Their indestructible self-confidence is a sign of failure and poor knowledge. Moreover, pleasing the bosses, they tend to forget about laws and rules of technology and stop us to find the best solution for the problem we face. The problem is not with us, the major headache with people, who live with masks on their faces. Unfortunately, the masks cost a lot for all of us: software and efficiency is failing, emotions are going down, and work can never be done.

        I waited for a quite long time, probably because I could not find people with a similar reaction. Now, I did. I did not just wait; I was a quite nervous, because of an emotional pressure, even stress, from highly "self-confident" people: some of them were my bosses, some - pleasing immigrants. Trying to manage their high self-confidence, which is only based on position and paycheck, they garbage a real professionals. It became a major challenge for me, and I still cannot forget several moments in my career:

            a) Three hours after first layoff in my career from a small company I received a call from Russian-speaking coworker with two, frankly speaking, sour statements. He asked: "Are you going to ask a boss to take you back?" I answered: "No." He continues: "Some American employees did not feel comfortable with you." Thank G-d, I understand very well his intention to bring my self-confidence and self-esteem down, that he likes to do often, and never let him do. My next career step was much better and interesting.

             b) Many years ago I worked for relatively big company, where I was one woman-developer. Plus I had a woman-boss with absolutely special opinion, which took her to a high-management position: "We're not going to hire smart experienced developers, because they would not listen to us." Even now I ask myself: "How is it possible to promote such people, especially women?" Thank G-d again, I don't have to work with her anymore. I want to be smart.

            c) America is a land of opportunities, and sometimes opportunity is given to a wrong person. Uneducated, jealous about my education and knowledge, narrow-minded woman became my boss. Her statement was sharp and commanding: "Where is respect?" I did not know, that I must respect a person just because of the title in democratic and free country such America. I prefer to keep my self-confidence up and work for another company. .

       Nowadays many people talk about women in technology just because it became evident, that women can be a very good, even accomplished, diligent, and first-rate developers, who really take care of many problems in this industry. Bringing more women to technology, we have to start to take care of their self-confidence and self-esteem. I would like to take this issue to your attention, because it's hugely meaningful now, when many countries experience problem with education of a new workforce for hi-Tec. Typically, most of students need to keep their self-confidence and self-esteem on a certain level to go through courses and lessons, but for future hi-Tec employees it became a determining, even a front-end issue. Hi-Tec is an extremely moving industry, and we need people, who can overcome fears and doubts and develop into smart employees. Their self-confidence has to be built on a right interpretation of fears and doubts, which include teachings of calculated risk and success probability, advanced learning techniques, communication rules, psychological awareness, resume writing, interview questions related to criticism, mistake making, retraining, and senior mentoring. I'm not trying to impress you with my psychological knowledge; it's just a deep deriving from my personal experience. I strive to be the most unidealistic person and bring a real picture to those, who still think, that a simulated self-confidence is better, than a real feelings.

       To finish, I ask myself: "How many people would read my essay? How many of them will change their approach to doubting ones? Am I helpful at least for some tribe members, who want to become better? Do I do a right thing exercising my right on freedom of speech?" I'm sure, some of you can continue a list of these questions. Questions remain and will remain just questions, if we are not going to do something realistically good to keep, bring more, raise and lead people with de facto perceptions. What can we do?




Sunday, April 10, 2016

MIT Open CourseWare

I'm spreading a word about new MIT site, which features a lot of new free courses. I just checked computer science courses, and think, I might take some of them. Enjoy!

Thursday, June 25, 2015

Bootstrap:how to collapse navbar earlier

I have request to collapse bootstrap's navbar earlier. I use Bootstrape template and need some solution for such humble problem. Stackoverflow.com was very helpful.  Code works very well and it was easy adjusted for my needs. Here's a piece of code I used:

@media (min-width: 768px) and (max-width: 1300px) {
    .navbar-collapse.collapse {
        display: none !important;
    }
    .navbar-collapse.collapse.in {
        display: block !important;
    }
    .navbar-header .collapse, .navbar-toggle {
        display:block !important;
    }
    .navbar-header {
        float:none;
    }
}

It collapse at 1300 px point. You can change for any number you want or need.

Saturday, April 11, 2015

About Scrum


Finally I got a book ("Scrum The Art of doing twice the work in half the time" by Jeff Sutherland) from the library. It's fantastically easy to read and follow, it's really good for all of us, who spend hours, days and  months working with software. Moreover, it's the book for bosses, who used take wrong decisions and mismanage projects. It's a book for all people, who wants to work effectively in times, when time and creativity values the most. The book is full of real examples, who can inspire all of us to work better. It's the book for future leaders, who wants to be on a top of companies and society professionally and socially.  I really enjoy reading and can suggest to read.