Wednesday, January 1, 2020

Community Culture


This year we are ending a decade of profound transformations in the IT&C industry. On the one hand important software tools like .net Core and React have been listed under the MIT license, on the other hand well-known companies have reshaped their business models (Alphabet, Facebook) or have been acquired (Red Hat, Tableau etc.).

It looks like the big guys are diversifying their personnel and processes in order to offer better services, and are trying to adapt themselves to a rapidly changing economic context.

In the meantime a great number of IT startups are doing their best to attract classic investors,  crowd-funding or even venture capital, and stuck companies with experienced engineers are trying to reinvent themselves by taking over the clients switching from classic hosting to managed cloud hosting.

As a freelancer I'm up to date with the changing list of roles outsourced by companies in hi-tech countries. While in the first part of the decade numerous digital agencies and small telcos were looking for cheap, generalist workforce in order to preserve their competitiveness, for a couple of years the senior specialists (full stack developers, QA team leads, infrastructure engineers) have been more and more in demand.

This decade I've learned that the software tools, just like the hardware and all other products are evolving towards diversification and specialization. While 30-40 years before a software developer used to be considered really good when mastering a single programming language, nowadays the companies are looking for professionals with T-shaped skills.

This decade the biggest cloud hosting companies have learned that they have to offer multiple operating systems and tool sets, because the "Linux vs Windows" dispute is just ridiculous from the point of view of system integrators.

In a world where system software, programming and scripting languages are all just tools with their pros and cons, the project requirements are driving the right mix of hardware and software to be used.

Emotional debates about why a particular software is "good" or "bad" are missing the point: for what?  A startup with around 200 hits per hour does not always need a middleware with support for asynchronous operations, or a (No)SQL engine ready to scale horizontally.

When having a well modularized software project architecture, there is possible to change step by step the middleware, the database, the client apps.

The real problem is choosing between comparable tools like C# and F#,  Java and Scala, Python and Ruby etc. What I've learned during my 15+ years spent around open-source tools is that the community culture is what matters the most.

If you can identify yourself with the decisions, results and working style of the community leader(s), and you are feeling happy with the communication channels, then chances are that their project is a good fit for your product or service.

As always, while your job skills are enhanced, you are appreciated at work, by family and friends, the community is good for you. When you are experiencing persistent communication problems, infrequent updates, quality degradation, there are two main possibilities: try to change the negative trend to positive by contributing, or research and choose a different open-source project.

It can happen that your requirements have changed, or you have an opportunity to take your career to the next level - then again, be grateful for the good moments and for your growth, and follow your calling.



Saturday, November 30, 2019

Digital Nomads and Hourly Heroes


If telecommuting is your bread and butter, you already know the difference between these two ideatic figures dreamt by marketing and respectively business people.

Most laptop advertisings are depicting the digital nomad as an always worriless, jovial traveler selecting beautiful places for processing his or her to-do on the latest and greatest device.

The hourly heroes are expected to act as on-call gurus, experts, rock-stars or ninjas (you name it) in order to get things right, on-time and on-budget.

Daydreaming is not a bad thing per se, focusing from time to time on our goals and visualizing them are useful practices, but from wishful thinking to great achievements there is a never-ending iteration of working and learning processes. Along the way we learn which are the best and most important things for us, and how to achieve them.

Nowadays working online is rather a lifestyle than a temporary solution for youngsters and people between two jobs. The ubiquitous Internet supports us in acquiring the educational resources we need to reach one's potential, and then finding communities, where one's contributions are going to create added value.

The Internet has potentiated the development of a new, community-built culture, which is nurturing the democratization of the education.

For months we have been witnesses of more or less violent movements all over the world - many young people are out on the streets and protesting against various things, and often taking inappropriate actions.

The mass movements are always carrying the risk of being manipulated and diverted by bad guys. I trust that the new generation will learn their lesson well, and will manage to play down the segregationist practices, which are still affecting the education systems of multiple countries.



Sunday, October 27, 2019

A Farewell to SPAs


A medium-high complexity user interface includes many dozens of forms, and most of the time it has to manage big tables bound to highly interactive grid controls. In technical terms this does require creating, updating and deleting thousands of memory objects with high speed, and in a manner to keep the system responsive and protected from excessive memory fragmentation.

