Friday, May 18, 2018

The present and future of Quantum Computing

Google, Intel, IBM, Alibaba, and many other established companies and startups alike are racing to see who can overcome the limitations that the nature itself imposes on the current semiconductor fabrication process technology. Their hope is to enter the quantum realm, where the laws of physics don’t work as we’re used to and develop the next generation of supercomputers: quantum computers. 

The End of Moore's Law

Ever since Gordon Moore, the co-founder of Fairchild Semiconductor and Intel, observed in 1965 that the number of components per integrated circuit doubles roughly every two years, the advancements in digital electronics have been following a predictable pattern.

In 2010, the International Technology Roadmap for Semiconductors predicted a slowdown of the trend, and Moore himself foresaw the end of an era when he stated that Moore's law would be dead in the next decade or so.

"Now we're getting to the point where it's more and more difficult, and some of the laws are quite fundamental", said Moore in an interview in 2015. "We're very close to the atomic limitation now. We take advantage of all the speed we can get, but the velocity of light limits performance. These are fundamentals I don't see how we [will] ever get around. And in the next couple of generations, we're right up against them."

Currently, most computer chips are being manufactured using the 14-nanometer lithography process. For comparison, the human immunodeficiency virus (HIV) is roughly spherical with a diameter of about 120 nm. The next step is the 10-nanometer lithography process. At this size, the wires inside integrated circuits become so small that the barrier layer takes up most of the interconnect, leaving less space for the copper itself. 

While approaching the size of an atom is extremely difficult, getting past it is a whole another story, which is where quantum computing comes in.

The Beginning of Quantum Era

"The exciting thing about quantum computers is that they work fundamentally differently from today's computers", explains Terry Hickey, IBM Global Business Services Business leader for Cognitive & Analytics.

In traditional computers, bits are the smallest units of information. Each bit can have one of two possible values: a one or a zero. As such, a bit roughly corresponds to a switch with one on position and one off position.

"In contrast, a quantum computer makes use of quantum bits, or qubits, where each can represent a one, a zero, or both at once, which is known as superposition. This property along with other quantum effects enable quantum computers to perform certain calculations vastly faster than classic computers", says Hickey. 

A qubit can be any two-level quantum system, such as the polarization encoding of a photon, the electronic spin of an electron, or the nuclear spin of a nucleus. "We can also prepare qubits in a quantum superposition of 0 and 1 and create nontrivial correlated states of a number of qubits, so-called 'entangled states'", says Alexey Fedorov, a physicist at the Moscow Institute of Physics and Technology.

Entangled states are closed connections that make each of the qubits react to a change in the other's state instantaneously, no matter how far apart they are. This quantum phenomenon makes it possible to directly deduce properties of all entangled qubits by measuring just one entangled qubit, allowing quantum computers to store massive amounts of information using less energy than traditional computers.

Quantum Supremacy

Quantum computers are exciting and promising, but they're still outperformed by machines that rely on the same manufacturing process that has fueled the information age - so far. We're rapidly approaching a point called quantum supremacy, which is when quantum machines will be able to do calculations that existing computers aren't capable of processing.

"Hopes of reaching quantum supremacy have been dashed before. For some time, researchers thought that a 49-qubit machine would be enough, but last year researchers at IBM were able to simulate a 49-qubit quantum system on a conventional computer", write Martin Giles and Will Knight.

Intel unveiled its 49-qubit quantum computer early in 2018, at the International Consumer Electronics Show (CES), falling just one qubit behind IBM's 50-qubit prototype quantum computer. In March 2018, however, Google took the quantum crown when the company introduced its new quantum processor, codenamed Bristlecone, with 72 qubits.

"We are cautiously optimistic that quantum supremacy can be achieved with Bristlecone, and feel that learning to build and operate devices at this level of performance is an exciting challenge! We look forward to sharing the results and allowing collaborators to run experiments in the future", posted Julian Kelly, Research Scientist at Google's Quantum AI Lab.

"Operating a device such as Bristlecone at low system error requires harmony between a full stack of technology ranging from software and control electronics to the processor itself. Getting this right requires careful systems engineering over several iterations."

However, even Google's quantum workhorse has nowhere near as many qubits as best D-wave systems. This Vancouver-based company sells a quantum computer chip, called D-Wave 2000Q, with 2048 physical qubits.

"With 2000 qubits and new control features, the new system can solve larger problems than was previously possible, with faster performance, providing a big step toward production applications in optimization, cybersecurity, machine learning, and sampling", stated D-Wave in an official announcement.

