29
Fri, Nov
0 New Articles

Top Tenets for Building Successful Software Solutions

Typography
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

A set of tenets can help deliver successful data and AI software projects. Each tenet is a continual journey, not a destination. Each must be practiced until it becomes second nature, and each tenet has multi-dependencies with other tenets.

There’s a set of symbiotic tenets and disciplines when it comes to building and delivering software products that can help drive success for both vendors and clients alike. Here are what I consider to be some of the top tenets.

Innovation

One of the ways to differentiate a product or service in the marketplace is to introduce new ideas, methods, processes, technologies. This also includes “disruptive technologies” that can redefine the market by disrupting the status quo and establishing a new norm. Organizations that invest heavily in research and patents have the potential to lead or redefine the market on their terms. But innovation is more than just technology. It is also heavily influenced by the culture to cultivate innovative thinking and an entrepreneurial spirit. It also requires leaders to innovate. Innovation leadership can support achievement of the mission and the vision of an organization or group. With new technologies and processes, it is necessary for organizations to think innovatively to ensure continued success and stay competitive to adapt to new changes. Innovation, like all the other tenets, is a journey.

Incubators and Startups

Incubators (first appearing in 1959) were created to help entrepreneurs solve some of the problems commonly associated with running a startup by providing workspace, seeding funding, mentoring, and training so that entrepreneurs could focus on growing their business without the worry of the usual business overheads. Large or well-established companies often try to promote innovation by setting up "internal startups," allowing new business divisions to operate at arm's length from the rest of the company. However, these can fail for numerous reasons, including “corporate interference.”

While the vast majority of startups fail, some become “unicorns,” privately held startup companies valued at over US $1 billion. Internal startups may also lack incentives or rewards (financial or otherwise) to succeed, whereas external startups often have high risk with the chance of very high return. That said, there are many lessons to be learned by large corporations from the successes of external incubator startups.

Simplicity

Simplicity is somewhat of a dichotomy in that it can often be elusive and very difficult to attain. Innovation and sophistication do not necessarily imply complexity. Simplicity in itself can be the elegance of a product. Take, for example, the creation of the iPod, a high-tech yet intuitive, simple-to-use device that enabled consumers to carry their entire music collection with them. It was a breakthrough disruptive technology that stole the market from other media vendors focused primarily on sound fidelity.

As products evolve over their life cycle, complexity can increase, making it challenging for those involved in testing, management, and support, which in turn can negatively impact the customer experience. Convergence can facilitate simplicity through reuse (discussed later). Take, for example, the strategy of developing a set of common services that can be consumed across a portfolio of offerings. These (and all other services) need to conform to and inherit a series of specifications forming a “bedrock” for future product offerings to be based on. Convergence rather than divergence and uncontrolled variation should be the mantra of any organization involved in software product development.

Quality

What makes us prefer one particular cola drink, a specific vehicle manufacturer, or a certain clothing brand? While there might be one major factor, there are usually multiple factors or dimensions that help us make our choices, all of which add up to an overall satisfaction or quality score. Over time, our satisfaction with a product or service may increase or decrease due to good or bad experiences. If delighted, we might review the product/service and leave 5 stars. If dissatisfied, we might leave a scathing review and 1 star. The quality of a product or service can not only directly impact its reputation, it can also impact the vendor’s reputation, brand value, and ultimately the bottom line. While there are costs associated with good quality, poor quality often has even greater costs. From a product-development perspective, quality is a team sport (multi-dimensional) in that some aspects of a product or service may be weighted differently depending on the environment within which it is used. Quality is everybody’s responsibility and should be embedded within every aspect of a product’s lifecycle.

Reliability and Resiliency

