Tracking the Speed of Software Development

speed-up-website

The prime driver for many companies embracing DevOps remains the desire to make the software development process faster. We continually state the following: increased software engineering velocity is a must in today’s competitive business marketplace. Finding the right metrics to track application engineering speed is essential in determining the true return on investment.

What follows is an analysis of a few metrics to help you determine the speed and overall efficacy of your software development team. Perhaps these insights help support the value of your methodology to the executives at your company? Good luck!

Finding the Right Metrics for Software Development

When it comes to tracking software development, finding the right metrics is vital. The continuous integration platform company, CircleCI, published a study looking at some suitable options. An article about their efforts appeared last week in SD Times.

The company’s study leveraged the data from organizations using CircleCI’s platform. It tracked software development efforts from the first half of 2017. CircleCI discovered that three specific metrics reveal a software development team’s overall maturity as well the velocity of their SDLC.

Deploy Time, Deploy Frequency, and Mainline Branch Stability topped the company’s list of metrics. The first two appear to be easily tracked, but what about the third? Jim Rose, CEO of CircleCI, commented on the definition of Mainline Branch Stability.

“If you had to release the most recent version of your code right now, right this second, could you? Is your mainline green and can you deploy whenever you need to?” said Rose. The CircleCI report noted that 80 percent of the companies maintained a deployable codebase 90 percent of the time.

Ultimately, this metric provides a great way to track an organization’s progress towards the DevOps “Holy Grail” of continuous deployment. The top companies using Circle CI – in the 95th percentile – are essentially able to deploy all the time. However, the worst firms – in the 5th percentile – can do so only half the time.

What about Deploy Time and Deploy Frequency?

Deployment time and frequency are traditional metrics used in software development for decades. CircleCI feels they still provide value in a modern Agile or DevOps process. According to Rose, Deploy Time answers this question: “How long does it take between the time you make a commit until it gets into the data center?”

The top companies in their report are able to fully deploy code in less than three minutes. Those denizens of the 5th percentile on average spend a half-hour on each deployment. A smaller deployment time obviously indicates a more efficient and inexpensive process.

Obviously, Deploy Frequency then answers this question: “How often do you deploy and how quickly are you pushing changes?” The top organizations in their survey deploy 32 times a week, while the lowest only are able to deploy eight times each week.

Making Software Development Faster

It helps software development organizations when they understand where they stand compared to other companies in their field. Providing a goal to strive for is essential, especially when CIOs and other execs want to see ROI as quickly as possible. Rose commented on a few best practices for development teams to follow.

“You need to make sure you have a great code review process, pull review process, and a robust set of tests that are automated and constantly run every time someone is making a commit so that you know well before you merge into the mainline that the merge is going to work,” said Rose.

For additional information and advice, check out CircleCI’s report at the following link.

Thanks for reading this edition of the Betica Blog. Stay tuned for additional insights from the software development world.

An Urban Dictionary for Software Developers

hackterms

The best tools help software engineers write applications in an efficient and productive manner. These include the ability to look up code samples in an unfamiliar language, or even try to find out the meaning of a term never seen before. In fact, we previously discussed SyntaxDB, a search engine aimed at helping devs find insight in how to use a certain programming language.

This time out we take a look at a new “urban dictionary” for technology professionals, especially software developers. Maybe it belongs in your team’s utility toolbox, residing alongside a fully-functional DAW? Let’s take a closer look.

“A Crowdsourced Dictionary of Coding Terms”

This new software developer urban dictionary is called Hackterms, and it positions itself a crowdsourced dictionary of coding terms. It offers meaningful insight if you stumble upon some unfamiliar jargon, and seems especially helpful as preparation for a technical interview. News about Hackterms appeared on the Dice blog earlier this month.

The Dice post notes that Hackterms essentially serves as a global Wiki for software development. As such, it depends on contributions from its user base for accurate definitions. Even those users not contributing definitions for terms enjoy the opportunity to upvote and downvote existing entries.

So add a measure of Reddit to the Wiki functionality and you get an idea of what Hackterms is all about. It nicely illustrates the power of the crowdsourcing model when applied to a specific topic like software development. Sure, using a general search engine like Google performs a similar function, but without the needle eye focus of Hackterms.