The first customer for the D-Wave 2000Q quantum computer chip was Temporal Defense Systems Inc. (TDS), a cutting-edge cybersecurity firm. Many researchers, however, believe that the D-wave systems are not true quantum computers because the underlying ideas for the D-Wave approach arose from experimental results in condensed matter physics, not from the conventional quantum information field.

Use Cases for Quantum Computing

A research report from Morgan Stanley predicts quantum computing to double the high-end computing market from 5 billion USD to 10 billion USD. "Quantum computing is at an inflection point- moving from fundamental theoretical research to an engineering development phase, including commercial experiments", the report states.

According to Morgan Stanley, traditional transistor won't go to Silicon Heaven any time soon because quantum computing is not suited to all compute tasks. The vast majority of devices, including smartphones, personal computers, and web servers will continue to run on current technology, but a small subset of high-end compute platform may start its transition to quantum technology not long from now, around 2025.

"The classical computer is a large calculator that is very good at calculus and step-by-step analytics, whereas the quantum computer looks at solving problems from a higher point of view. Quantum computing does not make the classic computer irrelevant-smartphones and laptops will still use transistors for the foreseeable future, and the transition might take several years."

Even though quantum computers are not yet ready for primetime, we can already identify several use cases for quantum computing, including those described below. 


Today's cryptography is extremely secure against brute force attacks executed using traditional computers. For example, it would take even the most powerful supercomputer in the world such an absurdly huge amount of time to break a symmetric 256-bit key that even our sun wouldn't be here to finally see someone succeed.

But quantum computers operate on different principles to traditional computers, and they are especially great for solving particular mathematical problems, such as those underlying modern cryptography.

"For public key cryptography, the damage from quantum computers will be catastrophic", said Lily Chen, mathematician and leader of the National Institute of Standards and Technology's Cryptographic Technology Group, in a session at the American Association for the Advancement of Science's 2018 annual meeting in Austin, Texas.

One possible approach how to secure cryptography against quantum computers might involve the use of quantum-based cryptographic systems. As such, the very technology that could render today's cryptography obsolete could also give us the cryptography of tomorrow. 


In September 2017, the peer-reviewed academic journal of the American Association for the Advancement of Science, reported that a quantum computer simulated the behavior of beryllium hydride. While beryllium hydride is a relatively simple molecule, its simulation is seen by physicists and chemists as a step toward a new way to discover drugs and materials.

"Researchers are also excited about the prospect of using quantum computers to model complicated chemical reactions, a task that conventional supercomputers aren't very good at all", write Abigail Beall and Matt Reynolds in their Wired article. "Eventually, researchers hope they'll be able to use quantum simulations to design entirely new molecules for use in medicine."

Simulations run on quantum computers could also make existing treatments, such as radiation therapy, more effective. Current software and hardware used by medical dosimetrist to calculate the best possible radiation dose cannot guarantee optimal results as there are far too many variables to take into account. Quantum computers of the future could, however, do just that and make this and many other existing treatments far more effective. 

Artificial Intelligence

"The promise is that quantum computers will allow for quick analysis and integration of our enormous data sets which will improve and transform our machine learning and artificial intelligence capabilities", writes internationally best-selling author and keynote speaker Bernard Marr.

According to Seth Lloyd, a physicist at the Massachusetts Institute of Technology and a quantum-computing pioneer, 60 qubits should be enough to encode an amount of data equivalent to that produced by humanity in a year.

The ability to store and process massive amounts of data makes quantum computers perfect for machine-learning techniques, which are responsible for getting computers to act without being explicitly programmed.


There are still many challenges for quantum computing, but researchers across multiple fields have been able to achieve great success and overcome obstacles that would seem insurmountable not too long ago. We don't know yet exactly what advancements quantum computing will enable. It seems, however, that it could be a major driving element of a fourth industrial revolution and usher in an era of rapid productivity growth. 


Monday, April 30, 2018

How to become a professional software developer

Employment of software developers is growing faster than the average for all occupations. The Bureau of Labor Statistics projects a growth of 24 percent from 2016 to 2026, which translates into 302,500 new job openings for software developers.

Despite the abundance of job openings for software developers, only around 3 percent of college students graduate with a degree in computer science, according to Computer Science Education WeekWhat is perhaps even more surprising is the fact that only 8 percent of graduates are in computer science.

One possible explanation for the discrepancy between the high demand for software developers and the low supply of recent graduates who want to become professional software developers is the seemingly thorny path that leads to many attractive software development jobs.