Reliability is a key consideration when purchasing a product or service. When part or all of a critical computer system or application fails, the result can be loss of revenue, lost business opportunities, or risk of exposure, such as a security breach. It can also damage brand reputation. Headlines of data security breaches involving Personally Identifiable Information (PII) have caused many consumers to no longer trust the institution that had a data loss. Reliability is also closely associated with resilience, the ability or capacity to recover quickly from difficulties. This is also a key attribute for how well a business-critical system can detect and avoid failure or its ability to recover from a system failure. Elimination of single points of failure, failure detection and prevention, and reliable crossover are part of high-availability computing. For example, customers use the mainframe because they trust it to protect their data and run some of their most business-critical applications. Imagine if every application, service, process, and data store could leverage those same characteristics.

Agility—Not Speed, Agility

Compared to traditional software engineering, agile software development mainly targets complex systems and product development with dynamic, non-deterministic and non-linear characteristics. Accurate estimates, stable plans, and predictions are often hard to obtain in early stages of a project, so agile practitioners seek to reduce the leap of faith that is needed before any evidence of value can be obtained. Requirements and design tend to be emergent as large deterministic specifications might not be economically viable. Lessons from years of successes and failures have helped shape agile development's favor of adaptive, iterative, and evolutionary development. In this day and age, with dynamic turbulent markets, organizations need to have business agility to adapt and respond to emerging opportunities with competitive differential. Adopting agile development practices can help.

Reuse, Don't Rebuild

In my experience, products can become more complex as they evolve over time, particularly when we don’t share ideas, or common functions, methods, and processes. We often resort to the “Not Invented Here” syndrome. Sometimes we perceive existing capabilities as not good enough and reinvent the wheel. This can cause divergence, which can lead to unnecessary cost and complexity. Reuse can result in savings. For example, a microservices architecture embraces reuse. Monolithic code can be decomposed into a series of smaller services––building blocks (like Lego bricks) to recompose new trusted services reusing much of what already exists––maintained and controlled through a services catalog. Open source also promotes reuse, and for that reason some organizations adopt the open-source model within their own enterprise––“inner source” for want of a better phrase. Moving from siloed development to inner source and microservices can help organizations coalesce innovation and investment streams. The hope would be that organizations can potentially increase the quality of their software and achieve greater agility for their software developers.

Open

The word “open” in the software world is much more than just open source. It also refers to software that has open, accessible, or published APIs. It can also mean open as in transparency and explainability—a key focus area in artificial intelligence that warrants its own blog post. But let me focus on open source for the purpose of this article.

Things are rapidly evolving, and it's become clear to me that no single company can create AI solutions in a vacuum and hope to keep pace with the rate of change in such a fast-growing segment of the tech industry. Open source–based infrastructure services such as storage access services, managing of security services, and managing containerized microservices can help create greater portability of offerings by isolating the specific dependencies of the underlying computing environment while avoiding the perception of “vendor lock-in.” Finally, by appropriately engaging with the open-source ecosystem, vendors can gain insight into the areas that developers are most interested in and better understand where the marketplace is going.

Cloud: Hybrid by Design

Cloud computing relies on the sharing of resources (services) to achieve coherence and economies of scale with the potential for improved manageability and less maintenance. Cloud in general is seen as attractive by organizations of all sizes because it can help minimize up-front IT infrastructure costs with different pay-as-you-go and subscription models. Hybrid cloud is a computing environment that connects an organization’s on-premises private cloud services and third-party public cloud services into a single, flexible infrastructure for running the organization’s applications and workloads. It should give an organization the flexibility to choose the optimal cloud for each application, data source, or workload (and to move workloads freely between the two clouds as circumstances change). This enables the organization to meet its technical and business objectives more effectively and cost-efficiently than it could by forcing an organization to choose between a public or a private cloud. This necessitates that the entire software stack by design needs to be able to run transparently in hybrid cloud environments, with common DevOps, governance, security, and management capabilities that span multitenant, dedicated/isolated configurations. Hybrid and multi-cloud support has become an essential design tenet. The future is truly hybrid.

“X” as a Service

