The Evolving Modern SoftwareDevelopment Team

The Evolving Modern Software Development TeamThroughout its over half century of existence, the process of software development continues to evolve. Technological advancements are obvious, as faster processors and other innovations like new programming languages, databases, and automation impact the industry. Of course, we regularly cover the impacts ushered in by modern methodologies, especially Agile and DevOps.

Here is a quick overview of a typical organization – tools, methodology, languages – within the modern software engineering world. Use the information within as food for thought on your team’s development efforts. How does your company stack up against the new norm?

Commonalities amongst Today’s Software Engineering Companies

InfoWorld recently analyzed what similarities and standards are emerging within today’s software development shop. There’s no denying the importance of collaboration and communication in this era of DevOps. Reflecting this trend, software teams are increasingly using chat tools, like Slack, instead of email to communicate.

Source control is another important function within any software engineering team. Earlier this century, code repositories like Source Safe, PCM, and CVS were the rage. These days, Git holds a dominant status due to its support for distributed version control. Sometimes, members of a development team may reside on different continents, and Git seamlessly supports this geographic separation.

The Number of Macs in Development Shops is growing

The PC – most likely running Windows – continues to be widely used at software engineering companies. However, the number of Macs is increasing over time. This is especially true at shops building mobile apps for the iOS and Android platforms. Dumb terminals and punch cards remain the ancient artifacts of the early days of computer programming.

What about Issue and Bug Tracking?

According to InfoWorld, Jira is the leading tool when it comes to software project management, as well as functionality to provide issue and bug tracking. Its easy integration with a variety of other applications, especially source control software, is a major reason for its popularity. Considering Jira’s age, other applications, like Basecamp and Open Project, are growing in usage.

The Engine that powers DevOps

As DevOps emerges as a software industry standard, tools to manage the entire process, especially continuous delivery, are becoming more important. InfoWorld considers Jenkins to be the “engine that powers DevOps.” A free and open source application, Jenkins automates many aspects of DevOps, including builds, tests, and deployment.

Like Jira, the fact it integrates so well with other applications remains one of the reasons for its popularity. The price doesn’t hurt either! Travis-CI and Bamboo are two other continuous deployment tools worthy of note.

The Latest Trends in Software Development

InfoWorld also identified three emerging trends in software engineering, and they are all areas we’ve talked about on the Blog. Container tools – most notably Docker – have essentially become a best practice for modern software development. ChatOps is another one, letting teams use a chat interface to communicate with coworkers while also performing builds, tests, and deployments.

Machine Learning is their third trend, reflecting the growing importance of AI to help analyze massive datasets, among other relevant uses. How does your own team stack up against InfoWorld’s proverbial modern software development organization?

Stay tuned to the Betica Blog for additional insights from an ever-changing software development world.

News from the World of Software Development – March 2017

Welcome to this month’s software development and QA news digest. As 2017 enters its third month, the application engineering world continues to evolve at a rapid pace. If you are interested in February’s digest, simply click on this link.

Hopefully, you are able to leverage these insights to improve or inform your organization’s software engineering process.

Software Engineering Trends going Mainstream

Earlier this month, The Next Web published a story from the software intelligence company, Raygun, looking at three software development trends essentially becoming standard practice. We covered some of these same directional shifts in our 2017 industry trends article, and it is interesting to see them widely adopted.

The growth of ChatOps to enhance communication amongst a development team is one trend Raygun noted. ChatOps even allows software engineers and QA personnel to kick off builds and automated tests from a chatbot interface, while the entire team stays in the loop. The use of bots works well for companies already embracing DevOps and a continuous deployment model.

Speaking of continuous deployment, it is another one of the trends highlighted in the Raygun article. An increasingly competitive business world places the onus on companies to build and maintain applications faster than ever before. Following a continuous delivery model allows firms to deploy new code several times a day.

The increased use of software intelligence was the third trend discussed by Raygun, which isn’t a surprise, considering the company’s main line of business. Leveraging this form of automated intelligence hastens the discovery of problems or issues before the customer.