Many people believe that the median annual wage for software developers, which is currently around USD 100,000.00, is reserved for a small handful of extraordinarily talented developers who have been programming since childhood and have a natural aptitude for math.

In this article, I try to dispel some of the myths that surround the profession and lay down a clear path for aspiring developers to follow.

Do I need a degree to become a professional software developer?

In 2012, Microsoft published a study which showed that less than one-fourth to less than one-half of workers in computing occupations have a computer science degree. As noted back in 1998 by the Government Accounting Office, "IT workers come from a variety of educational backgrounds and have a variety of educational credentials such as master’s degrees, associate degrees, or special certifications."

In fact, 36 percent of IT workers do not hold a college degree at all, as explained in a 2013 paper from Economic Policy Institute, which reviewed and analyzed the STEM labor market and workforce. Furthermore, a 2015 software developer survey conducted by Stack Overflow, an online community where software developers and others ask tough questions and get answers from their peers, revealed that over 40 percent of software developers are self-taught.

Considering these numbers, it is clear that one does not need a degree to become a professional software developer. As I'll explain more in the following section of this article, software developers are judged mainly by their skills and professional experience and not by their educational background.

Of course, having a computer science degree from a prestigious university can increase one's chances of landing a great job, but it is just one of many things to which recruiters and interviewers pay attention.

Do you have to be good at math to be a good software developer?

Every day, there is a new thread on some programming forum posted by someone wondering whether they need to be good at math to be good at developing software. The answer to this question is simple: no. But it takes more than one word to get to the bottom of the issue.

There is a good reason why people who are good at math have a natural inclination toward software development. Both math and programming are about breaking down complex problems into smaller parts and spotting patterns.

Or you can just take the word of Richard P. Gabriel, an American computer scientist who is known for his work related to the Lisp programming language and his essay Lisp: Good News, Bad News, How to Win Big, who said, "Programmers are not mathematicians, no matter how much we wish for it."

But just because software developers are not mathematicians does not mean that math has no place in software development - far from it! There are many areas of software development, such as data cleaning, data aggregation, anomaly detection, game development, 3D imaging, or graphics in general, where a solid grasp of fairly complex math (variable calculus, discrete mathematics, derivatives, integrals, statistics, many physical equations, just to give a few examples) is essential. 

Lalit Kundu, who works in Google's core payments backend team as a software engineer, provides some examples of the math he used since he started working for Google in his post on Quora. "Depending on the team and field you’re working in, the amount of maths you’ve to know could range from high school algebra to graduate level stuff", Lalit says.

Because the world of software development is so complex and large, there is a place for every software developer regardless of their knowledge of math. The key is to be honest during the interview process to avoid getting a job that would be better suited for someone with a different skillset.

Which programming language should I learn?

Wikipedia currently lists around 750 programming languages. Needless to say, only a fraction of the languages listed on Wikipedia are used in practice, and even fewer are useful for becoming a professional software developer.

Every year, GitHub, a web-based hosting service for version control that provides access control and several collaboration features such as bug tracking, feature requests, task management, and wikis for every project hosted there, publishes its State of the Octoverse report, showing, among other things, which programming languages are on the rise, and which are on their way to obsolescence.

In 2017, the top 15 most popular languages on GitHub were JavaScript, Python, Java, Ruby, PHP, C++, CSS, C#, Go, C, TypeScript, Shell, Swift, Scala, and Objective-C, in this order. 

With 2.3 million pull requests, JavaScript is more than twice as popular as the second most popular programming language, which is Python. The fifth most popular programming language, PHP, is more than four times less popular than JavaScript, and the tenth most popular programming language, C, is almost ten times less popular than JavaScript. 

However, only because a certain programming language is popular, does not necessarily mean it’s sought after by employers, nor does it make it the best choice for solving every problem. In other words, if you plan a lifelong career as a software developer, be prepared to learn multiple programming languages. Once you learn just two languages, you realize that it does not really matter all that much which language you study first, or even which language you choose as your primary, because software development is more about being able to divide complex problems into smaller and simpler pieces and understanding popular software development practices and patterns, which comes with practice and experience.

As software engineer Mahesh Mathapati excellently puts it in his post on Quora, "[Programming languages] are mere mediums to convert logic into instructions which computers can understand. Don't worry about them now, you will learn them in 4 years engineering course. The real gems are your aptitude, analytical skills, basic mathematics, understanding of the problem, good communication skills to explain yourself to colleagues and clients, etc."