Everything in cloud computing should be defined as a service, whether it is infrastructure, platform, software, data, compute, security, or others. These are collectively denoted as XaaS. While some organizations choose to manage their applications and data on-premise or on their own private cloud, other organizations may want to pay for services as and when needed. For example, Software as a Service (SaaS) is a software licensing and delivery model in which software is licensed on a subscription basis and is centrally hosted. It is sometimes referred to as on-demand software. It behooves software vendors to offer their portfolio of software––from individual services and applications to (for example) entire data and AI platform––as on-demand services. This approach enables vendors to engage organizations of any size and maturity to leverage their offerings within an organization’s cost and operating constraints. As organizations grow, they have the benefit of choosing to host and manage those same services on their own private cloud. Vendors that can offer that flexibility stand to serve a wider range of customers, potentially expanding the user base.

Summary

In summary, while each tenet can be valuable on its own, the whole is greater than the sum of its parts. I have concluded that there is a common theme across all of the above tenets. Each is a continual journey, not a destination. Each must be practiced until it becomes second nature, and each tenet has multi-dependencies with other tenets.

Procrastination is not an option. The journey must begin. Those that hesitate may risk losing to their competition.

Let me leave you with a quote from Artificial IntelIigence: Evolution and Revolution, a book I was privileged to coauthor: “A journey of a thousand miles begins with a single step.”

 

 

Mark Simmonds

Mark Simmonds is a Program Director in IBM Data and AI communications. He writes extensively on machine learning and data science, holding a number of author recognition awards. He previously worked as an IT architect, leading complex infrastructure design projects. He is a member of the British Computer Society and holds a Bachelor’s Degree in Computer Science.


MC Press books written by Mark Simmonds available now on the MC Press Bookstore.

Artificial Intelligence: Evolution and Revolution Artificial Intelligence: Evolution and Revolution
Get started on your AI journey with insights for a path to success.
List Price $19.95

Now On Sale

BLOG COMMENTS POWERED BY DISQUS

LATEST COMMENTS

Support MC Press Online

$

Book Reviews

