Daily Tech Digest - September 17, 2017

Reasoning About Software Quality Attributes

Quality attribute requirements such as those for performance, security, modifiability, reliability, and usability have a significant influence on the software architecture of a system. Architects need to understand their designs in terms of quality attributes. For example, they need to understand whether they will achieve deadlines in real time systems, what kind of modifications are supported by their design and how the system will respond in the event of a failure. There are large and thriving attribute communities that study various quality attributes but they each have their own language and sets of concepts. However, architects tend to think in terms of architectural patterns. What the architect needs is a characterization of architectural patterns in terms of factors that affect the various quality attributes so that a software design can be understood in terms of those quality attributes.


Where Is Social Media Headed in 2018 and Beyond?

There’s a real movement to create social media platforms that cut-through the censorship of big brother, and give users more control. And it’s not all about bypassing government censorship. Even Facebook has found themselves in hot water, facing down claims that Facebook censors conservative news sources in their “Trending” news widget. There’s also the fact that social media giants make billions of dollars by selling ads that rely on the content we freely give them. As publishers and users, we aren’t getting a slice of the pie. As I researched this article, I stumbled across an exciting new concept in social media -- the idea of taking social media to the blockchain. Yes, you read that correctly. The same technology that’s used to power bitcoin and other cryptocurrencies could be coming to a social media app near you.


How to Evaluate Software Quality from Source Code

Compute the codebases’s cyclomatic complexity, normalized over the number of methods. This tells you the complexity of the average method, which carries critical significance. More paths through the code means more tests needed to verify the application’s behavior. And this, in turn, increases the likelihood that developers and testers miss verification scenarios, letting untested situations into production. Does that sound like a recipe for defects? It should. Coupling and cohesion represent fairly nuanced code metrics. I’ll offer an easy mnemonic at the risk of oversimplifying just a bit. You can think of cohesion as the degree to which things that should change together occur together. And you can think of coupling as the degree to which two things must change together.


DDoS protection, mitigation and defense: 7 essential tips

“A disaster recovery plan and tested procedures should also be in place in the event a business-impacting DDoS attack does occur, including good public messaging. Diversity of infrastructure both in type and geography can also help mitigate against DDoS as well as appropriate hybridization with public and private cloud," says Day. “Any large enterprise should start with network level protection with multiple WAN entry points and agreements with the large traffic scrubbing providers (such as Akamai or F5) to mitigate and re-route attacks before they get to your edge. No physical DDoS devices can keep up with WAN speed attacks, so they must be first scrubbed in the cloud. Make sure that your operations staff has procedures in place to easily re-route traffic for scrubbing and also fail over network devices that get saturated,” says Scott Carlson, technical fellow at BeyondTrust.


Why Shift-Left Testing is Critical for Enhancing Software Quality?

As the name suggests, testing gets shifted to the left of the development process and deals with the defects on the go rather than waiting till the end of the process. In the Agile environment, this implies that the software gets faster to the market and can be updated on a continuous basis. Shift left testing approach introduces the tester right from the inception of the software development process. This eases the efforts of the developers while developing the software application that needs to meet the desired quality standards. An Agile approach cannot function without the concept of Continuous Testing and development. It operates on the fundamental premise that the software can be released at any time during development, or upgraded in case of commercial demands. The significance of Shift-left in an Agile set-up is indispensable, as it binds testing effectively with development and continues to ensure quality.


Data Science’s Dirty Little Secrets

If expertise on data, platforms and programming isn’t sufficient, what are the specificities of a data scientist? From our point of view, it all begins with the candidate’s understanding the logics of specific markets and industries. Data Science is also a frame of mind — data scientists are continuing scanning their physical and digital environments for problems to be solved. They day job consists of exploring the nature of the problems to be solved, qualifying the data at hand, identifying which methodologies can produce better choices in given contexts, and transforming data into insightful action. They don’t isolate themselves in front of a computer, but as Lee Baker suggests, they serve as detectives of the realities of the company and its clients, as well as mediators between the technical and operational services inside the organization.


Enterprise Architecture Is Not The Answer - It Is Part Of The Answer

As a matter of practicality, for Enterprise Architecture to be successful, there are many things that have to work out before, in parallel with, and after Enterprise Architecture efforts result in an Enterprise Architecture. There are governance things going on, there are development things going on, there are operations things going on. Each of these areas can benefit from some good old Enterprise Architecture thinking and, as well, Enterprise Architecture success needs these areas to be successful! Again, Enterprise Architecture is not THE answer, it is part of something bigger. In most enterprises governance comes in many forms including strategic management, portfolio management, project management, etc. Most of the methods applied in each of these follow some sort of decision-making loop.


Machine learning methods (infographic)

Artificial intelligence (AI) and machine learning are a hot topic in the enterprise, with company leaders having high hopes for how they can be used to improve and automate business processes. In fact, some 54% of organizations are making substantial investments in AI today, and that number jumps to 63% in three years, according to our 2017 Global Digital IQ Survey. So how will AI solve business problems, like helping you figure out why you’re losing customers or assessing the risk of a credit applicant? It depends on a number of factors, especially the data you are working with and the type of training that will be required. Learn about the most common algorithms and their uses cases below.


Oath for Programmers

What matters is what the layman thinks about this -- and by extension what legislators think about it. In the end, it will be the everyday ordinary civilian who will demand the commitment to professional behavior; and will demand that behavior be monitored and enforced. ... There are two kinds of harm that a software developer can do to their users. The first is the most obvious. The software could fail. It seems perfectly reasonable that we should promise to do our very best to deliver software that does not fail. The second form of harm that programmers routinely do to their users is to harm the _structure_ of software. Users expect software to be easy to change. It is _soft_ ware after all. Users need their software systems to keep pace with the rapid change in society and technology. It seems perfectly reasonable that we should promise to do our very best to keep software soft.


To control AI, we need to understand more about humans

In a future with more pervasive AI, people will be interacting with machines on a regular basis—sometimes without even knowing it. What will happen to our willingness to drive or follow traffic laws when some of the cars are autonomous and speaking to each other but not us? Will we trust a robot to care for our children in school or our aging parents in a nursing home? Social psychologists and roboticists are thinking about these questions, but we need more research of this type, and more that focuses on the features of a system, not just the design of an individual machine or process. This will require expertise from people who think about the design of normative systems. Are we prepared for AIs that start building their own normative systems—their own rules about what is acceptable and unacceptable for a machine to do—in order to coordinate their own interactions?\



Quote for the day:


"To have long term success as a coach or in any position of leadership, you have to be obsessed in some way." -- Pat Riley