How can I gain programming experience?

Companies do not expect software developers applying for a job to have a computer science degree, but they do expect them to have some kind of proof that they are qualified.

Arguably the best way how a software developer can demonstrate their skills, and improve them at the same time, is to build software. 

Personal projects that solve real problems in a demonstrable way and earn praise from the wider developer community are an excellent way to impress an interviewer and land a job. Some software developers take things a step further and purposefully build software with the same software stack the company they would like to land a job at uses.

Besides projects, internships are also a great way to gain hands-on programming experience and learn how teams of professional software developers function. While paid internships are becoming harder and harder to come by, even unpaid internships could pay off further down the road. 

How to stand out and get a job?

Having excellent software development skills is not enough to stand out from other equally skilled software developers. While working on projects and learning various programming languages, software developers who want to make it big in the industry should also focus on cultivating their professional network.

Software developers gather in places such as Stack Overflow, GitHub, Reddit, LinkedIn, Medium, or Quora, where they ask questions, submit answers, post blog posts, and publish source code. Having a solid online presence can be a huge advantage when looking for a job since 40 percent of new hires come via employee referral, according to Jobvite.

Last but definitely not least, software developers should not forget about their soft skills. Professional software development is a team effort, and there is very limited space for software developers who struggle to express themselves and cooperate with others.  


More people can become software developers than they realize. One does not need a computer science degree to get a job as a software developer, and one certainly does not need to be a math whiz to develop software applications used by millions of people around the world. 

What is needed is an aptitude for breaking down complex problems into smaller parts and the willingness to constantly learn new things in order to keep up with new technologies and thinking models.


Sunday, April 29, 2018

Compliance with EU-DSGVO / GDPR

Dear readers of my blog,

in order to comply with the EU-DSGVO / GDRP I unfortunately had to disable some functionality, notably the option to leave comments and the social media share-buttons below my blog posts.

The new regulation requires a double-opt-in mechanism for these functions that I cannot implement on this blog without notable effort.

My site is completely ad-free and has no kind of monetarization. I can only attend to it in my spare time and I do not want to risk any legal issues.

Thanks for your understanding.

Friday, March 9, 2018

Status Quo of #Blockchain

Not even 10 years after an unknown person or group of people under the name Satoshi Nakamoto invented Bitcoin, the first cryptocurrency in the world, the technology underpinning Nakamoto's creation is everywhere, promising to change the world as we know it. 

That technology is called blockchain, and Bitcoin uses this innovative ledger to record transactions that happen on its peer-to-peer, decentralized network. But financial record-keeping is not blockchain’s only forte. What makes blockchain special is its ability to ensure immutability without any trusted authority.

This key property of blockchain technology makes it suitable for a number of different applications, the most promising of which we explore in this article. But before we get to how blockchain technology could lead to the global disruption of established institutions and entire industries, we find it appropriate to take a closer look at blockchain's present state.

Blockchain has come a long way

Mike Gault, the CEO of Estonia's technology vendor Guardtime, defines blockchain as "an append-only data structure that contains data records that are cryptographically linked together." According to Gault's definition, "Data records are added to the data structure when multiple distributed parties come to a consensus based on pre-agreed rules." Gault has provided this definition in response to the rapidly growing number projects that are developing blockchain-based solutions that widely differ from the blockchain Satoshi Nakamoto created for his disruptive cryptocurrency.

Bitcoin as well as Ethereum, the most popular blockchain-based computing platform in the world, allow for the creation of the so-called Decentralized Applications, or DApps for short. At the time of writing this article, there are almost 1,100 DApps listed on the State of the DApps website. Confusingly enough, Bitcoin, Ethereum, and other altcoins, which are alternative cryptocurrencies launched after the success of Bitcoin, are also DApps because their backend code runs on a decentralized peer-to-peer network.

For example, Augur, one of the most popular Ethereum-based DApps, is using a blockchain-based betting system and the knowledge of the masses to create a forecasting tool capable of accurately predicting the outcomes of real-world events. 
What Augur and many other DApps illustrate is just how incredibly far blockchain technology has come in less than a decade since it first gained traction. Today, there are several large blockchain enterprise alliances, including Enterprise Ethereum Alliance and its 250+ members, Hyperledger, and R3, and annual revenue for the enterprise blockchain market is expected to increase from approximately 2.5bn USD worldwide in 2016 to 19.9bn USD by 2025, with a CAGR of 26.2%, according to the State of Blockchain report from Coinbase

Non-Crypto applications of Blockchain technology