Resource Center

  • SB Profound WC 5536 Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application. You can find Part 1 here. In Part 2 of our free Node.js Webinar Series, Brian May teaches you the different tooling options available for writing code, debugging, and using Git for version control. Brian will briefly discuss the different tools available, and demonstrate his preferred setup for Node development on IBM i or any platform. Attend this webinar to learn:

  • SB Profound WP 5539More than ever, there is a demand for IT to deliver innovation. Your IBM i has been an essential part of your business operations for years. However, your organization may struggle to maintain the current system and implement new projects. The thousands of customers we've worked with and surveyed state that expectations regarding the digital footprint and vision of the company are not aligned with the current IT environment.

  • SB HelpSystems ROBOT Generic IBM announced the E1080 servers using the latest Power10 processor in September 2021. The most powerful processor from IBM to date, Power10 is designed to handle the demands of doing business in today’s high-tech atmosphere, including running cloud applications, supporting big data, and managing AI workloads. But what does Power10 mean for your data center? In this recorded webinar, IBMers Dan Sundt and Dylan Boday join IBM Power Champion Tom Huntington for a discussion on why Power10 technology is the right strategic investment if you run IBM i, AIX, or Linux. In this action-packed hour, Tom will share trends from the IBM i and AIX user communities while Dan and Dylan dive into the tech specs for key hardware, including:

  • Magic MarkTRY the one package that solves all your document design and printing challenges on all your platforms. Produce bar code labels, electronic forms, ad hoc reports, and RFID tags – without programming! MarkMagic is the only document design and print solution that combines report writing, WYSIWYG label and forms design, and conditional printing in one integrated product. Make sure your data survives when catastrophe hits. Request your trial now!  Request Now.

  • SB HelpSystems ROBOT GenericForms of ransomware has been around for over 30 years, and with more and more organizations suffering attacks each year, it continues to endure. What has made ransomware such a durable threat and what is the best way to combat it? In order to prevent ransomware, organizations must first understand how it works.

  • SB HelpSystems ROBOT GenericIT security is a top priority for businesses around the world, but most IBM i pros don’t know where to begin—and most cybersecurity experts don’t know IBM i. In this session, Robin Tatam explores the business impact of lax IBM i security, the top vulnerabilities putting IBM i at risk, and the steps you can take to protect your organization. If you’re looking to avoid unexpected downtime or corrupted data, you don’t want to miss this session.

  • SB HelpSystems ROBOT GenericCan you trust all of your users all of the time? A typical end user receives 16 malicious emails each month, but only 17 percent of these phishing campaigns are reported to IT. Once an attack is underway, most organizations won’t discover the breach until six months later. A staggering amount of damage can occur in that time. Despite these risks, 93 percent of organizations are leaving their IBM i systems vulnerable to cybercrime. In this on-demand webinar, IBM i security experts Robin Tatam and Sandi Moore will reveal:

  • FORTRA Disaster protection is vital to every business. Yet, it often consists of patched together procedures that are prone to error. From automatic backups to data encryption to media management, Robot automates the routine (yet often complex) tasks of iSeries backup and recovery, saving you time and money and making the process safer and more reliable. Automate your backups with the Robot Backup and Recovery Solution. Key features include:

  • FORTRAManaging messages on your IBM i can be more than a full-time job if you have to do it manually. Messages need a response and resources must be monitored—often over multiple systems and across platforms. How can you be sure you won’t miss important system events? Automate your message center with the Robot Message Management Solution. Key features include:

  • FORTRAThe thought of printing, distributing, and storing iSeries reports manually may reduce you to tears. Paper and labor costs associated with report generation can spiral out of control. Mountains of paper threaten to swamp your files. Robot automates report bursting, distribution, bundling, and archiving, and offers secure, selective online report viewing. Manage your reports with the Robot Report Management Solution. Key features include:

  • FORTRAFor over 30 years, Robot has been a leader in systems management for IBM i. With batch job creation and scheduling at its core, the Robot Job Scheduling Solution reduces the opportunity for human error and helps you maintain service levels, automating even the biggest, most complex runbooks. Manage your job schedule with the Robot Job Scheduling Solution. Key features include:

  • LANSA Business users want new applications now. Market and regulatory pressures require faster application updates and delivery into production. Your IBM i developers may be approaching retirement, and you see no sure way to fill their positions with experienced developers. In addition, you may be caught between maintaining your existing applications and the uncertainty of moving to something new.

  • LANSAWhen it comes to creating your business applications, there are hundreds of coding platforms and programming languages to choose from. These options range from very complex traditional programming languages to Low-Code platforms where sometimes no traditional coding experience is needed. Download our whitepaper, The Power of Writing Code in a Low-Code Solution, and:

  • LANSASupply Chain is becoming increasingly complex and unpredictable. From raw materials for manufacturing to food supply chains, the journey from source to production to delivery to consumers is marred with inefficiencies, manual processes, shortages, recalls, counterfeits, and scandals. In this webinar, we discuss how:

  • The MC Resource Centers bring you the widest selection of white papers, trial software, and on-demand webcasts for you to choose from. >> Review the list of White Papers, Trial Software or On-Demand Webcast at the MC Press Resource Center. >> Add the items to yru Cart and complet he checkout process and submit

  • Profound Logic Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application.

  • SB Profound WC 5536Join us for this hour-long webcast that will explore:

  • Fortra IT managers hoping to find new IBM i talent are discovering that the pool of experienced RPG programmers and operators or administrators with intimate knowledge of the operating system and the applications that run on it is small. This begs the question: How will you manage the platform that supports such a big part of your business? This guide offers strategies and software suggestions to help you plan IT staffing and resources and smooth the transition after your AS/400 talent retires. Read on to learn: