John Feathers' Post

Why We Advocate Test-Driven Development

Gerald Weinberg, an American computer scientist, once famously stated that “If builders built houses the way programmers built programs, [then] the first woodpecker to come along would destroy civilisation.” While this was far from a chirpy portrayal of the current state of software engineering, for many companies out there, it remains an accurate assessment today. The ongoing predicament facing developers, however, is not without reason.

The first issue is a matter of complexity. Modern software projects are highly intricate systems, and while competent programmers may well be able to single-handedly ensure quality of code, the process of implementing every piece of functionality can take them years. Unfortunately, however, no customer is ever willing to wait that long. As a result, software development has largely become a team effort, but this poses its own set of challenges.

Because customers expect projects to evolve in tandem with their organisations, success relies heavily on the team’s ability to be flexible, as they must be willing to continuously adapt their code in the face of rapidly changing requirements. Yet the main difficulty remains — every touch to the project codebase can cause unpredictable damage to the system. This is why it is so important to test software with every code alteration.

Read More


Outsourcing vs Outstaffing: What Is the Difference?

Starting a software project can be a puzzling process fraught with decisions outside one’s area of expertise. While some organisations are blessed with IT departments that effectively handle all software development, the costs resulting from this utopian scenario render it an impossibility for the vast majority of businesses today. Instead, companies are driven towards one of two main alternatives: outsourcing or hiring temporary staff, a process we like to call “outstaffing.” Although both are means to the same end, there are specific benefits and caveats inherent to each model.

For companies with no IT teams in place, outsourcing is the logical solution. Unfortunately, the term has been soiled in popular vernacular to denote the practice of abandoning local talent in favour of cheap foreign labour — but this is often not the case at all. While it is true that outsourcing enables corporations to greatly expand their talent pool, the model simply refers to the entire development life cycle being handed over to a specialised company or organisation. This may be done at a national or international level. As a result, non-technical businesses are able to focus on their core activities while trusting a dedicated software company to deliver on their behalf. This is Software Planet Group’s preferred method to work with, as it allows us to ensure the quality of our projects at all stages of development.

Read More


Paving the Way for Startup Success: Our Two-Week Method

If you like to keep up with tech news, you will have undoubtedly heard of the freshly pressed Juicero debacle. In a viral video, Bloomberg reporters demonstrated how the company’s expensive juice packs could easily be squeezed by hand, dramatically exposing the $400 juicer as a ludicrous gimmick. Like wildfire, the internet was quickly set ablaze with comments from consumers who felt they had been swindled to internet trolls gleefully overcome with schadenfreude. Juicero, in turn, found itself in unfamiliar territory. Just a few years ago, the company had been living the Silicon Valley dream, to the point of securing nearly $120 million from major investors like Google and Kleiner Perkins. So where did it all go so horribly wrong?

At the height of the raw food diet craze, Juicero promised a revolutionary machine that would efficiently squeeze large chunks of organic fruits and vegetables. While this was all well and good, like so many others before them, the startup mistakenly believed that a good idea on its own can lead a product to success. In fact, the company’s fate was sealed from the very beginning; the moment they chose to present their product to investors with the help of a non-working prototype. Since then, Juicero continued to ignore the significance of a crucial step in development — the Minimum Viable Product (MVP).

In essence, an MVP represents the smallest possible product that is both usable and valuable to a target audience. When professionally developed, it is able to lower project risks, save money and win over investors. At Software Planet Group,

Read More


Is Faceted Search Right for You?

During the internet’s humble beginnings, we marvelled at the capacity of search engines to quickly return relevant results. At the time, it did not even bother us if we had to click and scroll through countless pages in order to find what we had been looking for. This was because search engines were always compared to age-old libraries, as the memories of sifting through hundreds of dusty pages still festered within our minds. Ironically, perhaps, in spite of our newfound disdain for the ancient paper system, it was precisely a librarian who first conceptualised the core of faceted navigation, one of the most advanced search features in software today.

After completing his education in library science at University College London, Indian Mathematician Siyali Ranganathan took immediate steps to reorganise libraries in a more scientific manner. In 1933, he published Colon Classification, a book describing what today is hailed as the very first faceted system. Since then, Ranganathan’s creation has evolved to become a standard search feature in e-commerce websites such as Amazon and eBay, along with other internet giants like Google. Yet despite its illustrious advocates, faceted search may be used by any company wishing to help customers quickly and intuitively browse through vast quantities of data.

Read More


Going Further with Docker

If you owned a shipping company, you would probably need an ingenious system to send different categories of goods across the sea. For example, it would certainly be ill-advised to lump a live hippopotamus right next to a brand new Macbook Pro. Instead, you and your crew would likely have to pay close attention to the size and shape of goods, as well as the required provisions to keep them safe and stable during transport.

Much in the same way, the shift from monolithic applications to the separately managed components found in microservices has demanded an inventive approach to software deployment. Thankfully, however, just as the shipping industry was able to solve most cargo challenges when freight containers were standardised in the late 1960s, a powerful software container has quickly risen to definitive status in the programming world.

Read More


RFID: A Swiss Army Knife for Visionary Companies