While cryptocurrencies, and their wild price fluctuations, are still the main reason why blockchain technology makes headlines, non-crypto applications of blockchain technology make futurologists excited the most. 

Contract Negotiation 

Blockchain technology allows for the execution of smart contracts, which are computer programs intended to digitally facilitate, verify, or enforce the negotiation or performance of a contract. Smart contracts were coined by computer scientist Nick Szabo before Satoshi Nakamoto created Bitcoin. Many experts expect smart contracts to replace traditional paper contracts, naming complete immutability and enhanced transparency as two biggest advantages of this nascent technology.

Because smart contracts are programmable and self-executing, they can be triggered automatically when a set of preconditions are met. For example, a smart contract between a customer and an e-commerce store could replace a third-party escrow service.

Supply Chain Management 

Blockchain could be a game-changer for supply chain management as traceability and transparency are among the most important foundations of logistics. "Blockchain offers a shared ledger that is updated and validated in real time with each network participant. It enables equal visibility of activities and reveals where an asset is at any point in time, who owns it and what condition it's in", IBM explains some of the benefits of supply chain management with blockchain.

The pharmaceutical industry has been struggling to secure its supply chain and prevent fake drugs from entering the market for a long time, and it is now starting to see blockchain technology as a potential solution to its problems. Pistoia Alliance survey revealed that 83% of the leaders in life sciences think that blockchain will be adopted as a data housing solution in the next 5 years and 22% of life science companies are already using or experimenting with blockchain.

Record Keeping 

Because blockchain is essentially a distributed database, it can be used for all kinds of record keeping. In 2017 Dubai's land registrar has revealed it is developing a system that would seek to record all local real estate contracts on a blockchain, according to Coindesk. Dubai's aim is to unite all real estate and department services on a single blockchain-based platform and achieve this goal by the year 2020.

Dubai hopes that the move to blockchain will save the city money in the long run as an average person will move to a new location nearly 12 times in their lifetime, and each move is not legally possible without someone pulling information from the system and putting new information in. Blockchain would open Dubai's real estate market to investors around the world, giving them a way how to verify property data. It would also connect renters with landlords and property-related billers.

Another form of record-keeping to which blockchain technology can be applied is the management of digital identities, including passports, birth certificates, wedding certificates, personal IDs, and even online accounts.

Cloud Storage

Right now, virtually all cloud storage services are centralized, which means that the users must place their trust in a single cloud storage provider. Blockchain could disrupt the existing cloud storage model and usher in an era of decentralized cloud storage services with enhanced security and guaranteed ownership of personal data.

One such cloud storage service, Storj, is currently preparing for launch, promising 99.99999% availability, fully distributed infrastructure, end-to-end encryption, and extremely low prices per GB of stored data.

Digital Voting

"Many states use voting machines that are over 10 years old that are not only antiquated and failing, they are also becoming increasingly expensive to maintain as parts are no longer manufactured. Election fraud undermines the very fabric of democracy" stated Blockchain Technologies Corp, a company that wants to replace existing voting machines with blockchain-based voting systems.

Estonia has already implemented a unique e-voting platform that uses blockchain technology to guarantee flawless availability, transparency, and an unprecedented level of fraud protection. Many other countries around the world are currently considering implementing systems based on the one used by the government of Estonia.

Potential roadblocks to the wider adoption of Blockchain

Blockchain technology will be able to fully realize its potential only if it overcomes the most serious roadblocks to its wider adoption.


The soon-to-be-implemented General Data Protection Regulation (GDPR) by which the European Parliament, the Council of the European Union, and the European Commission intend to harmonize data privacy laws across Europe, to protect and empower all EU citizens data privacy, and to reshape the way organizations across the region approach data privacy  is one such roadblock.

The GDPR stands in the way of wider blockchain adoption for two main reasons: because of the fact that personal data is not to leave the EU, and because it demands that user's personal data is rectified or deleted under many circumstances.

According to Jan Philipp Albrecht, the member of the European Parliament who shepherded the regulation, the GDPR "is agnostic about which specific technology is used for the processing, but it introduces a mandatory obligation for data controllers to apply the principle of data protection by design. This means, for example, that the data subject’s rights can be easily exercised, including the right to deletion of data when it is no longer needed."

Considering that immutability is a key characteristic of blockchain technology, to say that it does not mix well with the GDPR would be an understatement. "Certain technologies will not be compatible with the GDPR" said Albrecht. "This does not mean that blockchain technology, in general, has to adapt to the GDPR, it just means that it probably cannot be used for the processing of personal data."