Pacifying the client device's responsivity with network round-trips and garbage collection cycles has always been a pain, and in this iron triangle of software architects the browser-based web applications are part of the problem rather than the solution.

The proliferation of the layered software architectures did not cure any major problem related to the user interfaces. Migrating a monolithic solution from WebForms to MVC does not enforce developers to sanitize the front-end.

Regardless of whether the UI forms are generated by the middleware or by client-side JavaScript, ignoring the fact that client-side memory management has low scalability is like shooting ourselves in the foot.

For a newcomer in web programming a SPA front-end sounds excellent, because by employing a JavaScript framework he or she is feeling able to offer great user experience. And he or she is right in case of software solutions which require very basic user interface.

In all the other cases the end-users are going to be faced with the infamous side effects of too many memory objects to be managed by the browser or even the local operating system.

I agree with the Z generation regarding the client-side form templating, but I want to see each complex form or table in a new browser tab, which is closed automatically as soon as possible. Nowadays each browser tab is running in its own process, and closing a tab is a very efficient way to clean up the memory garbage produced by the tab's owner process.

Instead of a SPA driven by a monolith I'm after a bunch of pages driven by services and microservices. Saying farewell to solutions based on a unique SPA is a "when" question, because growing client or server-side monoliths is invitation to problems.




Tuesday, August 20, 2019

What Should I Learn Next?

For IT workers this is THE million dollar question. I think most of us agree that keeping up with the latest technologies needs to be a recurring task in our calendars, but deciding on when to replace which of our software tools looks to me the most difficult problem faced by developers, architects and CIOs. 

Answering the question of what needs to be replaced next is driving the organization’s innovation and self-development processes towards realistic goals like leveraging the cloud technologies.

Moving into the cloud is a “when” question - these days running a VM does not cost more than a decent shared hosting package. And don’t be mad on your IT guy asking for your budget, ultimately that money amount decides what type of solution can you start from.

Let’s face it: since the advent of the Internet (token-based, routed, non-deterministic communication channel) and the dynamically evolving, diversified hardware and software, the reliability and maintainability of a given solution have become moving targets. The IT&C solution you are using is essentially a service, which needs maintenance, otherwise its quality and usability will  degrade in time.

Even if you are an end-user, you need to familiarize yourself with the changes in the software tools you are using, for you that’s the price of their evolution.

The owners of the “latest and greatest” software services have learned more or less on the hard way that the user needs have to be monitored and addressed as attentively as the ever-changing technical challenges. Beyond mastering the industry-specific management processes someday they will learn that staying relevant in the IT&C business is neither about populating the company with micromanaged guys nor about acquiring innovative teams. The right guys keep asking and answering  “what should I learn next…” 

Wednesday, May 1, 2019

It's About The Data


As a computer science student I loved to do things in my way, and now, after more than 30 years I'm still happy to express myself by elaborating personal projects, even if I consider very important to respect customers by offering them great user experience, and my engineer colleagues by valuing their processes.

With a BCS obtained in the 80s in a Comecon country, over the years I've had to dig my way out of improper tools and ignorance - just like most of my peers.

Due to life circumstances I've learned listening users attentively  and testing my code accurately long time before having the opportunity to join a team of engineers and working for the market. That time I knew nothing about processes, practices and habits, but as a synthetic thinker I was fascinated by the architecture of their product, one of the few integrated software packages available that time in my country.

Given that for decades capital deficiency has been one of the essential problems of my geographic zone, I've tried to do my best to meet people, who have been interested in attracting investors from other countries.

The global spread of the low-cost Internet has made  possible to millions of people like-minded to me to start telecommuting and learning proactively, not only following instructions. That was the moment when I realized that the knowledge of searching, filtering and analyzing data is one of the key skills for managing ourselves in the 21st century.

Then I've experienced the importance of the "learning by doing" method for developing and testing software, and I've taken courses for having a better understanding of the big picture: SDLC types and agile frameworks like scrum, lean and recently DevOps.

Taking a well-elaborated DevOps course has been of great help to me in understanding the importance of doing software development and maintenance in small steps, driven by hypothesis and experiments supported by data collected in production.

Filling data stores with numbers resulting from continuous monitoring or each visitor's route on a website is not about dehumanizing the relationship with users - listening the user voice (by the means of support, social networks and surveys) is also essential for gathering data in order to make the right decisions at the right time.