“Software intelligence gives you the ability to automatically detect when a user’s experience was poor and how you can improve it, with full diagnostic details being provided for every individual user error, crash or performance issue,” the article mentioned. This new era of application performance monitoring is one worth watching by anyone responsible for public-facing applications.

The Principles of Agile Software Development

Late March saw the appearance of a Forbes article in our news feed detailing the daily principles of Agile software development. While this is more of an evergreen topic than “news” per se, anyone new to Agile would benefit from studying these concepts. Scott Stiner, the CEO of UM Technologies, a software firm focusing on innovative user experience (UX) design, authored the article.

Stiner highlights the fact that traditional software engineering methodologies – most notably the Waterfall – lack the iteration compatible with the modern business world. The high cost of finding defects too late in the development process isn’t a risk many organizations want to take. This, combined with the faster speed of business noted earlier, is a major reason many software shops have embraced Agile over the last decade.

Early delivery of prototypes and strong customer interaction remain a major focus of Agile. Changes to requirements are welcome; not considered to be scope creep as with older methodologies. Analyze the rest of these Agile principles to see if a change in how you write applications makes sense for your organization.

Keep coming back to the Betica Blog for additional news and information regarding the wide world of software development. As always – thanks for reading!

2017 Trends in Software Development

With the New Year now upon us, it becomes a great time to take a look at some of the major trends impacting the world of software development. Understanding the shifts in a continually evolving industry helps position your application engineering team for success both now and in the future. Maybe your shop is already part of making these trends the new reality in the technology sector?

Chat-based Tech becomes Commonplace for Developers

Last year, we talked about the use of ChatOps for software development teams, allowing engineers and QA staff to use smart chatbots to streamline portions of the process. Users can easily start builds, test scripts, automate virtual environments, and more using a simple messaging app that keeps the entire team in the loop.

One of the most popular technology trends for 2017 is the increased use of chatbots and Business Bots throughout the business world. Expect chatbot usage to greatly expand among software developers. The era of DevOps requires efficiency, communication, and collaboration, with chatbots and ChatOps making life easier for all.

Another notable 2017 business trend is Advanced Collaboration, and the use of chatbots is helping to make this reality happen for developers and other departments within many technology businesses.

Mobile App Development grows in Importance at Businesses

Mobile apps have been around since before the introduction of the iPhone. Their increased use at businesses of all sizes – especially at smaller organizations – is a predicted trend in the tech world for 2017. Nearly half of all small businesses are expected to leverage mobile apps in their daily operations over the next year, according to the mobile development platform, Biznessapps.

Software development shops focusing on business apps need to look at ramping up their Android and iOS development efforts. Java remains the language of choice for the majority of Android projects, while Swift is gaining on Objective-C for iOS initiatives.

Docker becomes Mainstream at Development Shops

Many businesses strive for continuous deployment to stay competitive in the modern business world. This is one of the reasons for the popularity of Agile as a methodology and DevOps or Tribes as an organizational structure. This places the onus on development teams to leverage a wide variety of tools to make processes more efficient, like Docker for migrating applications across virtual production, development, and QA environments.

In 2017, Docker, as well as other package-based tools, are expected to become commonplace at shops across most business sectors. Vagrant, which works like Docker but is able to package an entire environment, is another similar application now becoming the standard for managing virtual development environments. Virtualization and packages are now a must for nearly all application engineering shops.

Functional Programming keeps Cloud Servers running Smoothly

As more and more mobile devices connect to the Internet – with their users expecting a seamless experience – servers on the Cloud need to prevent becoming bogged down in a massive amount of traffic and requests. Enter functional programming. Functional languages, like Clojure and Scala, are essentially stateless, allowing them to run more efficiently in parallel on servers using different processor cores or in distributed environments.

2017 is expected to see a rise in popularity of these and other functional programming languages, given the continued growth of the Cloud and mobile device connectivity.

Keep an eye on these trends throughout the upcoming year to see if they come to fruition. Check back regularly at the Betica Blog for additional dispatches from the world of software development. Thanks for reading!