In its present form, blockchain technology is severely limited by its insufficient scalability. Visa is known to handle around 2,000 transactions per second on average and up to 4,000 transactions per second during high shopping periods. The total capacity of the entire Visa network is expected to be over 50,000 transactions per second.

PayPal handles considerably fewer transactions every second, over 100, but that is still a lot compared to the maximum number of transactions per second of Ethereum: only 15. With the current consensus rules, Bitcoin can only process around 7 transactions every second.

"The Ethereum community, key developers and researchers and others have always recognized scalability as perhaps the single most important key technical challenge that needs to be solved in order for blockchain applications to reach mass adoption" writes Vitalik Buterin, the mastermind behind Ethereum. "Blockchain scalability is difficult primarily because a typical blockchain design requires every node in the network to process every transaction, which limits the transaction processing capacity of the entire system to the capacity of a single node."


Blockchain technology is evolving rapidly, and there have already been a number of practical applications, with considerably more  currently being in various stages of development. If blockchain developers succeed in overcoming the most serious roadblocks to its wider adoption, blockchain could become one of the most transformative technologies of the 21st century - if not the most transformative. 


Tuesday, February 13, 2018

Secrets to Successful Team Management

Behind every strong company are strong teams. And behind every strong team is a capable team manager who directs the team's focus and knows how to create an environment that allows individual team members to perform at their peak potential.

The focus of this article are the numerous techniques used by successful team managers to help their team grow and overcome even the most difficult challenges. When applied correctly, the techniques and strategies described in this article can have a significant positive effect on a company’s bottom line, productivity, and culture. 

Start with the Right Mindset

Many team managers start on the wrong foot by approaching their team with a wrong mindset. Especially when managing software developers, team managers must realize and keep in mind that they are responsible for highly intelligent, talented individuals with an abundance of creativity and excellent problem-solving skills. 

This fact is a common source of problems for inexperienced team managers, who tend to clash with opinionated team members over trifling issues. In contrast, experience team managers take full advantage of the aptitude of their team by maintaining an open mind and supporting the team’s technical decisions by not enforcing strict requirements. 

As we will explain in the following chapters, the right mindset of a team manager is actually the mindset of a leader. Unlike a manager, whose primary quality is the ability to control or administer, leader empowers and inspires. 

"A leader is at his best when people barely know he exists, when the work is done, the team will say: we did it ourselves. This is because the leader has empowered the team so much and they have become so competent that they are mini-leaders themselves, thus the leader is leading without actually leading them. This must be the highest form of leadership. Lead without leading", paraphrases the Chief Trainer Coach at Asia Coaching Training, Andy Ng, the ancient Chinese military strategist Sun Tzu. 

Provide a Strong Vision Statement

A strong vision statement is a critical component of any great strategic plan. Often confused with a mission statement, which explains why a company exists, a vision statement paints a picture of where a company is going. As such, a vision statement succinctly and clearly articulates an inspiring vision of a future which team members, as well as all stakeholders and even customers, can identify with at the emotional level. 

A strong vision statement is like a powerful inspirational speech, except that it is typically just a few words long. Some of the most powerful vision statements ever conceived talk about a distant yet reachable future. They are also direct, descriptive, and often audacious. They do not talk about revenue projections, shareholders, nor competition. Instead, they envision a common benefit whose importance is immediately clear to everyone regardless of their affiliation with the company the statement represents. 

Experienced and successful team managers understand the power of a strong vision statement to realize the full potential of their team, and they use it to their advantage. We can draw on years’ worth of scientific research in the field of management to illustrate just how effective of a tool a vision statement can be. For example, a 2014 report from TINYpulse surveyed over 500 organizations worldwide and analyzed more than 200,000 anonymous employee responses to answer a simple question: what motivates employees to go the extra mile? 

Perhaps surprisingly, the number one influence in encouraging employees to outperform expectations was camaraderie, the spirit of friendly good-fellowship associated with soldiers, who fight united to overcome seemingly insurmountable obstacles. Furthermore, nearly two-thirds of all employees felt discouraged by the lack of a strong company culture, which is to say by the lack of a strong vision that would motivate employees to strive for excellence.

A team manager must be trained to recognize that their team lacks a purpose and come up with a strong vision statement to provide it. 

Set Constraints

Once team members have a purpose, they need a plan. "This plan, designed by managers, should be set before the actual work begins. Managers should continuously encourage every developer to stick to the established plan", writes CEO & President of UM Technologies and its partner companies Scott Stiner.