DevOps practitioners consider that starting from the lean practices and making use of automation, data mining, experimentation and continuous learning in rapid iterations is more efficient for navigating our globalized data lake, than prioritizing backlog items based on 1-2 person's opinions.

Monday, March 11, 2019

Growing Businesses for Selling

In Europe this type of business development does not have a long tradition, and even in the USA is not yet considered a classic solution for making money.

Selling a business after 10-20-30 years is not a new phenomenon. A solo founder may loose his or her interest over the years due to the technological and / or economical changes reshaping the original business, or willing to invest in a different activity, or just feeling the need to retire. The evolution of a partnership may experience various ups and downs, but at some point the founders may choose to  sell a big part of their shares.

Building a business from scratch with the aim of selling it for a good price is more like a new profession, because even if the target is merely financial, the founders need to put in the same effort  and dedication in growing their new business, as the initiators of a regular start-up.

As it always happens with sniffing out business opportunities, "many are called but few are chosen". People who don't have years of valuable work experience in filtering, interviewing and managing human resources, will usually find a too big challenge to keep the boat floating.

In other words if a group of investors do not have hands-on experience in HR & PM, their own start-up is the worst possible place to learn.

In the USA people who have already failed with three or more businesses are considered experienced, but who wants to pay that much for growing professionally?

While the board of directors are changing their personnel and decisions all the time, they are in the initial phases of a start-up, regardless of the company's age. In case their product or service offer is considered attractive, and they find sufficient investors for growing, but they don't choose the right tools and solutions for taking their business to the next level, then ...they will certainly gain experience.


Saturday, February 2, 2019

Offshore Teams - Good or Bad?

For employers is advantageous to acquire workers in conditions not met in their regions. A project manager skilled in working with human resources in a multicultural context can obtain good results with offshore teams.

In high tech countries the very old and very fresh software solutions are the best candidates for being outsourced - both are considerably less profitable and riskier than a mature product or service.

Outsourcing customer services and digital marketing jobs is already a common practice, and if a company has been able to externalize such activities without losing their customers, then the competition has to streamline their internal processes too.

Using chatbots as customer support representatives may be trendy and funny, but not of much help in resolving non-trivial problems, emergencies or filtering out fraudulent schemes. I consider that replacing skilled workers with AI is more a media buzz than an upcoming technology with real impact on the current markets, and employing offshore teams is one of the typical characteristics of the globalized economy rather than a transient fashion.

For employees the possibility of working in offshore teams usually represents an opportunity to fund their studies or to collect seed capital for a small business.

The catch with these externalized jobs is that the employers eventually will train the worker to do what he or she needs to get done, but nothing more and nothing else, many of them don’t even want to spend time and money with entry-level workforce.

In such conditions the remote worker has to keep taking carefully selected courses, has to search for possibilities for doing professional practice, and to choose contracts for consolidating his or her skills and job history.

It’s not easy to keep the right balance between a well-paying contract, permanent learning and taking up occasional jobs for pushing us out of our comfort zones. The temptation of a boring but materially rewarding job is always there, and it's nothing wrong with investing all our energies in a single project for a couple of weeks, or making money during 20-30 hours per week, but stagnating professionally is as expensive as ignoring our health.

Each project has a start date and an end date, regardless of how optimistic the project owners are. Consequently a contractor or employee working for remote clients has to assume the responsibility of pursuing a personal study plan and diversified work experiences - a need which consolidates the demand of educators and personal coaches ready for the challenges of our epoch.


Friday, January 25, 2019

Will Dumb Phones Survive Smartphones?

Last summer I attended a meeting with my former fellow students. After more than thirty years it was a pleasure to discuss with people who had been dreaming to teach math or to work with numbers in an epoch when no material advantages could be obtained by developing such skills.

We’ve graduated several years before the fall of the Berlin Wall, the latter being followed by significant changes in our lives - more of my former fellow students having now jobs in other countries. As many of them are now respectable senior teachers in public schools, I consider well-founded their concerns regarding the problems brought by the ubiquitous mobile devices.

Our generation used to employ classic tools for learning, we enjoyed rich social life, and our  personal relationships are still based on direct meetings rather than messaging tools. For a teacher of our generation may be disappointing to see all over the place youngsters absorbed in their smartphones, or wasting their free hours in front of a computer game and chatting instead of spending time together.

One of my former group-mates as a mother of three and as a teacher has been particularly concerned about today's teenagers, many of them apparently addicted to their smartphones. I attempted to calm her by saying “don-t worry, smartphones will disappear ...it won’t happen during the next two weeks, but they are going to be replaced gradually by other tools”. My words have taken her by surprise, but at least I felt I was able to offer her a different perspective.

Many of our generation are sharing the preoccupation for the future of today's kids, the most pessimistic of them envisioning a society of consumer-zombies unable to face real-life challenges.

Regarding the brainwashing effect of smartphones I’m considering myself an optimist. The technology, which has turned mobile devices into consumer goods it’s not yet mature, and as all products, the mobile devices have already started to follow the rule of diversification and specialization.

Several marketing authorities keep telling that Microsoft’s efforts put in popularizing tablets are mistaken, because people are wishing smartphones and are spending money on phones rather than tablets.

In my opinion the smartphone’s form factor is the real winner, being very handy for a high variety of activities. The guys from Microsoft have invested in IoT, and in time the smart things will have a consistently valuable market.

Each industry has its toolset, and very likely each group of people with specific needs are going to have their particular smart kits equipped with sensors and software developed for them. Those smart kits may accespt optional and autonomous extensions like wearables.

Taking in account that a modern basic phone is small enough to be shaped as a wearable, it does not always makes sense to put the phone in the same box with the computer (smart phones are in fact computers), but it's important to assure good integration between them.

So yes, I believe that in future we will have the possibility to choose from a high variety of smart devices, and there will be trendy again to talk to each other.


Thursday, December 20, 2018

Insignificant Projects

Bigger IT&C companies always have less important projects used for growing young talents, and identifying the right persons for their teams working on the company's most important products.

Employing unimportant projects for developing the skills of new employees is a good opportunity for exploring their strengths.

It can happen that a product idea proposed by a debutant with evident technical and managerial skills gets at the top of the agenda for some time, even if it's not considered really important by the board of directors. The way a person is dealing with the raise and fall of his or her popularity shows whether he or she is ready to be part of a mature team.

The problems start when the unimportant projects are getting out of the door, and the company’s customers are not informed about the new offer's highly experimental nature.

For an outsider it’s very difficult to make difference between a public beta representing the next member of a well-established company’s product line, and a MVP booked as operational cost rather than investment in the company's future.

In case of startups and free-source teams the early adopters are knowingly assuming the problems caused by unexpected bugs and technical limitations, and respectively the risk, that the product could be discontinued anytime.

Unfortunately it’s a common situation, that a software MVP gains popularity and the original company staying behind it has no willingness to develop and maintain the proper product, or it turns out to be a disappointing manager of a new concept, which needs different approach in comparison with their already mature products.

That's why the to-be product architects with strong personalities, great talent, courage and perseverance are leaving the big companies for building the products they've dreamed of.


Saturday, December 15, 2018

Procrastination and Bargaining

Although making a to-be or current partner to feel insecure about the future of your cooperation is considered a classic negotiation strategy, I prefer to avoid obligating myself to people with such attitude.

One of these influential but all in all professional interviewers asked me to make them happy by doing things in a manner they considered beneficial for the project I were going to contribute to ...and the least professional dealer I’ve ever met required me to not ask him for any kind of recommendation, because he was not willing to decorate anyone’s CV.

The theatrical nature of such claims is evident for someone accostumed to dealing with people, and they are certainly not easing the communication flow between strangers.

Procrastination is okay when you are in the situation to manage emotional discussions with children or difficult people, who are not ready to participate in a dialog based on facts and logical arguments.

When developing a strong, mature partnership is at stake, applying psychological pressure is counterproductive. It’s understandable if someone is doing small “tests” for exploring his/her new friend's personality and intentions, but these “tests” need to take advantage of real-life situations rather than theoretical quizzes.

The same goes for the trial job period. A good actor may perform better during an interview than a good professional, and there is no way to filtering out people who will eventually fail in certain conditions.

For me an interviewer who keeps showing undecided attitude over more meetings signals that’s time to withdraw my bid.

For well-defined short-term needs it makes sense identifying the human resources, products or services which are currently available underprice, but trying to keep alive a company built on the culture of “cutting costs at all costs” looks a nonsense on a saturated market.