Every now and then, our customers require a little more than software code to fully realise their creative objectives. In these cases, while we do not claim to be hardware manufacturers, Software Planet Group are always prepared to work with our partners in the United Kingdom and Europe to seamlessly bridge the gap between hard- and software systems. Luckily for inventive companies today, as the world has slowly turned towards a web of interconnected devices, this has become more simple and affordable than ever. And in that regard, perhaps no technology is better placed to assist than Radio Frequency Identification (RFID).

RFID is by no means new. The technology traces its earliest origins to the 1940s’ Soviet Union, where a similar tool was used as an espionage device, and has existed in its modern form since at least 1973. It has only recently, however, begun to fulfil the vision of its creator, American Inventor Mario Cardullo. In a prophetic 1969 speech to investors, Cardullo presented his gadget as a powerful swiss army knife that could one day be used to create electronic credit cards, enhance security through automatic gates, automate toll road systems, and even assist medical personnel with patient identification. Yet in spite of these hugely accurate predictions on modern-day society, most people have failed to notice the use of Cardullo’s device beyond anti-theft gates in department stores. In reality, however, RFID is ubiquitous.

Read More


Programming Technologies: The True Cost of a Wrong Choice

Just as in the fashion industry, the development world is prone to occasionally give in to fleeting trends. New and exciting programming languages often take companies by storm, spawning in the whirlwind a flurry of articles that aim to justify the latest fad. To be fair, some of these trends have indeed stuck around to prove themselves worthy of their initial hype. Others, however, simply left their soiled footprints all over the internet and to this day mislead customers who believe them to be a worthwhile investment.

As a result of this post-truth era, it is not uncommon for companies to ask us to develop web solutions using less-than-ideal programming languages. The reality, however, is that every project is unique and should be treated as such. For this blog post, Software Planet Group would like to highlight recent trends to explain why some technologies may best be left ignored for the moment.

Ruby on Rails

Touted as a very simple way to engineer a minimum viable product, Ruby on Rails found its niche in the startup movement and quickly surged in popularity. At its peak in 2007, demand for the web application framework was so high that 60 percent of all our software developers were somehow involved in RoR projects. Today, however, the Ruby wave has unmistakably turned to foam, leaving in its wake a dwindling number of developers who are qualified to maintain these systems.

Compared to more modern alternatives, RoR has fallen noticeably behind

Read More


The Internet of Things: Where Hardware and Software Unite

Who can forget the joyously nostalgic opening scene from The Lego Movie? In addition to getting the hit song “Everything is Awesome” stuck in our heads for days, the film unrelentingly reminded us of all the reasons we played with Lego sets as children, as the versatile bricks could be combined in infinite ways to create anything we conceived. As a matter of fact, since their initial release in 1949, Lego bricks have been used to create unexpected projects ranging from life-sized cars and houses to a complete rendering of the Mona Lisa.

While our more youthful days may be long behind us, recent innovations in the tech world are resurrecting this kind of childhood play among developers. Thanks to projects like Arduino Uno and Raspberry Pi, software engineers are able to create imaginative hardware that rival even the most inventive of Lego designs — a distinct turning point in the increasingly prevalent Internet of Things.

To most people, the term ‘Internet of Things’ (IoT) still registers as foreign lexicon, so a quick explanation is warranted. Simply put, IoT refers to the concept of connecting all our devices to the internet and each other. This can include everything from our mobile phones and smart watches to cars and washing machines, and is perhaps most recognised today in our smart lights and heating systems. As the trend shows no sign of waning, developing hardware for the IoT has become easily accessible to anyone.

Read More


Does Your Company Need Microservices?

We often encounter customers who believe their problems are entirely unique to their organisations, but this is rarely the case. In reality, Software Planet Group are always tackling recurring problems in development. This is why we employ so-called architectural patterns as reusable solutions to many of these issues. One pattern in particular has recently earned the spotlight among programmers for its forward-looking approach to software design. While applications have traditionally been built as a monolith, that is, software constructed as a single unit, using the architectural pattern known as microservices, developers are able to design and maintain applications through wholly independent components.

The independent nature of microservices also allows programmers to develop, upgrade and replace components in complete isolation from one another. From a technical standpoint, this provides much higher scalability, which means the system is capable of coping and performing well under an increasingly expanding workload. In addition, because each service is responsible for its own data, the solution allows information to be managed in a decentralised fashion. As a result, services are free to use the datastores that make sense to them.

Read More


So What’s Big Data Really Worth?

Over the years, the world has generated extraordinary amounts of information that can boggle even the most collected of minds. Twitter alone registered a record 500 million tweets per day in 2015, and now Amazon, the greatest provider of cloud services, is reportedly adding computing power on a daily basis that is equal to their entire capacity just a decade ago. While most companies are unlikely to produce anywhere near as much data, like sleeping dragons on piles of gold, they often go about their businesses completely unaware of the untapped potential of their files. By contrast, companies shrewd enough to tackle big data are already reaping enormous benefits.

Big data solutions enable corporations to unleash the power of their records by uncovering hidden patterns and correlations, revealing customer preferences and finding long forgotten valuable information. This is the same technology that allows Google to remind you of your trip to Majorca, and facebook to create ads tailored especially to you. The applications of big data solutions, however, extend far beyond the internet. Big data analytics is also used to predict the outcomes of elections and sporting events, warn health professionals of potential epidemic outbreaks and even improve the flow of traffic for entire communities.

 

Read More