In software development, agile provides a proven and tested time-boxed approach based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams, as described by the Agile Alliance. In other words, agile sets constraints as to what gets built in a given time frame and ensures that everyone focuses only on the plan ahead. 

Again, the work of a team manager does not end after a plan has been designed- far from it. A team manager should act as a filter against outside noise. We say "filter" on purpose because a good team manager knows which information they should allow to reach the team and which they should block before it distracts everyone for no good reason.

A team manager's job is to allow their team to be as productive as possible. That means handling non-development work so that everyone else on the team does not have to worry about it. "For example, if managers are coders, they can assist in writing tests to make it easier for developers to continue with their assigned tasks", Stiner explains. 

Foster Healthy Relationships

Each team member should feel that the team manager has his or her back - not that the manager is on his or her back. "Most projects fail because of people, not technology. You are managing a team of people. Humans. Humans are weird, complex creatures", Peter Kelly provides a perspective of a seasoned software engineer with over 15 years of experience under his belt. "Hiring, nurturing, coaching, maintaining and organizing a team of humans and managing that team to success on projects is the main job of a software manager."

All team managers will do themselves and their employees a huge favor if they build relationships based on transparency and trust rather than controlling and reporting. Active listening and proactive communication are two foundational prerequisites for building this kind of relationship. It is easy to fall into the trap of simply walking around the office and asking individual team members how they are doing, but such effort is futile if not supported by genuine desire to establish respectful bonds.

This brings us back to where we started: the importance of having the right mindset. It is impossible for any team manager to foster healthy relationships with team members unless the manager trusts the team members to do their jobs. As Ilja Preuß, a software developer at Disy Informationssysteme GmbH, suggests, "Find out what the developers like to do and find a way to let them do it so that it benefits the company. The most motivated people are those who do what they like doing."

When team members see that the team manager believes in them and goes above and beyond trying to remove every obstacle to allow them to focus on their work, they are much more likely to support the team manager's decisions when the going gets tough, which can be the difference between a team that sticks together and surmounts even the most difficult of challenges and a team that crumbles under the pressure of a deadline, unforeseen complications, or some last-minute change request.

In fact, a study from Office Team examining the impact of appreciation, or lack thereof, in the workplace found that 66 percent of employees would "likely leave their job because they didn’t feel appreciated" and the number jumped to 76 percent among millennials, who are generally known for placing a higher value on healthy company relationships than previous generations. 

The ability to show genuine appreciation and naturally communicate on a personal level is where the difference between average and exceptional team managers shows the most. Exceptional team managers have an innate understanding of the fact that team members who feel respected and valued work harder. They are not only able to praise and recognize a fruitful effort, but they also feel the need to do so because they understand that the recognition of efforts is one of the most important functions of a manager. 

"Think of leadership like computer programming. Dedicate some time to the backend to create a strong team and set them up for success. Come launch time, just step back and admire as they thrive. As a leader, you will know you have successfully built a strong team when they work effortlessly without you. The icing on the cake? Although they don’t rely on you to function, they still want you there", Marketing Strategist Taunya Williams summarizes what the role of team manager should be about. 


The role of team manager requires a broad range of personal competencies, not all of which can be easily acquired from books or experience. The best team managers give their team members a sense of feeling that they are strongly supported, valued, and trusted. They motivate by creating a strong vision statement behind which everyone can rally, and they help their team maintain focus on what really matters by filtering out what does not matter. Perhaps above all, excellent team managers foster healthy relationships with individual team members and understand the value of making someone feel appreciated. 


Saturday, January 20, 2018

How can DevOps contribute to Digital Transformation and Innovation?

When we talk about Digital Transformation, we soon think of innovation, technology, e-commerce, social networks, mobility, among others, as well as transforming something that was physical into digital, such as banking services, which were previously offered through physical banking agencies and are now available through internet banking, bringing all the convenience to the end user with high availability and without restriction of time or space.

However, for a company to transform digitally and innovate, we must develop and make available new services and products that generate value for the business and that allow the user a rewarding experience in the use of these services or products. It is necessary to go beyond simply providing an e-commerce or an app on Google Play and the App Store. A cultural change is essential.

In this article we will discuss the importance of DevOps to help companies in the digital transformation and innovation. Agility in deliveries is essential in this transformation process. But before we go there, we will take a look some basic concepts that are behind DevOps.

What exactly is DevOps?