The definitions within this software development urban dictionary are concise and to the point. If you only need a quick answer to your programming query it remains a great option; possibly the best one in the industry. Everything from obvious definitions like “JavaScript” to something more esoteric like “anti-pattern” is in there. Actually, anti-pattern is a trending definition on the site.

Also trending is “Swift,” Apple’s language for easy iOS development and more. We mention this because the Dice article at the time of its publication one week ago noted that Swift wasn’t included. The fact a definition now exists so quickly also highlights the power of crowdsourcing.

The Genesis of Hackterms

Hackterms is the brainchild of Max Pekarsky, a software engineer who also works as an accomplished music composer. He focuses on ensuring the search engine offers concise definitions without source code adding to the overall complexity. In fact, this positions Hackterms as a perfect companion to SyntaxDB.

Max feels his website serves as a reference instead of a programming manual. The website is primarily targeted at those new to software engineering. Still, considering the rapid pace of change throughout the industry, new terms are being invented on a daily basis, making the tool useful for programmers of all experience levels.

If you are interested in contributing to Hackterms, simply create your own account and start adding definitions or merely upvote those already in the dictionary. It provides a great way to feel a part of the worldwide developer community.

Thanks for reading this edition of the Betica Blog. Stay tuned for additional stories and insights from the software development world.

Survey reveals the Application Development Process still needs Improvement

Screen Shot 2018-03-02 at 1.03.33 PM

 

Even with Agile and DevOps becoming more popular within the software development community, the application engineering process remains clunky. This is the lead finding of a recent survey of IT managers responsible for the SDLC. Frankly, is that conclusion all that surprising with network administrators now complaining about software teams dominating DevOps?

Let’s dive into the details of the survey to see what meaningful information lies within. Maybe your software team gains a new sense of direction on how to make the entire development process more efficient? Good luck!

 

Nearly All IT Managers complain about Inefficient Software Development

The integration software company, MuleSoft recently surveyed 650 IT managers on a variety of topics related to application development. ZDNet summarized the survey’s findings in an article published earlier this week. This information definitely provides some food for thought for anyone working in the software engineering industry.

Somewhat surprisingly, 93 percent of those surveyed feel their organization’s software development efforts “could be more efficient.” They feel the process suffers from being clunky, which makes successful integration more difficult. This problem becomes exacerbated in the increasingly complex environment of the modern business landscape.

Another data point leading to this perception of inefficiency is the 83 percent who feel their company fails to reuse existing software when building new systems. Only a third of those surveyed mentioned their organization makes software assets available for reuse in new projects. This is a traditional problem in the development process; hampering attempts to improve efficiency for decades.

 

Executives are demanding more Software – Enhancements and New Applications

These inefficient software development processes are coming at a time when the C-Suite is demanding more from their application engineers. The MuleSoft survey reports an overall increase of 27 percent in the number of development projects last year. 12 percent of those surveyed managers saw their project load increase by over half.

Of course, the fact that two-thirds of the survey respondents were unable to deliver on all of their projects in the last year truly hits home. Aren’t Agile and/or DevOps making a difference in software development? The fact that these IT managers report responsibility for over one-thousand applications on average raises one obvious question. Are they simply overworked?

Poor integration between these applications – only 29 percent are successfully integrated – appears to be another factor leading to inefficiency. This survey finding perhaps isn’t too surprising considering MuleSoft’s focus on application integration.  81 percent of the survey respondents note that point-to-point integration is a major source of problems for their development teams.

In short, too much valuable development time is spent on one-off application integration efforts; siphoning resources better spent on other projects. Notably, nearly two-thirds of the surveyed managers are focused on this kind of work, as opposed to building new and innovative solutions. On the positive side of the ledger, more than half of the managers report that the use of APIs improves overall productivity, while also leading to increases in innovation, employee engagement, and faster deployment.

As organizations modernize their systems, and the use of DevOps and Agile continues to mature, hopefully the software development process finally wins that decades-long battle to improve efficiency.

 

Thank for reading this edition of the Betica Blog. Stay tuned for additional dispatches from the world of software development.