DevOps is the result of a join between Development and Operations. According to the precepts of this term, those responsible for creating or improving software should act in an integrated manner with the professionals who maintain the applications on a daily basis and also with the IT infrastructure that supports those systems. DevOps proposes, therefore, the union between creation and maintenance of IT solutions in order to create a process of continuous improvement.

In a way, this concept opposes the traditional way of development, which is the delivery of large program releases after a long development process. In this scenario, it was the job of technicians to simply deploy software according to the needs of the customer and keep it working. The software only advanced when a new version was developed and released.

In DevOps, Development teams and IT infrastructure managers work in constant communication to improve services over very short periods of time. In this way, errors are promptly analyzed and corrected and improvements can be incorporated into the solution much quicker than before. 

Benefits of Using DevOps for Businesses

For how projects are conducted in companies, DevOps brings benefits of time optimization and effort by proposing smaller development cycles, collaborative work, and breaking paradigms between the areas involved. In addition, it always aims to generate revenue and avoid unnecessary costs.

Working with DevOps also brings benefits such as integration with trends such as Cloud Computing (including hybrid clouds), PaaS, SaaS and IaaS, which together reduce operating costs considerably and make maintenance much easier. The development is completely focused on the effective challenges of the client, implementing and delivering solutions  almost immediately.

Automation tools and dashboards help more easily track metrics and results, provide means of automated deployment processes and quality assurance tasks.

DevOps facilitates teamwork and communication across previously strongly seperated departments of the organization, aiding your team building efforts and reducing silos. It manages to raise the quality of collaborative work and helps teams become more receptive to cultural change and see value in this measure.

All this helps the company to meet processes and demands with greater excellence, supported by the use of automation tools and results. In the end, always focusing on a promising cultural change to positively transform the way the company does business.

How to make DevOps work?

Making DevOps work effectively in IT requires some profound changes. First, it is necessary to integrate areas that, until recently, were considered as very distant: development and operations. To put these professionals side by side, one must work on aligning processes, policies and protocols, ensuring that integration is organic. It is also necessary to invest in resource automation and standardization of responses, ensuring that solutions follow an agile and predictable flow, bringing concrete results.

The agility resulting from automation and process standardization is reflected in the reduction of repetitive tasks by IT professionals - both Development and Infrastructure. With this, the employees are released to work in more creative activities, with greater potential for innovation.

DevOps, Innovation and Digital Transformation

Have you noticed that DevOps will help development teams and operations deliver software in a more agile and less bureaucratic way?

Now going back to the main topic of the article, how will this aid in the process of innovation and digital transformation?

It is not enough for the company to digitize its front office and keep its back office bureaucratic and slow in responding to market needs and/or poor after-sales service or the lack of skill and speed in solving problems that are demanded by the business, users and customers.

The focus should be on the clients and how to meet their needs, solve their problems effectively, efficiently, simply and innovatively. This takes into account the entire lifecycle of the service or product, that is, from its design to the user experience. It is essential that companies work to establish a trust bond among their customers: to really know how to listen to it and respond to its problems with quality and safety.

The processes that involve DevOps can contribute to the generation of innovation and also to the digital transformation in companies. This is because, at the same time, it focuses on process automation that touches the software development lifecycle, contributing to the digitization of previously manual activities such as validation of software code quality, testing, and software releases, this model also increases the level of quality and security of the applications.

With the implementation of DevOps, agile development practices such as Scrum become natural because they focus on software deliveries with fast cycles. In addition, through the operation team, proactive monitoring of the applications that are made available to users is performed.

Does the concept of DevOps apply only to IT?

As DevOps has emerged in the Information Technology environment, it is already a reality in this area today. However, its basic principles can also be broadened, reaching different areas of the organization. The important thing is that the goal is to streamline processes.

After all, integration can be the key word to make the marketing, sales and after-sales sectors more attuned, ensuring improvements throughout the whole client engagement. Likewise, logistics and the financial and tax sectors can reduce their costs by investing in updating their own internal procedures.


With the practices that involve DevOps, it is possible to have agility, either in the time to market or to respond quickly to problems identified by the user experience, continuously improving a product or service. Furthermore, coupled with Big Data technologies, it is possible to extract useful information which can bring a huge competitive advantage over competitors as well as evolve into predictive analytics. In addition to a cloud infrastructure, it is possible to be prepared for demand peaks in a safe and high level of efficiency for the availability of these services to users. If your company is looking for innovation allied with efficiency, focusing on the user experience, you need to start to embrace the concepts of DevOps today.