{
"version": "https://jsonfeed.org/version/1.1",
"user_comment": "This feed allows you to read the posts from this site in any feed reader that supports the JSON Feed format. To add this feed to your reader, copy the following URL -- https://textexpander.com/category/profession/development/feed/json -- and add it your reader.",
"next_url": "https://textexpander.com/category/profession/development/feed/json?paged=2",
"home_page_url": "https://textexpander.com/category/profession/development",
"feed_url": "https://textexpander.com/category/profession/development/feed/json",
"language": "en-US",
"title": "TextExpander Development – Page 1",
"description": "Communicate Smarter",
"items": [
{
"id": "https://textexpander.com/?p=72196",
"url": "https://textexpander.com/blog/what-is-shorthand-typing-and-how-can-you-learn-it-to-improve-productivity",
"title": "What is Shorthand Typing and How Can You Learn it to Improve Productivity?",
"content_html": "\n
When was the last time you had to do a project that involved hours of typing? If you\u2019ve found yourself in situations in life where you\u2019re responsible for a lot of writing, then you know how time-consuming the process can be.\u00a0
\n\n\n\nFrom business professionals who spend hours drafting documents, emails, and blogs throughout the day\u2013perhaps even students who must write long papers on a regular basis\u2013many people spend their lives writing a massive amount of content.
\n\n\n\nShorthand was designed with one purpose in mind: To allow writers to create content faster. The methods people have used for shorthand have changed throughout the years, but the purpose was always the same.\u00a0
\n\n\n\nExplore the fascinating world of shorthand writing, from its original use by Xenophon who wanted to record his memories of Socrates, to the future where a well-written email can be drafted by typing just a few critical words.\u00a0
\n\n\n\nWith the modern evolution of automation software, you can use shorthand typing without learning any of the shorthand writing systems.\u00a0
\n\n\n\nThis method drastically reduces the time it will take to learn shorthand because rather than learning an entire system of symbols, you\u2019re simply learning how to use a particular type of software.\u00a0
\n\n\n\nText automation software works by allowing you to create detailed snippets that can be recreated by typing only a few words. As you might imagine, this software can drastically reduce the time it takes to draft emails, respond to clients, and create other content that must be used on a regular basis.\u00a0
\n\n\n\nThis is extremely useful in business, where customer service emails, memos, and other written messaging are commonplace.\u00a0\u00a0
\n\n\n\nOne such type of software that can help you and your entire organization write exponentially faster is TextExpander. Not only does this let you draft quality content faster, but it aligns your messaging throughout the organization.\u00a0
\n\n\n\nThis software is ideal for individuals and businesses who frequently have to draft similar types of content. By simply choosing or creating snippets for every purpose you\u2019ll need, you can have members of your team recreate these snippets using just a few chosen keystrokes.\u00a0
\n\n\n\nThe result is saving massive amounts of time on emails and other content. Another major advantage of TextExpander is that it scales nicely so it\u2019s highly effective for individuals, small businesses, and large corporations alike.\u00a0\u00a0
\n\n\n\nIf you\u2019re unsure of which plan would suit your needs, try TextExpander free for 30 days to ensure that it\u2019s the right fit for you.\u00a0
\n\n\n\nIt wasn\u2019t long after writing was discovered that serious writers began to explore quicker ways to express their ideas. While experts agree that the Greek historian, Xenophon, was the first to use a system of shorthand, the Roman Empire deserves credit for creating the first, widely-used system.\u00a0
\n\n\n\nMarcus Tullius Tiro was a member of the house of the great Stoic philosopher, Cicero. Tiro is credited with inventing the first long-lasting shorthand system which translates as \u201cTironian Notes\u201d.\u00a0
\n\n\n\nThis initial form of shorthand was invented in 63 BC, and along with support from Tiro\u2019s dictionary, the system lasted over 1,000 years.\u00a0\u00a0\u00a0
\n\n\n\nIn 1588, inspired by Tiro\u2019s system, Timothy Bright invented a shorthand system that used lines and circles.\u00a0\u00a0
\n\n\n\nVarious events rekindled the demand for shorthand writing throughout history. For example, the industrial revolution was a time when a vast increase in business was taking place, so there was a high demand for stenographers.\u00a0
\n\n\n\nThis demand for a method of quicker writing continued until the present day when multiple established shorthand systems are still being used throughout the world.\u00a0\u00a0
\n\n\n\nShorthand typing is the evolution of shorthand writing and still seeks to fulfill the same goal of producing content faster. This content may include books, notes, historical recordings, and other works, but with shorthand, it can be written at a faster rate.\u00a0
\n\n\n\nElaborate shorthand systems are available to those with the patience and dedication to learn them. These range from Blisssymbolics to the Pittman Method, and each has its own detailed system of rules and symbols.\u00a0
\n\n\n\nIf you\u2019re the scholarly type and you don\u2019t mind learning a shorthand system from the ground up, then there are many ways to make it happen. If you write regularly and are willing to put in the time, then learning a shorthand system can be a rewarding process.\u00a0
\n\n\n\nFollow these steps to learn an effective shorthand system using the classic method.\u00a0
\n\n\n\nWith dozens of established shorthand systems available today, it\u2019ll take some research to find the one that piques your interest. Each has its symbols, quirks, and complexities, so it\u2019s recommended to take some time and review them to see which is worth your time and effort.\u00a0
\n\n\n\nHere are some of the many shorthand systems you may consider:\u00a0
\n\n\n\nOnce you\u2019ve found the shorthand system that resonates with you, it\u2019s time for research. Gather all of the books, websites, and other media on that shorthand system that you can.\u00a0
\n\n\n\nThink of it with the same intensity as learning another language. It\u2019ll take a substantial amount of studying, reading, and repetition to thoroughly understand the shorthand system to the point where you can use it effectively.\u00a0
\n\n\n\nNo matter the system you choose, there will be valuable information online and very likely books you can use to study it. Plus, websites like Shorthandly are dedicated to helping passionate writers learn either Pittman or Gregg Shorthand in record time.\u00a0
\n\n\n\nRegardless of the type of media you use to gain knowledge, it will require frequent and diligent study to thoroughly understand any type of shorthand.\u00a0\u00a0
\n\n\n\nThe other major part of learning your choice of shorthand typing is to practice constantly.\u00a0
\n\n\n\nAnyone who\u2019s studied a language in high school and then forgot it shortly after can tell you that it takes regular practice actually to retain what you\u2019ve learned. The same is true for shorthand writing.\u00a0
\n\n\n\nSimply learning it isn\u2019t enough. You\u2019ll have to practice making each symbol, writing words and sentences, and doing it often. Only then will you reach the point where you can reliably use shorthand for business and other important purposes.\u00a0\u00a0
\n\n\n\nFor people to put in substantial time and effort to learn shorthand typing, there must be a worthwhile benefit. While the most obvious benefit is time, another historical benefit of shorthand was the secrecy of knowing a unique way of writing.\u00a0
\n\n\n\nToday, enhancing business and productivity are the key reasons people take the time to use shorthand. Discover an in-depth overview of the key advantages of shorthand typing.\u00a0
\n\n\n\nThousands of years ago when the first form of shorthand was used, it was used to draft more content in less time. Fast forward to 2022, and the goal is the same.\u00a0
\n\n\n\nWhether you\u2019re saving time in your personal life or saving time in business, there\u2019s no greater currency than time. For individuals, that extra few hours you save by using shorthand can be used to spend time with your favorite people or engage in other hobbies.\u00a0
\n\n\n\nFor those who use shorthand in business, it can free up employees for other important tasks, like actively helping customers.\u00a0
\n\n\n\nIf you zoom out and look at the bigger picture of your business operations, then you can see the real value that shorthand typing provides.\u00a0
\n\n\n\nAny customer service manager is likely to get a lot of value out of shorthand software because it allows rapid responses and company-wide consistency.\u00a0
\n\n\n\nThe hours each individual saves by not fully typing a detailed email to customers or a customer satisfaction sheet adds up. Soon, that 60 minutes per workday saved becomes five hours saved each week, and hundreds of man-hours saved each year.\u00a0
\n\n\n\nEventually, the shorthand investment you made through software or training has paid for itself. Time is money, and cutting one of the most time-consuming processes in your organization \u2013 writing \u2013 is virtually guaranteed to save tons of time and money.\u00a0
\n\n\n\nFor an easy example of how shorthand automation software can save you time, take a moment to learn about TextExpander. Assuming that many people in your organization have to type memos, emails, and other content, TextExpander offers a way to keep your messaging not just fast, but consistent.\u00a0
\n\n\n\nThat way you know that Jim in customer service is on the same page as your secretary and the marketing team.\u00a0
\n\n\n\nYou can design snippets that craft the perfect message you want to say for various occasions. Then anyone in your organization can trigger your customized snippet with only a few words.\u00a0
\n\n\n\nConsidering that TextExpander starts at just $3 per month, it\u2019s easy to see how this can save massive amounts of time for any business. You can leverage the power of shorthand typing today at a low cost with this innovative automation software.
\n\n\n\nSince the goal of shorthand typing is to write faster, it\u2019s important that the speed of your shorthand is faster than your natural typing speed.\u00a0
\n\n\n\nAs for a specific goal to aim for, 60-80 words per minute is a reasonable goal. Although that goal seems rather modest, some shorthand experts reach speeds of 160 wpm, so the sky is the limit when it comes to your shorthand typing abilities.\u00a0
\n\n\n\nWhile shorthand typing is a singular topic, there are multiple ways to make it happen. This is reflected in the three types of software that enable some form of short form typing.\u00a0
\n\n\n\nAs you read about the best type of software in these three categories, consider which type may be the best fit for you and your business needs.\u00a0
\n\n\n\nAs one of the most innovative types of software on the market, TextExpander sets itself apart by offering a distinct service at a highly-affordable price.\u00a0
\n\n\n\nThe fact that it\u2019s fully customizable is a major advantage as well. This means that you can personally craft the internal and external messaging your company sends, and rest assured that every employee understands how to use it.\u00a0
\n\n\n\nHow long does your staff spend answering the same questions and sending the same emails each day? With TextExpander, they can send a well-crafted email in seconds, using personalized snippets designed by you.\u00a0
\n\n\n\nThe term \u201cstenographer\u201d comes from the device they use, which is a stenotype. Professionals who work as stenographers typically have to type transcripts from courts or closed captioning for speeches, so they must be able to type at 160-200 words per minute.
\n\n\n\nPlover is a free, open-source software that allows anyone to contribute or use their digital tools. By simply installing Plover, your keyboard will gain access to all of the tools that are typically on a steno machine.\u00a0
\n\n\n\nSince it\u2019s open source, the software is always improving and offering new options, so anyone with aspirations of becoming a stenographer is strongly encouraged to look into Plover.\u00a0\u00a0
\n\n\n\nArtificial intelligence copywriting software has become a new product line in recent years, and Jasper is currently the most popular option.\u00a0
\n\n\n\nJasper makes a lot of claims about how you can write professional blogs in record time with AI-generated text. Assuming this text meets your quality standards, you could certainly save a lot of time with this product.\u00a0
\n\n\n\nJasper offers an array of tools that help with creating SEO content, keywords, and blogs. If you\u2019re curious about the state of AI copywriting software, Jasper comes with three pricing plans, but you can try it for free to see if it fits your needs.\u00a0
\n\n\n\nWith numerous styles, products, and methods of shorthand typing, anyone who\u2019s interested is bound to have a lot of questions. Feel free to peruse these common questions associated with shorthand writing and typing.\u00a0
\n\n\n\nIf you already know a system of shorthand writing, you can actually program those characters into Google so you can use shorthand on your computer.\u00a0
\n\n\n\nIf you don\u2019t know, there are many ways to learn shorthand online, or you can try one of the types of shorthand software mentioned above.\u00a0\u00a0
\n\n\n\nMany examples of shorthand writing are available online. The example below shows symbols from the Gregg and Pittman shorthand styles, which are among the most popular and widely-used.\u00a0
\n\n\n\nShorthandly and Pitman-Training are among the most popular websites for learning shorthand online. Note that other sites specialize in teaching one of the dozens of different forms of shorthand typing, so feel free to research the one you\u2019re most interested in.\u00a0
\n\n\n\nWhile the easiest option is to program characters onto your computer keyboard, there is a site called StenoWorks that sells steno machines and other gear related to shorthand writing.\u00a0
\n\n\n\nConsider advancing your knowledge of shorthand typing and writing methods with the following links and videos.
\n\n\n\nWhat are your thoughts on customer service automation software? Do you envision a massive suite of modules, each contributing to a giant price tag?
\n\n\n\nAs of 2022, automation software has evolved to include almost every aspect of customer service you\u2019ll find in business. From live chatbots to automated help desks, field agent trackers to shorthand typing automation, you no longer need to purchase a multi-faceted business suite to gain the benefits you\u2019re looking for.\u00a0
\n\n\n\nDiscover five categories of automation software and the top product for each, all while learning more about how this technology works and what it can do for your business.
\n\n\n\nAutomation software is designed to fully integrate with your business in the same way that a CRM does, for example. This all-encompassing aspect makes it all the more important that you find one that\u2019s not only worth the cost, but one that actually improves your daily operations, as well.\u00a0
\n\n\n\nIt\u2019s important to note that we\u2019re in a major growth period for automation. A survey at Gartner showed that 69% of day-to-day managerial work will be entirely automated by 2024. This means businesses that fail to adapt could be left behind by automation technology.\u00a0
\n\n\n\nThis research is worth the time and effort though because the right type of software can make a massive difference. Consider these common benefits that automation software can provide for you.
\n\n\n\nTasks like filling out forms and writing response emails can take up the majority of your employees\u2019 day. With the right software, you can quickly perform these functions at the touch of a button or a few simple keystrokes. This frees up more time for your employees to do more forward-focused or creative work.\u00a0
\n\n\n\nEmployee burnout is a real problem, and it can be solved with the right type of automation. Recent surveys revealed that 90% of employees feel burdened with repetitive and boring tasks that can be easily automated.
\n\n\n\nMixing up forms, accounts, and contacts can set your business back, creating needless problems and confusion along the way.\u00a0
\n\n\n\nA typical feature of automation software is that it improves the user experience, making it easier than ever to store and organize data so your entire team can keep track of it.\u00a0
\n\n\n\nAlmost every business has an interest in boosting their employees\u2019 efficiency. A recent survey showed that 51% of automation initiatives were taken to boost employee efficiency.
\n\n\n\nAutomation software can help every facet of your business, from customer service to sales, and more. If you take account of the most time-consuming tasks in your company, you\u2019ll probably find a program that can automate them.\u00a0
\n\n\n\nIt\u2019s important to note that there are numerous automation software products on the market and each will offer a different set of features. Nonetheless, there are general advantages of automation software that you can expect, including:
\n\n\n\nOnly by doing research and trying products that seem to be a good fit can you find the software that\u2019s optimal for your business. Luckily, many of these products offer a free trial so you can see how they perform at little to no cost.
\n\n\n\nCustomer service is such a key part of most businesses that any tool that can improve it is often worth the expense.\u00a0
\n\n\n\nWhether you need to manage an expansive list of contacts, keep a large team connected, or ensure that you have the best live chat service on the market, you\u2019ll find an automation tool that fits your specific needs.
\n\n\n\nThis can create problems if every employee isn\u2019t on the same page. Keeping messaging consistent and accurate, especially when working with your customers, is imperative to providing a seamless customer experience.\u00a0
\n\n\n\nTextExpander singlehandedly solves this problem by creating detailed, professional emails and responses with just a few keystrokes entered by your employee.\u00a0
\n\n\n\nAny business leaders that want to streamline their messaging both inside and outside of their organization can benefit greatly from TextExpander.\u00a0
\n\n\n\nWith TextExpander, you can create templates for any type of text you need to send within your business. These templates streamline your responses, so your newest intern can send the exact same response to a customer that your marketing director can, all by typing in a few keystrokes.\u00a0
\n\n\n\nThis solves the problem of miscommunications among members of your team. Not to mention the vast amount of time your team will save, drafting an entire email by typing a few keystrokes.\u00a0
\n\n\n\nIn the latest update, TextExpander 7, there are more refined features than ever before. These include ways to keep your team consistent and accurate, help them to work faster and smarter, and customize your standardized emails and other texts.\u00a0
\n\n\n\nSome of the most impressive features of TextExpander include:\u00a0
\n\n\n\nIf you suspect that TextExpander would be a great addition to your business, feel free to check out their four unique pricing options. They start at just $3.33 per month, and each option includes a host of features that ensure that your writing will be fast and professional each and every time.\u00a0
\n\n\n\nWhen modern business leaders talk about how call centers are updated, this is the type of customer service software they should upgrade to.\u00a0
\n\n\n\nLiveAgent is an all-in-one help desk software that\u2019s used by Forbes, Airbus, and Nascar. It\u2019s won awards for having the fastest live chat feature in the market and for its innovative system of managing tickets.\u00a0
\n\n\n\nAny business that is still using a call center would benefit greatly from upgrading to LiveAgent. Also, if your office or phone lines are often overwhelmed by customer questions, LiveAgent is the perfect tool for managing them.\u00a0
\n\n\n\nEssentially, LiveAgent is comprised of an elaborate help desk, an advanced ticketing system, and the fastest live chat feature available.\u00a0
\n\n\n\nThe fact that these tools fully integrate with social media platforms is valuable as well. It means you can respond to followers directly from LiveAgent, rather than logging in to each individual platform.\u00a0
\n\n\n\nWhile LiveAgent definitely isn\u2019t the only live chat service on the market, it has remarkable features that set it apart.\u00a0
\n\n\n\nIf you\u2019re interested in giving LiveAgent a try, there are three pricing plans starting at $15 per month. A free option is also included with some limitations, so you can see what this tool is about without having to make a commitment.\u00a0
\n\n\n\nLead generation is a challenge for many businesses, and many of the traditional methods, such as cold-calling, are falling by the wayside. Zendesk makes lead generation easier, in addition to a wide array of additional customer service tools and features.
\n\n\n\nIf generating leads is a constant need in your business, then odds are pretty high that Zendesk will work well for you. It also offers an innovative sales CRM called Zendesk Sell which has the goal of improving the productivity of your sales team.\u00a0
\n\n\n\nRather than a substitute for one function, Zendesk is an all-encompassing customer service platform. It\u2019s an all-in-one source for lead generation, but also provides live chat, social media, and email integration.\u00a0\u00a0
\n\n\n\nUltimately, Zendesk is a cloud-based desk management tool that performs a wide range of useful and customizable business functions.\u00a0
\n\n\n\nWhile various review sites list the high price of Zendesk as its primary drawback, they do offer a free trial so you can purchase the software confidently after trying it.\u00a0
\n\n\n\nServiceNow is a multi-faceted customer service software that is perfect for the right type of business. The tool seems perfect for IT businesses that must track and send out field agents to homes or businesses to make repairs or modifications.\u00a0
\n\n\n\nServiceNow is essentially four major customer service tools in one and it operates by automating digital workflows.\u00a0
\n\n\n\nAside from the expansive field agent management tool, there are many benefits here that any business would find useful. These include automated financial service operations, field service management, and customer service management tools that provide a large boost in efficiency.
\n\n\n\nBusinesses that use field agents are the ones who will get the most benefit out of this software. By effortlessly tracking different individual agents on a map, you can more efficiently direct employees to where they need to go. It\u2019s easy to see how this tool can expedite field service calls, in addition to the many customer service features it offers.\u00a0
\n\n\n\nPricing varies from company to company for ServiceNow, but you can visit their site and request a custom quote. By sending your email to the staff from the website, they\u2019ll get in touch with you within two business days to answer your questions.\u00a0
\n\n\n\nIn America alone, there are 350-430 languages that are commonly used, so it\u2019s easy to see the value in a customer service tool that supports over 35 languages. This is especially true since globalization continues to be popular, and numerous businesses partner with overseas organizations for various purposes.\u00a0
\n\n\n\nHappyFox is an innovative solution to customer service that\u2019s perfect for businesses that often deal with various countries, cultures, and languages.\u00a0
\n\n\n\nHighly beneficial for sales agents and customer service professionals, HappyFox offers a help desk, live chat, and the ability to help customers from anywhere in the world.\u00a0
\n\n\n\nHappyFox also includes an elaborate ticket management system for handling customer questions and complaints. The reporting is automated and detailed and the entire suite is easy to use and integrate.\u00a0
\n\n\n\nLike many other types of business software, HappyFox is priced in four categories, ranging from $26 to $64 per month. Peruse their pricing page to see the features included under each plan and determine which may be perfect for your business.\u00a0
\n\n\n\nTraditional business automation software typically comes in the form of customer service suites. These are essentially a collection of modules that take over many of your business functions at once.\u00a0
\n\n\n\nWhile these business suites can provide an advantage in some areas, they often also come with a hefty price tag and include a plethora of services you may not need. The problem arises when you like one or two features of the product, but are required to pay over a thousand dollars per month \u2013 especially for large customer service teams \u2013 for an entire suite of capabilities that you may not use.\u00a0
\n\n\n\nAs automation software evolves, we can see remarkable improvements in customization, price, and specificity in the features they offer. For example, if you need to improve your emailing and messaging function across your organization, you no longer need an expensive suite; simply get TextExpander and empower all of your employees to access top-quality content in record time.\u00a0
\n\n\n\nMany individual services can be provided by specific automation products now, so overpriced traditional suites are no longer the only option.
\n\n\n\nSome business owners with new start-ups may like the idea of a one-stop-shop for all of the services they\u2019ll need. Although a traditional suite may have a high price tag for a new start-up, it also checks a lot of boxes and can seem like a tempting deal for customer service managers.\u00a0
\n\n\n\nIt\u2019s only after time spent doing business that leaders know what areas need extra help. Perhaps your team is great at customer service on the phone, but their messaging is flawed and inconsistent in emails. Smart companies can do research to find the exact type of automated software that\u2019s worthy of their investment.\u00a0
\n\n\n\nTraditionally, you\u2019d have to purchase an entire business suite that included many options of varying usefulness. You might need a handful of features, but find that they\u2019re only available by buying into a suite that features numerous modules. These were often expensive and would typically include a subscription-type fee, sometimes with cafeteria-style choices for the modules.
\n\n\n\nHubSpot is a prime example of a leading business suite that provides many services. The three pricing options they provide for their customer service hub vary greatly but start at an affordable $45 per month at the Starter level.\u00a0
\n\n\n\nJumping to the middle tier though will cost $450 per month for five users at the Professional tier. Finally, for larger companies that need the Enterprise plan, you can expect to pay $1,200 for 10 users each month.\u00a0
\n\n\n\nNote that there\u2019s no bad answer in business\u2013it\u2019s more about finding the exact tools you need without wasting excess money. Some businesses do well with an all-encompassing business suite, while others can keep their costs low by choosing the specific tools they need to automate key customer services.\u00a0
\n\n\n\nSpreadsheets are another key example. Some businesses still rely on an employee to manually enter data and macros into Excel. While Excel is a great traditional spreadsheet option, it simply can\u2019t compare to an automation software like FlashSpread, which automates all of the spreadsheet processes at your business.\u00a0\u00a0
\n\n\n\nOverall, traditional methods are still widely used and can be useful to businesses that want many services at once. But it\u2019s crucial to know that there\u2019s less expensive automation software out there that may perform the exact service you need at a lower cost.\u00a0
\n\n\n\nAutomation is a fairly new technology and there\u2019s a lot of information out there for those who want to learn about it. Explore our FAQs to get answers to some of the most common questions related to customer service automation.
\n\n\n\nCustomer service automation is the process of effectively helping customers with the use of live chat features, automatic help desks, and other automated functions.\u00a0
\n\n\n\nBy using technology that simplifies and automates one or more customer service functions, you\u2019re essentially automating the job. Typically, the worker will still be required to do the task, but they\u2019ll do it more efficiently using automation tools. This leaves time for real-time tasks, like talking directly to customers or searching for leads.\u00a0\u00a0
\n\n\n\nThe act of automating any of the processes involved in customer service is customer service automation. A prime example is getting rid of call centers in favor of an automated help desk that utilizes live chat technology.\u00a0
\n\n\n\nEach of the products in this list is a key example, and just about every customer service task can be automated. Common examples include an easy-to-use help desk, an automated ticket manager, instantly filling out customer forms, and automated responses to frequent questions via email.\u00a0
\n\n\n\nThe most noteworthy advantages of customer service automation include increased speed, efficiency, and ease of necessary processes. The ability to free up manpower for more creative tasks instead of filling out spreadsheets and typing out long, repetitive emails is a game-changer.\u00a0
\n\n\n\nThere are also many advantages for customers who interact with businesses that use automation. Instead of dealing with a tedious call center, customers can get responses instantly from a live chat service, for example.\u00a0
\n\n\n\nEfficiency, reporting, and organization are also improved by customer service automation.\u00a0\u00a0
\n\n\n\nWhile automation offers real, significant advantages for business professionals, the main disadvantage is the high cost of some of these services. That said, if the software works well, it will pay for itself with its benefits.\u00a0
\n\n\n\nIt could also be said that the software still requires the human touch to not only make it work but to understand the results. However, it should be noted that business automation is still in its earliest stages. Time will tell how advanced and commonplace automation becomes in the future.
\n", "content_text": "What are your thoughts on customer service automation software? Do you envision a massive suite of modules, each contributing to a giant price tag?\n\n\n\nAs of 2022, automation software has evolved to include almost every aspect of customer service you\u2019ll find in business. From live chatbots to automated help desks, field agent trackers to shorthand typing automation, you no longer need to purchase a multi-faceted business suite to gain the benefits you\u2019re looking for.\u00a0\n\n\n\nDiscover five categories of automation software and the top product for each, all while learning more about how this technology works and what it can do for your business.\n\n\n\nHow Can Automation Software Help Your Business?\n\n\n\nAutomation software is designed to fully integrate with your business in the same way that a CRM does, for example. This all-encompassing aspect makes it all the more important that you find one that\u2019s not only worth the cost, but one that actually improves your daily operations, as well.\u00a0\n\n\n\nIt\u2019s important to note that we\u2019re in a major growth period for automation. A survey at Gartner showed that 69% of day-to-day managerial work will be entirely automated by 2024. This means businesses that fail to adapt could be left behind by automation technology.\u00a0\n\n\n\nThis research is worth the time and effort though because the right type of software can make a massive difference. Consider these common benefits that automation software can provide for you.\n\n\n\nSave Time on Tedious Tasks\n\n\n\nTasks like filling out forms and writing response emails can take up the majority of your employees\u2019 day. With the right software, you can quickly perform these functions at the touch of a button or a few simple keystrokes. This frees up more time for your employees to do more forward-focused or creative work.\u00a0\n\n\n\nEmployee burnout is a real problem, and it can be solved with the right type of automation. Recent surveys revealed that 90% of employees feel burdened with repetitive and boring tasks that can be easily automated.\n\n\n\nBoost Efficiency and Organization\n\n\n\nMixing up forms, accounts, and contacts can set your business back, creating needless problems and confusion along the way.\u00a0\n\n\n\nA typical feature of automation software is that it improves the user experience, making it easier than ever to store and organize data so your entire team can keep track of it.\u00a0\n\n\n\nAlmost every business has an interest in boosting their employees\u2019 efficiency. A recent survey showed that 51% of automation initiatives were taken to boost employee efficiency.\n\n\n\nAdditional Benefits of Automation Software\n\n\n\nAutomation software can help every facet of your business, from customer service to sales, and more. If you take account of the most time-consuming tasks in your company, you\u2019ll probably find a program that can automate them.\u00a0\n\n\n\nIt\u2019s important to note that there are numerous automation software products on the market and each will offer a different set of features. Nonetheless, there are general advantages of automation software that you can expect, including:\n\n\n\n\nEnhanced Productivity\n\n\n\nIncreased Reliability\n\n\n\nAvailability of Key Tools and Features\n\n\n\nBoosted Performance, Speed, and Accuracy\n\n\n\nReduction in Operating Costs\n\n\n\n\nOnly by doing research and trying products that seem to be a good fit can you find the software that\u2019s optimal for your business. Luckily, many of these products offer a free trial so you can see how they perform at little to no cost.\n\n\n\n5 Types of Automation Software to Explore\n\n\n\nCustomer service is such a key part of most businesses that any tool that can improve it is often worth the expense.\u00a0\n\n\n\nWhether you need to manage an expansive list of contacts, keep a large team connected, or ensure that you have the best live chat service on the market, you\u2019ll find an automation tool that fits your specific needs.\n\n\n\n1. Best Shorthand Automation Software: TextExpander\n\n\n\nThis can create problems if every employee isn\u2019t on the same page. Keeping messaging consistent and accurate, especially when working with your customers, is imperative to providing a seamless customer experience.\u00a0\n\n\n\nTextExpander singlehandedly solves this problem by creating detailed, professional emails and responses with just a few keystrokes entered by your employee.\u00a0\n\n\n\nAny business leaders that want to streamline their messaging both inside and outside of their organization can benefit greatly from TextExpander.\u00a0\n\n\n\nLeverage TextExpander Customer Service Templates\n\n\n\nWith TextExpander, you can create templates for any type of text you need to send within your business. These templates streamline your responses, so your newest intern can send the exact same response to a customer that your marketing director can, all by typing in a few keystrokes.\u00a0\n\n\n\nThis solves the problem of miscommunications among members of your team. Not to mention the vast amount of time your team will save, drafting an entire email by typing a few keystrokes.\u00a0\n\n\n\nKey Features of TextExpander\n\n\n\nIn the latest update, TextExpander 7, there are more refined features than ever before. These include ways to keep your team consistent and accurate, help them to work faster and smarter, and customize your standardized emails and other texts.\u00a0\n\n\n\nSome of the most impressive features of TextExpander include:\u00a0\n\n\n\n\nUse fill-in-the-blank snippets to create custom forms\n\n\n\nBuilt-in HTML, CSS, AutoCorrect, accented words, symbols, and emojis\n\n\n\nExpand your snippets in any application\n\n\n\nAccess your snippets on all devices with your TextExpander user account\n\n\n\n\nHow is TextExpander Priced?\n\n\n\nTextExpander starts at just $3.33 per month for individuals and $8.33 per month per user for teams.\n\n\nIf you suspect that TextExpander would be a great addition to your business, feel free to check out their four unique pricing options. They start at just $3.33 per month, and each option includes a host of features that ensure that your writing will be fast and professional each and every time.\u00a0\n\n\n\n2. Best Automation Software with Live Chat: LiveAgent\n\n\n\nWhen modern business leaders talk about how call centers are updated, this is the type of customer service software they should upgrade to.\u00a0\n\n\n\nLiveAgent is an all-in-one help desk software that\u2019s used by Forbes, Airbus, and Nascar. It\u2019s won awards for having the fastest live chat feature in the market and for its innovative system of managing tickets.\u00a0\n\n\n\nAny business that is still using a call center would benefit greatly from upgrading to LiveAgent. Also, if your office or phone lines are often overwhelmed by customer questions, LiveAgent is the perfect tool for managing them.\u00a0\n\n\n\nLiveAgent Tools\n\n\n\nEssentially, LiveAgent is comprised of an elaborate help desk, an advanced ticketing system, and the fastest live chat feature available.\u00a0\n\n\n\nThe fact that these tools fully integrate with social media platforms is valuable as well. It means you can respond to followers directly from LiveAgent, rather than logging in to each individual platform.\u00a0\n\n\n\nKey Features of LiveAgent\n\n\n\nWhile LiveAgent definitely isn\u2019t the only live chat service on the market, it has remarkable features that set it apart.\u00a0\n\n\n\n\nInnovative ticketing system lets you manage all customer tickets from one location\u00a0\n\n\n\nAutomate your workflow through time, action, and SLA rules\n\n\n\nCreate predefined answers to respond to frequent questions and issues\n\n\n\nFully-customizable chat button that\u2019s easy to use and implement\n\n\n\n\nHow is LiveAgent Priced?\n\n\n\nIf you\u2019re interested in giving LiveAgent a try, there are three pricing plans starting at $15 per month. A free option is also included with some limitations, so you can see what this tool is about without having to make a commitment.\u00a0\n\n\n\n3. Best Software for Managing Large Teams: Zendesk\n\n\n\nLead generation is a challenge for many businesses, and many of the traditional methods, such as cold-calling, are falling by the wayside. Zendesk makes lead generation easier, in addition to a wide array of additional customer service tools and features.\n\n\n\nIf generating leads is a constant need in your business, then odds are pretty high that Zendesk will work well for you. It also offers an innovative sales CRM called Zendesk Sell which has the goal of improving the productivity of your sales team.\u00a0\n\n\n\nZendesk Tools\n\n\n\nRather than a substitute for one function, Zendesk is an all-encompassing customer service platform. It\u2019s an all-in-one source for lead generation, but also provides live chat, social media, and email integration.\u00a0\u00a0\n\n\n\nUltimately, Zendesk is a cloud-based desk management tool that performs a wide range of useful and customizable business functions.\u00a0\n\n\n\nKey Features of Zendesk\n\n\n\n\nFully integrated with apps like Google Analytics and Salesforce\n\n\n\nCustomer service portal built from customizable tools\n\n\n\nCentralize your entire sales team with a one-stop CRM\n\n\n\nTrack the history of your customers and prospects with ease\n\n\n\n\nHow is Zendesk Priced?\n\n\n\nWhile various review sites list the high price of Zendesk as its primary drawback, they do offer a free trial so you can purchase the software confidently after trying it.\u00a0\n\n\n\n4. Best Automation Software for IT Professionals: ServiceNow\n\n\n\nServiceNow is a multi-faceted customer service software that is perfect for the right type of business. The tool seems perfect for IT businesses that must track and send out field agents to homes or businesses to make repairs or modifications.\u00a0\n\n\n\nServiceNow is essentially four major customer service tools in one and it operates by automating digital workflows.\u00a0\n\n\n\nServiceNow Tools\n\n\n\nAside from the expansive field agent management tool, there are many benefits here that any business would find useful. These include automated financial service operations, field service management, and customer service management tools that provide a large boost in efficiency.\n\n\n\nBusinesses that use field agents are the ones who will get the most benefit out of this software. By effortlessly tracking different individual agents on a map, you can more efficiently direct employees to where they need to go. It\u2019s easy to see how this tool can expedite field service calls, in addition to the many customer service features it offers.\u00a0\n\n\n\nKey Features of ServiceNow\n\n\n\n\nImprove workforce management by connecting business processes\u00a0\n\n\n\nExtend service capabilities by automating digital processes\n\n\n\nImprove retention with an innovative customer service interface and live chat feature\n\n\n\nEasily manage your team in the field, including their location and the tools they\u2019re using\u00a0\n\n\n\n\nHow is ServiceNow Priced?\n\n\n\nPricing varies from company to company for ServiceNow, but you can visit their site and request a custom quote. By sending your email to the staff from the website, they\u2019ll get in touch with you within two business days to answer your questions.\u00a0\n\n\n\n5. Best Software for Bilingual and Global Teams: HappyFox\n\n\n\nIn America alone, there are 350-430 languages that are commonly used, so it\u2019s easy to see the value in a customer service tool that supports over 35 languages. This is especially true since globalization continues to be popular, and numerous businesses partner with overseas organizations for various purposes.\u00a0\n\n\n\nHappyFox is an innovative solution to customer service that\u2019s perfect for businesses that often deal with various countries, cultures, and languages.\u00a0\n\n\n\nHappyFox Tools\n\n\n\nHighly beneficial for sales agents and customer service professionals, HappyFox offers a help desk, live chat, and the ability to help customers from anywhere in the world.\u00a0\n\n\n\nHappyFox also includes an elaborate ticket management system for handling customer questions and complaints. The reporting is automated and detailed and the entire suite is easy to use and integrate.\u00a0\n\n\n\nKey Features of HappyFox\n\n\n\n\nSupports over 35 languages to help customers globally\u00a0\n\n\n\nAutomate your customer service processes to save time and reduce costs\n\n\n\nEasily manage tasks across your organization to complete tickets in record time\n\n\n\nView and analyze a variety of useful insights through detailed reporting\n\n\n\n\nHow is HappyFox Priced?\n\n\n\nLike many other types of business software, HappyFox is priced in four categories, ranging from $26 to $64 per month. Peruse their pricing page to see the features included under each plan and determine which may be perfect for your business.\u00a0\n\n\n\nA Brief Look at Traditional Customer Service Software Suites\n\n\n\nTraditional business automation software typically comes in the form of customer service suites. These are essentially a collection of modules that take over many of your business functions at once.\u00a0\n\n\n\nWhile these business suites can provide an advantage in some areas, they often also come with a hefty price tag and include a plethora of services you may not need. The problem arises when you like one or two features of the product, but are required to pay over a thousand dollars per month \u2013 especially for large customer service teams \u2013 for an entire suite of capabilities that you may not use.\u00a0\n\n\n\nAs automation software evolves, we can see remarkable improvements in customization, price, and specificity in the features they offer. For example, if you need to improve your emailing and messaging function across your organization, you no longer need an expensive suite; simply get TextExpander and empower all of your employees to access top-quality content in record time.\u00a0\n\n\n\nMany individual services can be provided by specific automation products now, so overpriced traditional suites are no longer the only option.\n\n\n\nWhich Businesses are Traditional Suites Best For?\n\n\n\nSome business owners with new start-ups may like the idea of a one-stop-shop for all of the services they\u2019ll need. Although a traditional suite may have a high price tag for a new start-up, it also checks a lot of boxes and can seem like a tempting deal for customer service managers.\u00a0\n\n\n\nIt\u2019s only after time spent doing business that leaders know what areas need extra help. Perhaps your team is great at customer service on the phone, but their messaging is flawed and inconsistent in emails. Smart companies can do research to find the exact type of automated software that\u2019s worthy of their investment.\u00a0\n\n\n\nHow are Traditional Suites Priced?\n\n\n\nTraditionally, you\u2019d have to purchase an entire business suite that included many options of varying usefulness. You might need a handful of features, but find that they\u2019re only available by buying into a suite that features numerous modules. These were often expensive and would typically include a subscription-type fee, sometimes with cafeteria-style choices for the modules.\n\n\n\nPopular Examples of Traditional Business Suites\n\n\n\nHubSpot is a prime example of a leading business suite that provides many services. The three pricing options they provide for their customer service hub vary greatly but start at an affordable $45 per month at the Starter level.\u00a0\n\n\n\nJumping to the middle tier though will cost $450 per month for five users at the Professional tier. Finally, for larger companies that need the Enterprise plan, you can expect to pay $1,200 for 10 users each month.\u00a0\n\n\n\nNote that there\u2019s no bad answer in business\u2013it\u2019s more about finding the exact tools you need without wasting excess money. Some businesses do well with an all-encompassing business suite, while others can keep their costs low by choosing the specific tools they need to automate key customer services.\u00a0\n\n\n\nSpreadsheets are another key example. Some businesses still rely on an employee to manually enter data and macros into Excel. While Excel is a great traditional spreadsheet option, it simply can\u2019t compare to an automation software like FlashSpread, which automates all of the spreadsheet processes at your business.\u00a0\u00a0\n\n\n\nOverall, traditional methods are still widely used and can be useful to businesses that want many services at once. But it\u2019s crucial to know that there\u2019s less expensive automation software out there that may perform the exact service you need at a lower cost.\u00a0\n\n\n\nFAQs and Related Resources\n\n\n\nAutomation is a fairly new technology and there\u2019s a lot of information out there for those who want to learn about it. Explore our FAQs to get answers to some of the most common questions related to customer service automation.\n\n\n\nWhat is customer service automation?\n\n\n\nCustomer service automation is the process of effectively helping customers with the use of live chat features, automatic help desks, and other automated functions.\u00a0\n\n\n\nHow do you automate customer service jobs?\n\n\n\nBy using technology that simplifies and automates one or more customer service functions, you\u2019re essentially automating the job. Typically, the worker will still be required to do the task, but they\u2019ll do it more efficiently using automation tools. This leaves time for real-time tasks, like talking directly to customers or searching for leads.\u00a0\u00a0\n\n\n\nWhat is customer experience automation?\n\n\n\nThe act of automating any of the processes involved in customer service is customer service automation. A prime example is getting rid of call centers in favor of an automated help desk that utilizes live chat technology.\u00a0\n\n\n\nCustomer service automation examples?\n\n\n\nEach of the products in this list is a key example, and just about every customer service task can be automated. Common examples include an easy-to-use help desk, an automated ticket manager, instantly filling out customer forms, and automated responses to frequent questions via email.\u00a0\n\n\n\nWhat advantages are there to customer service automation?\n\n\n\nThe most noteworthy advantages of customer service automation include increased speed, efficiency, and ease of necessary processes. The ability to free up manpower for more creative tasks instead of filling out spreadsheets and typing out long, repetitive emails is a game-changer.\u00a0\n\n\n\nThere are also many advantages for customers who interact with businesses that use automation. Instead of dealing with a tedious call center, customers can get responses instantly from a live chat service, for example.\u00a0\n\n\n\nEfficiency, reporting, and organization are also improved by customer service automation.\u00a0\u00a0\n\n\n\nDisadvantages of customer service automation?\n\n\n\nWhile automation offers real, significant advantages for business professionals, the main disadvantage is the high cost of some of these services. That said, if the software works well, it will pay for itself with its benefits.\u00a0\n\n\n\nIt could also be said that the software still requires the human touch to not only make it work but to understand the results. However, it should be noted that business automation is still in its earliest stages. Time will tell how advanced and commonplace automation becomes in the future.", "date_published": "2022-11-16T17:07:20-07:00", "date_modified": "2023-03-15T18:38:42-07:00", "authors": [ { "name": "Nick Napier", "url": "https://textexpander.com/author/nick-napier", "avatar": "https://secure.gravatar.com/avatar/7595738d9423fb5013c7599c19c19ca7?s=512&d=retro&r=g" } ], "author": { "name": "Nick Napier", "url": "https://textexpander.com/author/nick-napier", "avatar": "https://secure.gravatar.com/avatar/7595738d9423fb5013c7599c19c19ca7?s=512&d=retro&r=g" }, "image": "https://textexpander.com/wp-content/uploads/Copy-of-Blog-SocialThumbnail-3.png", "tags": [ "Automation", "automation software", "customer service", "customer service automation software", "Blog", "Customer Support", "Development", "General Business", "Learning New Skills", "Personal Optimization", "Process & Strategy" ], "summary": "Customer service automation software is changing the way businesses operate. If you're considering an upgrade, check out these options." }, { "id": "https://textexpander.com/?p=14639", "url": "https://textexpander.com/blog/team-management-in-software-development", "title": "Team Management in Software Development: Getting it Right", "content_html": "Software developers and engineers are clearly talented \u2014 writing code is demanding and learning multiple languages is difficult, but they manage to do it all.
\n\n\n\nWith so much knowledge and skill in one group, understanding and managing your team\u2019s strengths can be a full-time job. But putting the right people in the right place, managing a productive team, and helping them work better together is possible.\u00a0
\n\n\n\nHere are three things you can focus on for effective team management in software development. \u00a0
\n\n\n\nOf course, you want the right people on your dev team \u2014 all great managers do. \u00a0
\n\n\n\nYou likely spend a lot of time looking for and filling the gaps in your dev team and there\u2019s no doubt you\u2019ve found yourself in an endless pile of portfolios and interviews looking for just the right fit.\u00a0
\n\n\n\nBut, finding a self-driven employee can take time, organization, energy, and an effective recruiting and assessment approach. Here are three tips to help make that process easier:\u00a0
\n\n\n\nLook for the kind of people who invest in their craft \u2014 even in their time away from work. For example, do they code for fun? Or maybe they teach a coding class or write a coding blog?\u00a0
\n\n\n\nWhatever it is they do, passion is an important trait to look for when building your software development team.\u00a0
\n\n\n\nSometimes, no matter how many questions you ask or how thoroughly you review an applicant\u2019s portfolio, you only know whether or not they are a fit after you hire them.\u00a0
\n\n\n\nTo get a better understanding of how your candidates work and where their skillsets lie, try a real-world test. Make it realistic to your business so that it showcases a candidate\u2019s ability, speed and knowledge. You can use a time and work tracking tool like the Work Diary in Upwork to review their development process.\u00a0
\n\n\n\nTake the time to develop a process that truly reflects the candidate\u2019s talents. This process should reveal if they\u2019ll be able to deliver what you are looking for.
\n\n\n\nDon\u2019t shut anyone out at first glance. Sometimes the C++ developer you\u2019re looking for is disguised as a java developer in your leaning tower of applications.\u00a0
\n\n\n\nBe clear in your needs, but curious in your candidate search. Ask the kind of questions that allow you to fully evaluate anyone you speak with. Just make sure you keep an open mind \u2014 new people can bring a new perspective.
\n\n\n\nThere\u2019s more to measuring the productivity of your team than using traditional KPIs \u2014 like velocity or the number of user stories per sprint. These are important for meeting business requirements but they can\u2019t help you understand how your team is functioning. \u00a0
\n\n\n\nInstead, go beyond these classic indicators and level-up your team management by paying attention to what matters to them. Many developers say they are most productive when you offer open communication, deliver clear requirements, and extend a flexible or alternative work schedule.\u00a0
\n\n\n\nBelow are a few examples of metrics you can track to help your team be at their best:\u00a0
\n\n\n\nKeep track of the average number of hours worked per engineer over a specific timeframe. If your average indicates your engineers are being overworked, take it as an early indicator and intervene. Doing so will minimize future burnout and turnover.\u00a0
\n\n\n\nIn addition, tracking hours will help you understand each engineer\u2019s capacity and workload. With this information, you will be able to take steps toward keeping them happy while maximizing sustainability, improving productivity, and increasing quality of work.\u00a0
\n\n\n\nTrack feedback that engineers share during retros and take these seriously. Use that feedback/the challenges that they share to ask \u201cwhy\u201d and address/resolve the issues by creating more efficient processes.\u00a0
\n\n\n\nIf, for example, you have two unresolved issues from last week and four new ones this week, it could be a sign that your attempts to make your process more efficient aren\u2019t working.\u00a0
\n\n\n\nIf this is the case, get to the heart of the issue. Reach out to your stakeholders to ask \u201cwhy.\u201d Understand what\u2019s important to everyone involved and then actually address it.
\n\n\n\nBeing mindful of how much emphasis you are putting on a single metric will make your process improvements more holistic. If you\u2019re only ever tracking one or two aspects of your team\u2019s performance, it might look like you are improving when you\u2019re not really improving at all.\u00a0
\n\n\n\nMake changes one at a time and track that for a few iterations. Once you see improvement, on that change begin testing additional changes.
\n\n\n\nCommunication is the foundation of every great team, but balance is key. Here are some ideas for keeping it real with your team so they\u2019re at their most productive. \u00a0
\n\n\n\nTo improve your communication, try asking your team to communicate in multiple ways. On option is to try visuals and analogies to explain complicated ideas. However, often, tools are necessary to get the job done.
\n\n\n\nFor example, in your day-to-day project communications you could ask your team to use Slack. Or for project-based communications try a project management tool like Trello.\u00a0
\n\n\n\nWhat you need \u2014 and what ultimately works \u2014 will depend on the current dynamics of your team. But at the end of the day, if you give your team the tools they need to communicate and collaborate effectively they\u2019ll be able to create something great together.
\n\n\n\nWhen developers are asked what distracts them from their job most, they often say it\u2019s interruptions in the form of questions or progress updates. Stopping by to say \u201chey, did you get my email\u201d feels harmless, but can actually take your developers out of their deep, focused work. And, after their conversation with you, it can take as long as 15 minutes for them to take off again.
\n\n\n\nIf you do have a question you need to ask, be courteous. Try waiting until you see they\u2019ve looked up or away from their work. Or, better yet, if it isn\u2019t critical put it on the agenda for your next scheduled meeting.
\n
Remember, communication is an ongoing process. Perfecting it will take more than offering tools and freeing up your team\u2019s time.\u00a0
\n\n\n\nHelp your team learn to listen to each other and respect each other\u2019s needs. If you create an environment where your team is comfortable asking questions and setting boundaries, they will have exactly what they need to get their jobs done.
\n\n\n\nThe make-up of your team will vary from project to project \u2014 and maybe even sometimes from day to day \u2014 but one thing all your teams have in common is you.\u00a0
\n\n\n\nIt\u2019s your role as a development team manager to go beyond producing a great product to find and manage a highly-functioning software team \u2014 and their expectations \u2014 through the process.\u00a0
\n\n\n\nTell us, how do you get it right as you work toward achieving your company\u2019s goals?
\n", "content_text": "Software developers and engineers are clearly talented \u2014 writing code is demanding and learning multiple languages is difficult, but they manage to do it all.\n\n\n\nWith so much knowledge and skill in one group, understanding and managing your team\u2019s strengths can be a full-time job. But putting the right people in the right place, managing a productive team, and helping them work better together is possible.\u00a0\n\n\n\nHere are three things you can focus on for effective team management in software development. \u00a0\n\n\n\nHire the Right People\n\n\n\nOf course, you want the right people on your dev team \u2014 all great managers do. \u00a0\n\n\n\nYou likely spend a lot of time looking for and filling the gaps in your dev team and there\u2019s no doubt you\u2019ve found yourself in an endless pile of portfolios and interviews looking for just the right fit.\u00a0\n\n\n\nBut, finding a self-driven employee can take time, organization, energy, and an effective recruiting and assessment approach. Here are three tips to help make that process easier:\u00a0\n\n\n\nFind people who love their work\n\n\n\nLook for the kind of people who invest in their craft \u2014 even in their time away from work. For example, do they code for fun? Or maybe they teach a coding class or write a coding blog?\u00a0\n\n\n\nWhatever it is they do, passion is an important trait to look for when building your software development team.\u00a0\n\n\n\nLook for someone well-rounded\n\n\n\nSometimes, no matter how many questions you ask or how thoroughly you review an applicant\u2019s portfolio, you only know whether or not they are a fit after you hire them.\u00a0\n\n\n\nTo get a better understanding of how your candidates work and where their skillsets lie, try a real-world test. Make it realistic to your business so that it showcases a candidate\u2019s ability, speed and knowledge. You can use a time and work tracking tool like the Work Diary in Upwork to review their development process.\u00a0\n\n\n\nTake the time to develop a process that truly reflects the candidate\u2019s talents. This process should reveal if they\u2019ll be able to deliver what you are looking for.\n\n\n\nTHE KEY: Keep your options open\n\n\n\nDon\u2019t shut anyone out at first glance. Sometimes the C++ developer you\u2019re looking for is disguised as a java developer in your leaning tower of applications.\u00a0\n\n\n\nBe clear in your needs, but curious in your candidate search. Ask the kind of questions that allow you to fully evaluate anyone you speak with. Just make sure you keep an open mind \u2014 new people can bring a new perspective.\n\n\n\nChoose the Right Goals\n\n\n\nThere\u2019s more to measuring the productivity of your team than using traditional KPIs \u2014 like velocity or the number of user stories per sprint. These are important for meeting business requirements but they can\u2019t help you understand how your team is functioning. \u00a0\n\n\n\nInstead, go beyond these classic indicators and level-up your team management by paying attention to what matters to them. Many developers say they are most productive when you offer open communication, deliver clear requirements, and extend a flexible or alternative work schedule.\u00a0\n\n\n\nBelow are a few examples of metrics you can track to help your team be at their best:\u00a0\n\n\n\nCalculate hours worked\n\n\n\nKeep track of the average number of hours worked per engineer over a specific timeframe. If your average indicates your engineers are being overworked, take it as an early indicator and intervene. Doing so will minimize future burnout and turnover.\u00a0\n\n\n\nIn addition, tracking hours will help you understand each engineer\u2019s capacity and workload. With this information, you will be able to take steps toward keeping them happy while maximizing sustainability, improving productivity, and increasing quality of work.\u00a0\n\n\n\nFollow up on retrospective feedback\n\n\n\nTrack feedback that engineers share during retros and take these seriously. Use that feedback/the challenges that they share to ask \u201cwhy\u201d and address/resolve the issues by creating more efficient processes.\u00a0\n\n\n\nIf, for example, you have two unresolved issues from last week and four new ones this week, it could be a sign that your attempts to make your process more efficient aren\u2019t working.\u00a0\n\n\n\nIf this is the case, get to the heart of the issue. Reach out to your stakeholders to ask \u201cwhy.\u201d Understand what\u2019s important to everyone involved and then actually address it.\n\n\n\nTHE KEY: Make changes mindfully\n\n\n\nBeing mindful of how much emphasis you are putting on a single metric will make your process improvements more holistic. If you\u2019re only ever tracking one or two aspects of your team\u2019s performance, it might look like you are improving when you\u2019re not really improving at all.\u00a0\n\n\n\nMake changes one at a time and track that for a few iterations. Once you see improvement, on that change begin testing additional changes.\n\n\n\nCommunicate at the Right Times\n\n\n\nCommunication is the foundation of every great team, but balance is key. Here are some ideas for keeping it real with your team so they\u2019re at their most productive. \u00a0\n\n\n\nUse the right tools\n\n\n\nTo improve your communication, try asking your team to communicate in multiple ways. On option is to try visuals and analogies to explain complicated ideas. However, often, tools are necessary to get the job done.\n\n\n\nFor example, in your day-to-day project communications you could ask your team to use Slack. Or for project-based communications try a project management tool like Trello.\u00a0\n\n\n\nWhat you need \u2014 and what ultimately works \u2014 will depend on the current dynamics of your team. But at the end of the day, if you give your team the tools they need to communicate and collaborate effectively they\u2019ll be able to create something great together.\n\n\n\nKeep the runway clear\n\n\n\nWhen developers are asked what distracts them from their job most, they often say it\u2019s interruptions in the form of questions or progress updates. Stopping by to say \u201chey, did you get my email\u201d feels harmless, but can actually take your developers out of their deep, focused work. And, after their conversation with you, it can take as long as 15 minutes for them to take off again.\n\n\n\nIf you do have a question you need to ask, be courteous. Try waiting until you see they\u2019ve looked up or away from their work. Or, better yet, if it isn\u2019t critical put it on the agenda for your next scheduled meeting.\n\n\n\n\nTHE KEY: Create a safe environment\n\n\n\nRemember, communication is an ongoing process. Perfecting it will take more than offering tools and freeing up your team\u2019s time.\u00a0\n\n\n\nHelp your team learn to listen to each other and respect each other\u2019s needs. If you create an environment where your team is comfortable asking questions and setting boundaries, they will have exactly what they need to get their jobs done.\n\n\n\nFrom Products to People\u00a0\n\n\n\nThe make-up of your team will vary from project to project \u2014 and maybe even sometimes from day to day \u2014 but one thing all your teams have in common is you.\u00a0\n\n\n\nIt\u2019s your role as a development team manager to go beyond producing a great product to find and manage a highly-functioning software team \u2014 and their expectations \u2014 through the process.\u00a0\n\n\n\nTell us, how do you get it right as you work toward achieving your company\u2019s goals?", "date_published": "2020-05-26T11:58:12-07:00", "date_modified": "2021-10-07T10:58:36-07:00", "authors": [ { "name": "Diana Prodan", "url": "https://textexpander.com/author/diana-prodan", "avatar": "https://secure.gravatar.com/avatar/0d4cdd0cfd0ae20271b9b2b41599207f?s=512&d=retro&r=g" } ], "author": { "name": "Diana Prodan", "url": "https://textexpander.com/author/diana-prodan", "avatar": "https://secure.gravatar.com/avatar/0d4cdd0cfd0ae20271b9b2b41599207f?s=512&d=retro&r=g" }, "image": "https://textexpander.com/wp-content/uploads/2020/05/Blog.jpg", "tags": [ "developer", "hiring", "recruiting", "web developer", "Blog", "Development" ], "summary": "What makes a productive software development team? We share a few team management ideas to help you get it right." }, { "id": "https://textexpander.com/?p=14535", "url": "https://textexpander.com/blog/developer-productivity-tips-for-maximum-team-performance", "title": "Developer Productivity Tips for Maximum Team Performance", "content_html": "Being productive makes us happy. Let\u2019s face it, who doesn\u2019t want to do more in less time?
\n\n\n\nMore and more, employers are embracing productivity as the key measure of success. Rather than simply making sure team members are clocking a certain number of hours, they\u2019ve realized that measuring employees\u2019 output is more important.\u00a0
\n\n\n\nEven if your team isn\u2019t focused on productivity in that way, creating the right conditions for a productive team is advantageous to your bottom line and team morale.\u00a0
\n\n\n\nHere are a few ideas to help a development manager\u2019s team be more productive.
\n\n\n\nDistractions are high on any programmer\u2019s list of productivity killers. The cost of interruption is high and achieving flow after a distraction is not as easy as it sounds.
\n\n\n\nOne study of 414 programmers found that a developer is likely to only get two hours of uninterrupted coding time per day at best. Additionally, after a major interruption, it can take an engineer as long as 15 minutes to start coding again.
\n\n\n\nIt doesn\u2019t matter if the disturbance is a self-distraction or an external interruption. Developers need the mental space to process information and complete error-free work. Any distraction can negatively affect developer performance and send them back to the beginning of a problem.\u00a0
\n\n\n\nHere are a couple of ideas for helping your development team combat some of the most common destroyers of deep work.
\n\n\n\nMany offices are full of environmental distractions \u2014 especially in startups where open working spaces are common. You can help your employees find \u2014 and keep \u2014 their flow by encouraging them to wear noise-canceling headphones or giving them options such as working from home, another part of your office, or even an alternate work schedule.\u00a0
\n\n\n\nNothing is less productive than a mandatory meeting or an unscheduled drop-in that could have been handled another way. Show your coding team that you value their time by minimizing required meetings and updates. If you can hold a standup meeting or gather updates via email, do so.\u00a0
\n\n\n\nCumbersome processes and unclear workflow expectations can be the root cause of both unnecessary work and poor code quality. This inhibits progress, can lead to coding errors, technical debt, and the need for additional code review and bug fixes.\u00a0
\n\n\n\nWhen what your team needs to do isn\u2019t clear, they spend precious time figuring it out instead of just getting it done. Here are two requirements for getting the job done efficiently:
\n\n\n\nUnderstanding the requirements of the project you\u2019re working on is essential. The key is building a working relationship with the project\u2019s stakeholders and drafting a concise software development agreement. Yours should describe everything from timelines and responsibilities to deliverables and requirements.
\n\n\n\nBlocked tasks, repetitive manual actions, unclear next steps \u2014 all of these can be counterproductive and slow the amount of work getting done. Help your team to work at its best by instituting a workflow that keeps information flowing and technology that alleviates workloads. Consider sending out relevant coding refreshers or shifting schedules so no one is overloaded.
\n\n\n\nDo you have team members that don\u2019t read their emails or respond to requests for project updates? Does your team always do what they say when they say or are you constantly checking in?
\n\n\n\nPutting together your development team is not easy. Even if you\u2019ve hand-picked the top performers, effectively managing your team is still a challenge.
\n\n\n\nHere are a few ideas for boosting your team\u2019s dynamics for maximum productivity:\u00a0
\n\n\n\nAccording to a comprehensive internal study of Google\u2019s teams, \u201cpsychological safety was far and away the most important of the five [success] dynamics we found.\u201d Without it, people become afraid to take risks and innovate. To help your team blossom, consider integrating a regular team-building exercise. Google indicates that those experiences lead to a 6% increase in team psychological safety ratings.\u00a0
\n\n\n\nFeeling productive doesn\u2019t mean just increasing your output and efficiency. It also means increasing the value you offer \u2014 and being recognized for it. In fact, two of the other five factors on Google\u2019s list for successful team dynamics are Meaning of Work and Impact of Work. Is your team working on something they personally feel is important? Do they believe the work they are doing matters? If you don\u2019t know, ask them.
\n\n\n\nDeveloper productivity is more than just getting a set of tasks done quickly. It\u2019s influenced by process, tools, environment, and work habits. Even better, being productive creates a feeling of satisfaction and motivates people to dig in deeper.\u00a0
\n\n\n\nTell us, what are some of your productivity challenges? What have you done to overcome them?
\n", "content_text": "Being productive makes us happy. Let\u2019s face it, who doesn\u2019t want to do more in less time?\n\n\n\nMore and more, employers are embracing productivity as the key measure of success. Rather than simply making sure team members are clocking a certain number of hours, they\u2019ve realized that measuring employees\u2019 output is more important.\u00a0\n\n\n\nEven if your team isn\u2019t focused on productivity in that way, creating the right conditions for a productive team is advantageous to your bottom line and team morale.\u00a0\n\n\n\nHere are a few ideas to help a development manager\u2019s team be more productive.\n\n\n\nGetting into the flow zone\n\n\n\nDistractions are high on any programmer\u2019s list of productivity killers. The cost of interruption is high and achieving flow after a distraction is not as easy as it sounds.\n\n\n\nOne study of 414 programmers found that a developer is likely to only get two hours of uninterrupted coding time per day at best. Additionally, after a major interruption, it can take an engineer as long as 15 minutes to start coding again.\n\n\n\nIt doesn\u2019t matter if the disturbance is a self-distraction or an external interruption. Developers need the mental space to process information and complete error-free work. Any distraction can negatively affect developer performance and send them back to the beginning of a problem.\u00a0\n\n\n\nHere are a couple of ideas for helping your development team combat some of the most common destroyers of deep work.\n\n\n\nCreate a focus-friendly environment\n\n\n\nMany offices are full of environmental distractions \u2014 especially in startups where open working spaces are common. You can help your employees find \u2014 and keep \u2014 their flow by encouraging them to wear noise-canceling headphones or giving them options such as working from home, another part of your office, or even an alternate work schedule.\u00a0\n\n\n\nEliminate worthless meetings & unscheduled drop-ins\n\n\n\nNothing is less productive than a mandatory meeting or an unscheduled drop-in that could have been handled another way. Show your coding team that you value their time by minimizing required meetings and updates. If you can hold a standup meeting or gather updates via email, do so.\u00a0\n\n\n\nEnforcing a well-defined development process\n\n\n\nCumbersome processes and unclear workflow expectations can be the root cause of both unnecessary work and poor code quality. This inhibits progress, can lead to coding errors, technical debt, and the need for additional code review and bug fixes.\u00a0\n\n\n\nWhen what your team needs to do isn\u2019t clear, they spend precious time figuring it out instead of just getting it done. Here are two requirements for getting the job done efficiently:\n\n\n\nA clear statement of work\n\n\n\nUnderstanding the requirements of the project you\u2019re working on is essential. The key is building a working relationship with the project\u2019s stakeholders and drafting a concise software development agreement. Yours should describe everything from timelines and responsibilities to deliverables and requirements.\n\n\n\nA robust and balanced workflow\n\n\n\nBlocked tasks, repetitive manual actions, unclear next steps \u2014 all of these can be counterproductive and slow the amount of work getting done. Help your team to work at its best by instituting a workflow that keeps information flowing and technology that alleviates workloads. Consider sending out relevant coding refreshers or shifting schedules so no one is overloaded.\n\n\n\nEncouraging strong team dynamics\n\n\n\nDo you have team members that don\u2019t read their emails or respond to requests for project updates? Does your team always do what they say when they say or are you constantly checking in?\n\n\n\nPutting together your development team is not easy. Even if you\u2019ve hand-picked the top performers, effectively managing your team is still a challenge.\n\n\n\nHere are a few ideas for boosting your team\u2019s dynamics for maximum productivity:\u00a0\n\n\n\nSecuring their psychological safety\n\n\n\nAccording to a comprehensive internal study of Google\u2019s teams, \u201cpsychological safety was far and away the most important of the five [success] dynamics we found.\u201d Without it, people become afraid to take risks and innovate. To help your team blossom, consider integrating a regular team-building exercise. Google indicates that those experiences lead to a 6% increase in team psychological safety ratings.\u00a0\n\n\n\nMaking sure they like their job\n\n\n\nFeeling productive doesn\u2019t mean just increasing your output and efficiency. It also means increasing the value you offer \u2014 and being recognized for it. In fact, two of the other five factors on Google\u2019s list for successful team dynamics are Meaning of Work and Impact of Work. Is your team working on something they personally feel is important? Do they believe the work they are doing matters? If you don\u2019t know, ask them.\n\n\n\nEvery distraction counts\n\n\n\nDeveloper productivity is more than just getting a set of tasks done quickly. It\u2019s influenced by process, tools, environment, and work habits. Even better, being productive creates a feeling of satisfaction and motivates people to dig in deeper.\u00a0\n\n\n\nTell us, what are some of your productivity challenges? What have you done to overcome them?", "date_published": "2020-05-19T07:59:36-07:00", "date_modified": "2022-05-20T10:37:43-07:00", "authors": [ { "name": "Diana Prodan", "url": "https://textexpander.com/author/diana-prodan", "avatar": "https://secure.gravatar.com/avatar/0d4cdd0cfd0ae20271b9b2b41599207f?s=512&d=retro&r=g" } ], "author": { "name": "Diana Prodan", "url": "https://textexpander.com/author/diana-prodan", "avatar": "https://secure.gravatar.com/avatar/0d4cdd0cfd0ae20271b9b2b41599207f?s=512&d=retro&r=g" }, "image": "https://textexpander.com/wp-content/uploads/2020/05/TE_Productivity-Tips-Featured-Image_v1_05-19-20.jpg", "tags": [ "developer", "productivity", "web developer", "Blog", "Development" ] }, { "id": "https://textexpander.com/?p=14420", "url": "https://textexpander.com/blog/your-guide-to-the-software-development-life-cycle", "title": "Your Guide to the Software Development Life Cycle", "content_html": "In the fast-paced world of software, it\u2019s hard to believe that the basic development process has been around since the 1950s.\u00a0
\n\n\n\nSure, we\u2019ve made tweaks and improvements such as creating the waterfall model in the 70s and introducing agile in the early 2000s, but the basic steps of the software development life cycle (SDLC) have remained the same.\u00a0
\n\n\n\nTo understand how it\u2019s lasted for so long in an environment of such rapid change, let\u2019s explore what the SDLC involves and the new methodologies that have been layered on top of it over the years. \u00a0
\n\n\n\nThe SDLC is a seven-phase process used by software engineers to design, develop, and test new software products. The primary objective of this seven-phase life cycle is to help development teams create a high-quality product quickly and efficiently.\u00a0
\n\n\n\nEach phase of the life cycle is focused on creating deliverables that feed into the next stage of development. To keep projects running smoothly, every phase has a clearly defined purpose that contributes to the creation of an error-free end product. \u00a0
\n\n\n\nThe SDLC has seven phases. Mastering each stage before moving to the next is key to meeting project requirements and stakeholder expectations. Let\u2019s take a closer look at each of the seven phases.
\n\n\n\n1. Planning
In this initial stage, the development team is focused on collecting the requirements of the project and analyzing them to create a plan for development.\u00a0
TIP: To make this phase easier, many use SDLC project management planning tools. The key is to find one that\u2019s collaborative and flexible enough for dynamic project planning.
\n\n\n\n2. Feasibility & requirements
In the feasibility and requirements phase, the project team works to get the development project off to a great start. This is when they execute a feasibility study and add the results to a software requirement specification (SRS) document for use throughout the life cycle of the project.\u00a0
TIP: Many teams store their SRS document in an easy-to-access and easy to update place such as Google Drive.
\n\n\n\n3. Design & prototyping
At this stage of the process, developers create a series of prototypes and begin gathering early feedback that informs key technical decisions. The process typically starts with a quick-analysis design that gets continually refined throughout the phase.
TIP: It can be hard to know when to call your prototype ready for the next stage, so make sure to define your goals before you begin.
\n\n\n\n4. Software development\u00a0
The goal of the software development phase is to code a working system that addresses all requirements in the SRS document.
TIP: Review your work early and often. Course correct as needed to keep yourself from working too far in the wrong direction.
\n\n\n\n5. Software testing
The testing phase is an important part of the process, ensuring the final product is working properly. At this stage, experienced testers verify the software code and programming work according to the current requirements.\u00a0
TIP: Some amount of rework will be necessary, so plan for it. Use past projects as a guide for anticipating how long any rework might take.
\n\n\n\n6. Implementation & integration
At this stage, the software is released into a production environment and installed into a real-world setting where customers can use it and evaluate its performance.
TIP: To streamline this phase, reuse deployment strategies from past projects. This will allow you to build on previous knowledge and better budget and communicate with clients about what to expect.
\n\n\n\n7. Operations & maintenance
In the operations and maintenance phase, any issues encountered during deployment are communicated back to the development team. Depending on their severity, the team may choose to fix the issue immediately or incorporate it into the next version of the software.\u00a0
TIP: Make it easy for your end-users to tell you about their experience. Their feedback will help you prioritize the updates and plan rework to align with other goals.
\n\n\n\nThe SDLC phases described above are applicable to any software development methodology. Each one requires input from developers, project managers, testers, and stakeholders to be most successful.\u00a0
\n\n\n\nDevelopers should be familiar with each stage of the cycle, even if most of their work focuses on only one of them. Each person involved in the process should understand how they can contribute to improving the process and its outcomes.\u00a0
\n\n\n\nPopular SDLC Methodologies
\n\n\n\nThe SDLC provides a framework to help development teams quickly and efficiently produce high-quality software. A well-performing SDLC will:
\n
Depending on the specific requirements of your project, you may choose to use a different SDLC methodology to achieve them. Popular SDLC methodologies include the waterfall model, spiral model, and the agile model.\u00a0
\n\n\n\nDifferent methodologies give developers options on how much emphasis they need to place on each phase of the life cycle. The frameworks also dictate exactly how each phase plays into the next and guides the duration of a project.\u00a0
\n\n\n\nFor example, a project that needs an expedited development plan might use the agile methodology. But a project that requires thorough documentation might be better off using a waterfall approach.\u00a0
\n\n\n\nChoosing a Software Development Life Cycle Methodology
\n\n\n\nNo matter which methodology is used, the goal is to please stakeholders and produce working software. Let\u2019s talk about how to decide which is right for your project. \u00a0
\n\n\n\nAgile
Agile software development is a fast-paced approach that prioritizes requirements gathering and produces a product quickly. Choose this method if tight feedback loops are important for your project.\u00a0
Waterfall
The waterfall approach is a framework that relies on thorough documentation at each stage. You might choose this approach if signoffs and approvals are important to your decision-makers and stakeholders.
Lean
A lean development methodology prioritizes developer efficiency and cuts waste wherever possible. If you\u2019re under timeline or budgetary constraints, choosing this approach will help you meet them.\u00a0
Iterative
An iterative framework is one that starts work toward defined needs before they are all understood. This approach works to incorporate additional requirements as they arise. Choose this methodology if your project is not well defined and requires you to learn as you go.
Spiral
The spiral approach is similar to the iterative approach, but in this case, known risks are taken into consideration before the development begins. Use this methodology if your end goal is loosely defined, but the risks are clear.\u00a0
DevOps
This methodology has both the developers and operations teams working together, making updates more efficient than with other methods. Choose this approach if you need a robust process to ensure you meet your goals.
Structure for Success
\n\n\n\nPlanning, building, and maintaining a new software system is a complicated process. Our approach can change not just with every project we tackle, but also with every phase of the process.
Thankfully, underneath all of these inconsistencies is a tried-and-true framework that helps us stay on track. Tell us, how do you use the SDLC methodologies to power through your projects?\u00a0
Choosing the right development methodology allows you to deliver the most value to your clients. What works for one development group would make another shudder. This is what we call an SDLC vs Agile debate.
\n\n\n\nTeams that work in an Agile environment worry about the rigidity of waterfall. Likewise, organizations using a waterfall approach wonder what is getting missed with Agile.
\n\n\n\nDespite the opposition in approach, each development method uses the basic tenants of the SDLC. The difference is the team tweaks each phase to work within their framework.
\n\n\n\nThe seven stages of the software development life cycle:
\n\n\n\nWith waterfall, which has a traditional view of the SDLC, each phase has dedicated time and people. A more Agile view of SDLC blurs the lines between many of the stages and doesn\u2019t dedicate time to each one. Both views have their place, and both serve different types of projects well.
\n\n\n\nRight now you might be asking \u201cwell, which one is right for me?\u201d. To figure it out, let\u2019s take a look at traditional SDLC vs Agile SDLC and highlight the four differences that matter most.
\n\n\n\nThe unit of work for traditional SDLC is the phase. A phase is one of the seven stages we shared earlier \u2014 for example, planning or prototyping.
\n\n\n\nEach phase requires different amounts of time and the involvement of different people. The time needed will depend on the project, but you will never see a balanced amount of time spent on each phase.
\n\n\n\nYou can\u2019t estimate the length of time each phase takes ahead of time. It is impossible to know how long something will take to test until you understand what you are making.
\n\n\n\nThe Agile interpretation of SDLC uses a different unit of work: Sprints. A Sprint is a time box for completing a body of work. It has a consistent duration regardless of the work.
\n\n\n\nDuring this unit of work, which often lasts two weeks, your team carries out all the necessary work. Any given Sprint might involve requirements gathering, development, and testing. During a single Sprint, you engage the entire team for its duration.
\n\n\n\nKey differences include:
\n\n\n\nWhether phases or Sprints are going to be better for your team will depend very much on the makeup of your company. When management needs to keep a tight watch on things, phases are easier than Sprints. If consistent output is essential, Sprints work better than phases.
\n\n\n\nPro Tip: Code faster with TextExpander
TextExpander makes it easy to save commonly-used code snippets, documentation comments, and more \u2014 then insert them anywhere you type with a simple shortcut or inline search.
Click here to learn more.
Tracking a project managed with waterfall is relatively straightforward. Any given project will be in one of seven phases at any given time.
\n\n\n\nYour team might be working on one project in one phase, and another team a separate project in another.
\n\n\n\nBut Agile doesn\u2019t use the term project in the same way. With this approach, a single team is generally working on a specific product or a service, but might have several projects on their plate at the same time.
\n\n\n\nFor example, during any given Sprint, your team might work on several projects at once, all for the same product. You might add some event tracking, while someone else makes database improvements as part of a performance project.
\n\n\n\nThis makes tracking a single product harder since many projects impact it.
\n\n\n\nTracking a project is essential; it engages stakeholders when they can see progress. If your product has several owners, an Agile approach will keep more people happy. When there is one owner or only a few stakeholders, a more traditional approach can work well.
\n\n\n\nA traditional view of SDLC isn\u2019t flexible. During the development process, new findings don\u2019t get incorporated into previous steps.
\n\n\n\nWith waterfall, for example, a new feature after the requirements analysis phase has to wait. Once your team delivers the project, a new project can start to incorporate the new feature.
\n\n\n\nThis approach makes change expensive, which isn\u2019t always a bad thing. Knowing each phase as one chance to make a positive impact can focus work on that phase. Less change reduces unknowns in the later stages, making them more predictable.
\n\n\n\nThe more Agile view of SDLC, however, is flexible. With frequent change anticipated, you can introduce a brand new body of work in the next Sprint that bears no relation to the previous Sprint\u2019s work.
\n\n\n\nThis makes change much less expensive, which encourages more collaboration and the testing of more ideas. Because change happens fluidly, it does make it harder to know when to call a project done.
\n\n\n\nThere are positives and negatives to having your project be flexible. A positive aspect of Agile is that you can enforce rigidness by putting ideas into an ice-box. Waterfall doesn\u2019t have a similar option for making things more flexible.
\n\n\n\nOnce a project has completed the requirements analysis, your team can set expectations, make claims and inform other departments of your plan. For example, if your project requirements outlined the need for a mobile app, you can let your marketing team know to start planning to market an app.
\n\n\n\nMatching outcomes to expectations is easy when working within waterfall. Every new phase builds on the old phases, so you can state the old phase as fact.
\n\n\n\nLater in the process, you can start to make bolder claims. Once testing is complete, there will be no more development so writers can begin documenting how new features work.
\n\n\n\nSome people appreciate bold claims. Executives in particular need high-level overviews and statements they can take into meetings.
\n\n\n\nAgile practitioners tend not to make such claims. The nature of Agile development means things are often in a state of flux until the last minute. You can still commit to short-term statements, such as, at the end of the next sprint, the contact form will be in place.
\n\n\n\nIf your project needs to make statements early on that it sticks to, a traditional approach will make sense. But, if you can set expectations to suit the current best thinking on a project, an Agile approach will pay dividends.
\n\n\n\nIn our experience, the question of choosing a traditional SDLC vs Agile approach isn\u2019t black or white. There is nuance, and what works for one team and project might not work for the next.
\n\n\n\nThe four differences we\u2019ve shared aren\u2019t the only differences. They are the ones that make the most significant impact on how you manage your project. Which of the four do you think is the most important for your team? Let us know in the comments.
A software development agreement is a contract between a software team and a client.
\n\n\n\nIt can be frustrating to have to work through legal documents before starting the work. Most people don\u2019t enjoy reading legal documents. But having an agreement in place will help your relationship.
\n\n\n\nA software development agreement can protect your team and your client. It will act as a basis from which a great relationship can start by defining expectations.
\n\n\n\nToday, we\u2019re going to share some of the key points you should consider when drafting an agreement.
\n\n\n\nAs with any legal document, you should have your work reviewed by a solicitor or lawyer. Factor in that you may need to pay attorney fees.
\n\n\n\nA work phase outlines when your software team will complete a body of work.
\n\n\n\nWork phases break the project down into discrete milestones. They list deliverables and their respective deadlines.
\n\n\n\nWhen you clearly state work phases in an agreement, you prevent client disappointment and negative consequences such as claims of breach of contract.
\n\n\n\nWork phases are a two-way street. It isn\u2019t all about when you will provide the work, it will also specify when your client needs to provide feedback. Specifying needs and timeframes can help frame future, potentially difficult, discussions.
\n\n\n\nEstablishing the payment times and amounts will ensure that you won\u2019t be waiting for payment.
\n\n\n\nThe two most common forms of payment agreement are:
\n\n\n\nBeing clear about payment details will help you get paid sooner.
\n\n\n\nPro Tip: Code faster with TextExpander
TextExpander makes it easy to save commonly-used code snippets, documentation comments, and more \u2014 then insert them anywhere you type with a simple shortcut or inline search.
Click here to learn more.
A common issue when developing software is understanding who owns the intellectual property (IP).
\n\n\n\nUnless an agreement defines who owns the intellectual property, it will default to the creator. In the case of software development projects, that would be your development team.
\n\n\n\nYou holding the IP can cause issues. Your client may be unable to extend the scope of the product as they do not own the copyright.
\n\n\n\nIf your client has the copyright signed over to them, it may lead to issues. For instance, you won\u2019t be able to reuse any code created for the project in other, unrelated projects.
\n\n\n\nMoral rights are the rights of the creators of copyrighted works. These are similar to IP but focus on general attribution, not ownership. Default moral rights will depend on your jurisdiction. With software, sometimes developers are not attributed to works. You should check with local laws to see if you need to make a statement about moral rights.
\n\n\n\nIP and moral rights are an example of when you need legalese. There are certain phrases your contract requires to stand up to scrutiny. Having the right wording now can save you in legal costs in the future.
\n\n\n\nMost software developers will use open source libraries when developing software applications.
\n\n\n\nYour client may want to have a full list of the libraries used during the development of the application.
\n\n\n\nYour client needs to know that your developer has complied with the requirements for using that piece of open-source software.
\n\n\n\nThe use of open-source software is often overlooked when drafting agreements. Not having something clearly written can make things hard for your client during audits or due-diligence checks.
\n\n\n\nA warranty is a promise that a product will work in a certain way for a certain length of time.
\n\n\n\nIf it does not, then there should be an agreement in place that your developers will fix bugs or any issues that arise.
\n\n\n\nYou should agree on the terms with your client and detail these in the software development agreement.
\n\n\n\nYou should not make claims that the software will work indefinitely. The ever-changing technological landscape may make this impossible. Typically, software warranties last for 90 days to a year.
\n\n\n\nWithout a firm statement, your client might think you will support the product forever.
\n\n\n\nThe software development agreement should outline the required testing.
\n\n\n\nSome software development methodologies have testing as a separate phase of development. You should document if your client has requested a reduction in the testing phase.
\n\n\n\nYou should note if your client has a specific QA process which should form part of the testing.
\n\n\n\nYour agreement should state what the repercussions are if your client fails to test something you asked them to.
\n\n\n\nLike work phases, setting expectations now can help frame conversations later.
\n\n\n\nThe agreement should state if you are supplying DevOps as well as providing the software.
\n\n\n\nIf your client is handling DevOps, you should document how handover will happen.
\n\n\n\nAny gaps when discussing the installation or integration can lead to frustration. Often, your client will assume your developers would handle everything. A good software development agreement clears this up.
\n\n\n\nRelated to the installation and integration is ongoing support.
\n\n\n\nIf you expect to support this project going forward, your agreement needs to outline what form that will take.
\n\n\n\nSpecifically, you will want to outline what channels are open for support. Common support channels include phone, email, or a dedicated channel in Slack.
\n\n\n\nYour agreement should outline the type of support you are willing to provide. It should answer questions like \u201chow do we onboard new people\u201d and \u201chow do we learn about these features\u201d.
\n\n\n\nA service level agreement is a more substantial document you may need if handling support. A version mentioning your core business hours and response times will suffice for a development agreement.
\n\n\n\nAn excellent software development agreement makes it clear where support stops and feature development starts.
\n\n\n\nMaintenance services are like support but focus on keeping everything up to date.
\n\n\n\nIf you include ongoing maintenance, your agreement should be clear on what is general maintenance and what is extra work.
\n\n\n\nYou might include minor updates to software dependencies, but not significant updates.
\n\n\n\nSecurity upgrades can occasionally require a significant rework of sections. It would be best if you documented how security updates might impact the project.
\n\n\n\nSupport and maintenance are an excellent way for you to make money once the project is complete.
\n\n\n\nLike all contracts, you can terminate a software development agreement. The termination section outlines the circumstances under which you or your client can end the contract.
\n\n\n\nThe core questions to cover are:
\n\n\n\nNo one wants to end a contract early, but by outlining the procedures at least the way termination happens is predictable.
\n\n\n\nEven with an excellent development agreement, disputes can happen. The dispute resolution section handles how either side can open a dispute.
\n\n\n\nOutlining what laws are applicable in this situation, and specifically, the country of the law is essential.
\n\n\n\nThe country stated in the agreement will make a big difference in what laws are applicable. What is common practice in one country may be unheard of in others.
\n\n\n\nAs a general rule, you should pick the country in which you do business, as you will be able to find legal help more quickly.
\n\n\n\nTaking the time to clearly outline the dispute resolution process can save you in potential legal fees down the line.
\n\n\n\nIt may be sensible to suggest keeping code in a source code escrow.
\n\n\n\nSource code escrow is the deposit of a codebase with a trusted third party.
\n\n\n\nHaving code sit in escrow ensures maintenance and security in the event of a breakdown between the developers and your client.
\n\n\n\nIncluding a section in your agreement about source code escrow will show you care about the long term success of the project.
\n\n\n\nA software development agreement is a formality. Yet, by including the sections above you lay the foundation for a successful project.
\n\n\n\nAs with all forms of communication, the more clear you can make it the better your relationship with your client will be.
\n\n\n\nA software development agreement is worth writing well. In the best-case scenario, you will only refer to this document once, and you will look professional.
\n\n\n\nIn the worst case, you will be using this document to save you thousands in legal fees and lost time.
\n\n\n\nEither way, a concise, clear agreement will help you.
\n\n\nNot able to play the video? Click here to watch the video
We cannot overstate the value you provide as a project manager working within the software development life cycle. You are the lynchpin between customers and your team and can help make sure standards remain high throughout the life cycle.
\n\n\n\nWhether you use agile, lean, a waterfall model, or a hybrid of methodologies, every project manager wants to be productive at all stages of the\u00a0software development life cycle.
\n\n\n\nWhen you\u2019re efficient at each of the SDLC stages, you\u2019re able to act on new information and enable your team to deliver to their full potential.
\n\n\n\nHere are 17 tips to make your SDLC project management more efficient.
\n\n\n\nIn any software development project, planning comes first. Before getting started, it is essential to make sure the project has enough people and financial backing.\u00a0
\n\n\n\nPlanning takes a lot of project management; there are lots of people to speak to and outputs to consider. Here are two tips for planning in the most effective way possible.
\n\n\n\nHaving a high-level brainstorm with your team can guide later planning and reduce the need to revisit work.
\n\n\n\nInvolving your team early helps get buy-in for the project, which helps with every task you need to perform. A project with an engaged team runs a lot smoother.
\n\n\n\nThere are hundreds of SDLC project management tools, each with their strengths and weaknesses. For example, some make it hard to capture a quick idea and see how it could impact the entire project. These ideas often come during meetings. If your project planning tool is too complicated, storing the note cannot happen without stopping the flow of conversation.
\n\n\n\nTo avoid this predicament, look for a project planning tool like\u00a0OmniPlan or monday.com, which makes it easy to put together a dynamic project outline. The flexibility lets you move fast and adjust to any changing requirements.
\n\n\n\nIn requirements analysis, your team ensures that the project requirements help the end-user of the system.
\n\n\n\nYour team needs context to help analyze the requirements. You can\u2019t afford for every single member of your team to attend every sales meeting or know the elements as well as you, some balance is required.
\n\n\n\nOnce you write the requirement documents, they will give your team focus and context as they deliver the project.
\n\n\n\nAs a project manager, you can help your team by thinking of the following.
\n\n\n\nDocumenting how people should communicate with user groups will empower your team to contact users as needed.
\n\n\n\nFor example, having your\u00a0user personas\u00a0in an easy-to-manage place, such as in a shared Google Drive folder helps your team refresh their memory when they are jumping between tasks.
\n\n\n\nThe best way to know a project is going to help your users is to understand what your users want.
\n\n\n\nBut creating a full view of your user can be difficult when their feedback is coming from multiple sources such as social media, contact forms, surveys, review websites, etc.
\n\n\n\nYour feedback channels should be consistent, and all feed into one repository. Having feedback in one place will save you a ton of time.
\n\n\n\nUsing tools like\u00a0Zapier\u00a0can glue a lot of different services together. For example, you can set up Zapier to copy tweets or Facebook posts that mention your product into one spreadsheet for review.
\n\n\n\nDuring your planning sessions, it is likely someone changed or added to the requirements. While expected, it can make requirements analysis cumbersome.\u00a0
\n\n\n\nBy breaking your requirements down into smaller pieces, you can focus your team\u2019s attention and move through this phase faster.
\n\n\n\nDuring the prototyping stage, developers and designers prototype a feature or map out a solution. Prototyping is useful for getting early feedback and informing technical decisions.
\n\n\n\nFrom a project management point of view, prototyping can be a bit of a black hole. If left unchecked, prototypes can take up a lot of time. Their entire purpose is to test an idea, learn and move forward.
\n\n\n\nBy implementing these tips, you can help your team prototype with confidence.
\n\n\n\nUsing a\u00a0design system\u00a0can help your team move fast when designing and testing solutions.
\n\n\n\nA core purpose of design systems is introducing a common language for talking about the project. Common language allows your team to prototype more efficiently and work together well.
\n\n\n\nA common issue with prototyping is not knowing how far to take it.
\n\n\n\nDifferent features require different levels of prototyping. Typically something with lots of moving parts will require a higher fidelity of the prototype.
\n\n\n\nYou can draw some wireframes on a post-it note, or you can create the entire system and everything in between.
\n\n\n\nTaking time to decide on an appropriate fidelity, by asking \u201cwhat is good enough to test and move forward\u201d helps you plan time better and stay lean.
\n\n\n\nSoftware development turns your project\u2019s requirements and prototypes into working code. It\u2019s the earliest phase in which you start to see something that resembles the final product. In many projects, this is the hardest phase and often requires the most amount of project management.
\n\n\n\nUse these tips to help your development team focus on the most critical parts of your project.
\n\n\n\nA good ticket can keep your developers focused, reduce back and forth and provide a calming sense of clarity.
\n\n\n\nWhen a sprint consists of\u00a0great tickets, you can estimate easier and feel more in control.
\n\n\n\nUsing templates saves time and reduces questions during the development phase.
\n\n\n\nMaking the templates initially takes time, but it is worth the investment. The benefits of consistency and the speed increase when making new tickets outweigh the initial setup costs.
\n\n\n\nEven with great tickets, developers make assumptions, and things can go astray. Schedule time to review so that you can course-correct as needed.
\n\n\n\nBy scheduling in time, you set expectations with your team. By doing it regularly, you will reduce the time needed for each one.
\n\n\n\nDuring the software testing phase, testers put the project through its paces. Testers make sure that the new features work as described, and that old features haven\u2019t stopped working.
\n\n\n\nThe testing phase can be stressful for a project manager. If things go well, the project is nearly ready to go. If they don\u2019t go well, you might need to find an unknown amount of time to fix things.
\n\n\n\nThese tips will reduce stress and help your testers work at their best.
\n\n\n\nEncourage your developers and testers to automate tests where possible. Automated tests run as the developers write the code. These tests spot issues early and can help reduce the time it takes to test manually.
\n\n\n\nManual testing takes time and the less repetitive manual process, the more time testers can spend on improving their testing setup, further streamlining operations.
\n\n\n\nAnytime a tester spots something during a review, try to convert the manual test into an automated one.
\n\n\n\nThe planning, prototyping, and development phases make heavy use of the requirements documents. For testers to have the context to be able to know if a change meets the requirements, they also need access to the requirements document.
\n\n\n\nUnlike other roles in your team, testers often aren\u2019t brought into early meetings. As a result, they can sometimes lack the context required to make them useful when testing.
\n\n\n\nThis is why you should share requirements somewhere everyone has access to, and you should write them in a way that everyone can understand.
\n\n\n\nSome amount of rework off the back of testing is inevitable.\u00a0
\n\n\n\nBy planning rework into this phase, you avoid having to change timescales late in the project. Using past projects or sprints as a guide, you should have an idea of how often rework happens.
\n\n\n\nPlanning from the start will help you better communicate intent with the broader team.
\n\n\n\nYou might want to consider a different development methodology if your team can\u2019t cope with the strain of rework.
\n\n\n\nSometimes called \u2018implementation\u2019, the deployment phase takes code and puts it somewhere people can use.
\n\n\n\nDeployments contain many moving parts and integration between different systems is standard.
\n\n\n\nYou can\u2019t plan the deployment stage too early. Integrations and hardware requirements can change during any of the above SDLC phases. There are some things you can do that will improve team performance during this phase.
\n\n\n\nYour developers are probably using the same languages, and your ops team usually is building similar types of servers. You should push the team to re-use deployment strategies between projects when it makes sense.
\n\n\n\nBy doing this, you reduce the need to manage during this phase. Your development team can build on previous knowledge gained from past deployments.
\n\n\n\nRe-using strategies helps you when budgeting time and planning communication with clients. You will be able to make a timeline and cost estimates based on your previous knowledge.
\n\n\n\nTo avoid surprises and manage your time well, document issues and meeting notes early.
\n\n\n\nHaving documents that detail client and vendor meetings allow your team to draw on everything when integrating.
\n\n\n\nGetting into the habit of documenting this information as it comes up \u2014 well before it becomes relevant \u2014 will help you stay efficient.
\n\n\n\nIn the operations and maintenance phase, developers watch software for bugs or defects. When they find one, they create a bug report.\u00a0
\n\n\n\nProject managers tend not to get involved in this stage; however, being efficient during the maintenance phase can add value to a project. Here are some suggestions for how you can use your project management background to help during this phase.
\n\n\n\nAsk your developers or ops team to log errors into the team\u2019s ticketing system automatically. By doing this, you never need to review bug reports in a different tool. Having them come into a system everyone understands lets you reason about their priority by comparing it to other issues.
\n\n\n\nYou need to see everything in one place to have a complete picture. It is incredibly hard to plan support work without this view.
\n\n\n\nWhile operations and maintenance may be the last section on our list, it is often the start of a new body of work.
\n\n\n\nYour users\u2019 needs will change over time. Being proactive by reviewing the system with these new needs in mind can help you plan your next body of work.
\n\n\n\nAs we talked about in our fourth tip, having consistent feedback channels is essential. Your users want to tell you how they\u2019re feeling and what they want. Make it easy for them by sharing plenty of ways to offer feedback.
\n\n\n\nMake sure that these all feed into one place you can review.
\n\n\n\nGathering feedback helps prioritize the next body of work, especially if the feedback aligns with business goals.
\n\n\n\nWe\u2019ve outlined some of our top tips that will make your life as a project manager a little bit easier, but we want to hear from you! What advice have you picked up to help make your SDLC project management more efficient? Let us know in the comments below.
\n", "content_text": "We cannot overstate the value you provide as a project manager working within the software development life cycle. You are the lynchpin between customers and your team and can help make sure standards remain high throughout the life cycle.\n\n\n\nWhether you use agile, lean, a waterfall model, or a hybrid of methodologies, every project manager wants to be productive at all stages of the\u00a0software development life cycle.\n\n\n\nWhen you\u2019re efficient at each of the SDLC stages, you\u2019re able to act on new information and enable your team to deliver to their full potential.\n\n\n\nHere are 17 tips to make your SDLC project management more efficient.\n\n\n\nPlanning Tips\n\n\n\nIn any software development project, planning comes first. Before getting started, it is essential to make sure the project has enough people and financial backing.\u00a0\n\n\n\nPlanning takes a lot of project management; there are lots of people to speak to and outputs to consider. Here are two tips for planning in the most effective way possible.\n\n\n\n1. Brainstorm With Your Team\n\n\n\nHaving a high-level brainstorm with your team can guide later planning and reduce the need to revisit work.\n\n\n\nInvolving your team early helps get buy-in for the project, which helps with every task you need to perform. A project with an engaged team runs a lot smoother.\n\n\n\n2. Use Good Project Planning Software\n\n\n\nThere are hundreds of SDLC project management tools, each with their strengths and weaknesses. For example, some make it hard to capture a quick idea and see how it could impact the entire project. These ideas often come during meetings. If your project planning tool is too complicated, storing the note cannot happen without stopping the flow of conversation.\n\n\n\nTo avoid this predicament, look for a project planning tool like\u00a0OmniPlan or monday.com, which makes it easy to put together a dynamic project outline. The flexibility lets you move fast and adjust to any changing requirements.\n\n\n\nRequirements Analysis Tips\n\n\n\nIn requirements analysis, your team ensures that the project requirements help the end-user of the system.\n\n\n\nYour team needs context to help analyze the requirements. You can\u2019t afford for every single member of your team to attend every sales meeting or know the elements as well as you, some balance is required.\n\n\n\nOnce you write the requirement documents, they will give your team focus and context as they deliver the project.\n\n\n\nAs a project manager, you can help your team by thinking of the following.\n\n\n\n3. Organize Your End-User Information\n\n\n\nDocumenting how people should communicate with user groups will empower your team to contact users as needed.\n\n\n\nFor example, having your\u00a0user personas\u00a0in an easy-to-manage place, such as in a shared Google Drive folder helps your team refresh their memory when they are jumping between tasks.\n\n\n\n4. Have Consistent Feedback Channels\n\n\n\nThe best way to know a project is going to help your users is to understand what your users want.\n\n\n\nBut creating a full view of your user can be difficult when their feedback is coming from multiple sources such as social media, contact forms, surveys, review websites, etc.\n\n\n\nYour feedback channels should be consistent, and all feed into one repository. Having feedback in one place will save you a ton of time.\n\n\n\nUsing tools like\u00a0Zapier\u00a0can glue a lot of different services together. For example, you can set up Zapier to copy tweets or Facebook posts that mention your product into one spreadsheet for review.\n\n\n\n5. Break Requirements Into Chunks\n\n\n\nDuring your planning sessions, it is likely someone changed or added to the requirements. While expected, it can make requirements analysis cumbersome.\u00a0\n\n\n\nBy breaking your requirements down into smaller pieces, you can focus your team\u2019s attention and move through this phase faster.\n\n\n\nPrototyping Stage Tips\n\n\n\nDuring the prototyping stage, developers and designers prototype a feature or map out a solution. Prototyping is useful for getting early feedback and informing technical decisions.\n\n\n\nFrom a project management point of view, prototyping can be a bit of a black hole. If left unchecked, prototypes can take up a lot of time. Their entire purpose is to test an idea, learn and move forward.\n\n\n\nBy implementing these tips, you can help your team prototype with confidence.\n\n\n\n6. Use a Design System\n\n\n\nUsing a\u00a0design system\u00a0can help your team move fast when designing and testing solutions.\n\n\n\nA core purpose of design systems is introducing a common language for talking about the project. Common language allows your team to prototype more efficiently and work together well.\n\n\n\n7. Pick an Appropriate Fidelity\u00a0\n\n\n\nA common issue with prototyping is not knowing how far to take it.\n\n\n\nDifferent features require different levels of prototyping. Typically something with lots of moving parts will require a higher fidelity of the prototype.\n\n\n\nYou can draw some wireframes on a post-it note, or you can create the entire system and everything in between.\n\n\n\nTaking time to decide on an appropriate fidelity, by asking \u201cwhat is good enough to test and move forward\u201d helps you plan time better and stay lean.\n\n\n\nSoftware Development Tips\n\n\n\nSoftware development turns your project\u2019s requirements and prototypes into working code. It\u2019s the earliest phase in which you start to see something that resembles the final product. In many projects, this is the hardest phase and often requires the most amount of project management.\n\n\n\nUse these tips to help your development team focus on the most critical parts of your project.\n\n\n\n8. Create Consistent Tickets\n\n\n\nA good ticket can keep your developers focused, reduce back and forth and provide a calming sense of clarity.\n\n\n\nWhen a sprint consists of\u00a0great tickets, you can estimate easier and feel more in control.\n\n\n\nUsing templates saves time and reduces questions during the development phase.\n\n\n\nMaking the templates initially takes time, but it is worth the investment. The benefits of consistency and the speed increase when making new tickets outweigh the initial setup costs.\n\n\n\n9. Review Work Early and Often\n\n\n\nEven with great tickets, developers make assumptions, and things can go astray. Schedule time to review so that you can course-correct as needed.\n\n\n\nBy scheduling in time, you set expectations with your team. By doing it regularly, you will reduce the time needed for each one.\n\n\n\nTesting Tips\n\n\n\nDuring the software testing phase, testers put the project through its paces. Testers make sure that the new features work as described, and that old features haven\u2019t stopped working.\n\n\n\nThe testing phase can be stressful for a project manager. If things go well, the project is nearly ready to go. If they don\u2019t go well, you might need to find an unknown amount of time to fix things.\n\n\n\nThese tips will reduce stress and help your testers work at their best.\n\n\n\n10. Automate Tests\n\n\n\nEncourage your developers and testers to automate tests where possible. Automated tests run as the developers write the code. These tests spot issues early and can help reduce the time it takes to test manually.\n\n\n\nManual testing takes time and the less repetitive manual process, the more time testers can spend on improving their testing setup, further streamlining operations.\n\n\n\nAnytime a tester spots something during a review, try to convert the manual test into an automated one.\n\n\n\n11. Share the Requirements Documentation\n\n\n\nThe planning, prototyping, and development phases make heavy use of the requirements documents. For testers to have the context to be able to know if a change meets the requirements, they also need access to the requirements document.\n\n\n\nUnlike other roles in your team, testers often aren\u2019t brought into early meetings. As a result, they can sometimes lack the context required to make them useful when testing.\n\n\n\nThis is why you should share requirements somewhere everyone has access to, and you should write them in a way that everyone can understand.\n\n\n\n12. Plan Time For Rework\n\n\n\nSome amount of rework off the back of testing is inevitable.\u00a0\n\n\n\nBy planning rework into this phase, you avoid having to change timescales late in the project. Using past projects or sprints as a guide, you should have an idea of how often rework happens.\n\n\n\nPlanning from the start will help you better communicate intent with the broader team.\n\n\n\nYou might want to consider a different development methodology if your team can\u2019t cope with the strain of rework.\n\n\n\nDeployment Tips\n\n\n\nSometimes called \u2018implementation\u2019, the deployment phase takes code and puts it somewhere people can use.\n\n\n\nDeployments contain many moving parts and integration between different systems is standard.\n\n\n\nYou can\u2019t plan the deployment stage too early. Integrations and hardware requirements can change during any of the above SDLC phases. There are some things you can do that will improve team performance during this phase.\n\n\n\n13. Share Strategies Between Projects\n\n\n\nYour developers are probably using the same languages, and your ops team usually is building similar types of servers. You should push the team to re-use deployment strategies between projects when it makes sense.\n\n\n\nBy doing this, you reduce the need to manage during this phase. Your development team can build on previous knowledge gained from past deployments.\n\n\n\nRe-using strategies helps you when budgeting time and planning communication with clients. You will be able to make a timeline and cost estimates based on your previous knowledge.\n\n\n\n14. Document Early\n\n\n\nTo avoid surprises and manage your time well, document issues and meeting notes early.\n\n\n\nHaving documents that detail client and vendor meetings allow your team to draw on everything when integrating.\n\n\n\nGetting into the habit of documenting this information as it comes up \u2014 well before it becomes relevant \u2014 will help you stay efficient.\n\n\n\nOperations and Maintenance Tips\n\n\n\nIn the operations and maintenance phase, developers watch software for bugs or defects. When they find one, they create a bug report.\u00a0\n\n\n\nProject managers tend not to get involved in this stage; however, being efficient during the maintenance phase can add value to a project. Here are some suggestions for how you can use your project management background to help during this phase.\n\n\n\n15. Automate Ticket Creation\n\n\n\nAsk your developers or ops team to log errors into the team\u2019s ticketing system automatically. By doing this, you never need to review bug reports in a different tool. Having them come into a system everyone understands lets you reason about their priority by comparing it to other issues.\n\n\n\nYou need to see everything in one place to have a complete picture. It is incredibly hard to plan support work without this view.\n\n\n\n16. Review the System\n\n\n\nWhile operations and maintenance may be the last section on our list, it is often the start of a new body of work.\n\n\n\nYour users\u2019 needs will change over time. Being proactive by reviewing the system with these new needs in mind can help you plan your next body of work.\n\n\n\n17. Make It Easy for Users to Talk to You\n\n\n\nAs we talked about in our fourth tip, having consistent feedback channels is essential. Your users want to tell you how they\u2019re feeling and what they want. Make it easy for them by sharing plenty of ways to offer feedback.\n\n\n\nMake sure that these all feed into one place you can review.\n\n\n\nGathering feedback helps prioritize the next body of work, especially if the feedback aligns with business goals.\n\n\n\nWhat Tips Do You Want to Share?\n\n\n\nWe\u2019ve outlined some of our top tips that will make your life as a project manager a little bit easier, but we want to hear from you! What advice have you picked up to help make your SDLC project management more efficient? Let us know in the comments below.", "date_published": "2020-03-31T09:08:02-07:00", "date_modified": "2021-03-09T11:49:17-07:00", "authors": [ { "name": "Toby Osbourn", "url": "https://textexpander.com/author/toby", "avatar": "https://secure.gravatar.com/avatar/f9df5ae464cd8080533092eac3a56135?s=512&d=retro&r=g" } ], "author": { "name": "Toby Osbourn", "url": "https://textexpander.com/author/toby", "avatar": "https://secure.gravatar.com/avatar/f9df5ae464cd8080533092eac3a56135?s=512&d=retro&r=g" }, "image": "https://textexpander.com/wp-content/uploads/2020/03/sdlc-project-management-featured.jpg", "tags": [ "Project Management", "SDLC", "Blog", "Development" ], "summary": "We share 17 tips to help you make your SDLC project management more efficient" }, { "id": "https://textexpander.com/?p=13197", "url": "https://textexpander.com/blog/7-stages-of-the-system-development-life-cycle", "title": "Mastering the 7 Stages of the System Development Life Cycle", "content_html": "Developers often think that only one of the seven stages of the system development life cycle applies to them. But, to work at their best, everyone in a software development team should have a good working knowledge of all stages of the SDLC.
\n\n\n\nBelow, we discuss each stage and where it fits into the bigger picture. We also provide examples of expected output, describe team members needed, and share resources for individual learning.
\n\n\n\nIn any software development project, planning comes first. Before getting started, it is important to make sure the project has enough people and financial backing. You can have the best idea in the world, but if you don\u2019t have people or money, moving forward will be a poor business decision.
\n\n\n\nThe planning phase involves the entire project team. The outputs from the planning stage include project plans, cost estimations, and procurement requirements. When you are finished, your plan should be something the entire team can understand.
\n\n\n\nHere are resources for getting better at planning:
\n\n\n\nBook: Software Estimation Without Guessing
\n\n\n\nCourse: Project Planning & Management
\n\n\n\nIn feasibility analysis, your team ensures that the project requirements help the end-user of the system.
\n\n\n\nGathering requirements means talking to stakeholders and looking at as much relevant data as possible. At all times, you\u2019ll want to consider the users and how workable the feature is.
\n\n\n\nThe outputs from the requirements analysis stage will vary depending on the methodology you are using. Regardless of whether your team is working with a formal requirements document or a list of tickets, everyone has to understand each need.
At this stage, architects, developers, and product managers work together with relevant stakeholders.
Resources for getting better at feasibility or requirements analysis include:
\n\n\n\n\n\n\n\nDuring the design phase, developers and designers prototype a feature or map out a solution. Prototyping is useful for getting early feedback and informing technical decisions.
\n\n\n\nWithout prototypes, there\u2019s a risk that the team will waste time on production-ready solutions that don\u2019t meet user needs.
\n\n\n\nFor some software development methodologies, the design phase needs specific output before a stakeholder can sign it off and more work can happen.
\n\n\n\nWhen done well, the design and prototyping phase can produce tangible outputs that help drive decisions going forward. In web development teams, a prototype often serves to show that the functionality works, although it will still need polishing.
\n\n\n\nThe following are resources for getting better at design and prototyping:
\n\n\n\nSoftware development turns your project\u2019s requirements and prototypes into working code. it\u2019s the earliest phase in which you start to see something that resembles the final product.
\n\n\n\nBy the end of this stage, you will have a working feature to share with customers.
\n\n\n\nDevelopers are the most involved during this phase. They will often need to confirm things with the product owner and the testers.
\n\n\n\nConsider these resources for getting better at software development:
\n\n\n\nPro Tip: Code faster with TextExpander
TextExpander makes it easy to save commonly-used code snippets, documentation comments, and more \u2014 then insert them anywhere you type with a simple shortcut or inline search.
Click here to learn more.
During the software testing phase, testers put the code through its paces.
\n\n\n\nTesters check for:
\n\n\n\nSome teams automate all their testing. Other teams test manually, but most do a combination of the two.
\n\n\n\nThe output of software testing is a better solution that meets edge cases and user needs. Developers can\u2019t code for every eventuality; the fresh perspective that testing brings can help.
\n\n\n\nTesters are the main people involved at this stage. They will often seek clarification from developers or product owners.
\n\n\n\nResources for getting better at software testing include:
\n\n\n\nOften called \u2018deployment\u2019, the implementation phase takes code and puts it somewhere people can use.
\n\n\n\nIn simple projects, this will be as simple as deploying the code onto a web server. In large projects, this could involve integration with many different systems.
\n\n\n\nThe output from this stage is usable software. For some projects, this phase also encompasses the creation of documentation and marketing material.
\n\n\n\nAt this stage, the operations team focuses on deploying the software. The product owners work with content writers to produce documentation such as user manuals.
\n\n\n\nHere are resources for getting better at implementation and integration:
\n\n\n\nIn the operations and maintenance phase, developers watch software for bugs or defects. If they find one, they create a bug report. During maintenance, it is important to consider opportunities for when the development cycle starts over again.
\n\n\n\nA sign that this phase is working well when developers are able to quickly identify and resolve problems.
\n\n\n\nDuring this stage, support specialists will report issues, product owners will help prioritize them, and developers will work with testers to make improvements.
\n\n\n\nHere are some resources for getting better at operations and maintenance:
\n\n\n\nGaining mastery of each level of the system development life cycle requires lots of dedicated learning and experience.
\n\n\n\nWith that in mind, look at the resources we\u2019ve shared in the order that most benefits you right now.
\n\n\n\nThrough each phase, there needs to be excellent communication between people. Improving your communication skills will help your performance in all stages.
\n\n\n\nWe are always on the lookout for great resources to improve how we reason about the seven stages of the system development life cycle. Let us know your favorites at @TextExpander and on Facebook.
\n\n\nNot able to play the video? Click here to watch the video
There has never been a better time to be a developer! It seems like every business wants to add to its software development team.
\n\n\n\nWith so much demand, top developers can be very picky about who they do business with. People have noticed this, and many are transitioning into software development careers.
\n\n\n\nWith picky top talent and inexperienced developers entering the market daily, finding the right talent for your software development team is hard.
\n\n\n\nBecause demand is so high, your job offering needs to speak to the individual developer you\u2019re hoping to hire. Generic job ads in general-purpose job boards won\u2019t cut it.
\n\n\n\nDevelopers know how in-demand they are; even new developers aren\u2019t scared of moving if things aren\u2019t the right fit.
\n\n\n\nNot all is lost, read on and you\u2019ll be growing your software development team in no time.
\n\n\n\nThe first challenge is to understand the makeup of your current development team. When you know your team, you are in a better position to find others who will be a good fit.
\n\n\n\nHere are five questions to help you understand your team:
\n\n\n\nUse these answers to help guide your next hire. For example, if your team isn\u2019t great at documenting decisions, don\u2019t hire a remote junior developer. Some work would need to happen to get the team to the position where hiring such a person would be possible.
\n\n\n\nWhich gaps does a new hire need to fill for your team? Knowing this will help narrow down the types of people you need to be looking for.
\n\n\n\nThere are two types of gaps you can fill: role-based and skills-based.
\n\n\n\nRole-based gaps are job titles missing from your team. Here are some examples:\u00a0
\n\n\n\nSkills-based gaps are harder to hire for because they don\u2019t always have a clear job title. For a software developer, here are some skills your team might be missing:
\n\n\n\nKnowing the types of skills you need will help target who you are looking for. If you need a security-conscious team lead, you will look in different places than when looking for an accessibility expert.
\n\n\n\nThe skills you are missing aren\u2019t always clear. Look for patterns of issues raised during retrospectives and 1-on-1s.
\n\n\n\nOnce you have an idea of the type of roles and skillsets you need, you can use this information to start searching for candidates.\u00a0
\n\n\n\nBut, there is one more question to consider before you search: Should you hire permanent developers or contractors?
\n\n\n\nWhen it comes time to decide if you want to hire contractors or permanent members of staff, here are some important considerations.
\n\n\n\nContractors will cost more per day but have a fixed start and end to their time with you. Full-time members of staff need to get paid each month regardless of what work is coming their way.
\n\n\n\nContractors are generally self-sufficient and can get up to speed to deliver value. There are fewer ongoing managerial concerns with contractors. You don\u2019t need to do yearly performance reviews, for example.
\n\n\n\nPermanent staff will need extra onboarding but will have a positive impact on your company for years to come.
\n\n\n\nYou will have an easier time hiring experienced contractors and new permanent staff. Developers new to the industry want the security of a permanent position. Those with more experience often move into contracting.
\n\n\n\nThe opposite is also true. It takes longer to find experienced permanent members of staff or junior contractors. People who enjoy job security build roots in companies and don\u2019t move around too often. There aren\u2019t that many people who contract without the experience of working as a permanent employee for several years.
\n\n\n\nWhen you have decided if you need permanent or contractor software developers, you can start looking for your new hires.
\n\n\n\nNow you are in great shape to start looking for talent to expand your software development team! With all the due diligence suggested above complete, you can make the most out of the resources below.
\n\n\n\nIf you are new to recruiting, we have\u00a0dedicated articles all about recruitment\u00a0to help get you up to speed.
\n\n\n\nJob boards come in all shapes and sizes. The more niche the job board, the better your chances of finding someone who will be a good fit. You can only go niche once you know what you\u2019re looking for.
\n\n\n\nSome great developer job boards include:
\n\n\n\n\n\n\n\nDon\u2019t underestimate the power of your network and the network of your existing team. Recommendations, so long as they fit the criteria you\u2019ve already set out, are a great way to speed up hiring.
\n\n\n\nRecommendations work so well because they are generally mutual. If someone recommends a developer, the person getting recommended is going to be happy about the idea of working with them again.\u00a0
\n\n\n\nUsing your network could also mean passing on an email address or posting about the job on your social media channels.
\n\n\n\nHiring takes time. With each job ad you create, with each interview you have, you will learn something about what will work for your team and what won\u2019t.
\n\n\n\nHave you had experience hiring developers into a software team? We\u2019d love to hear about it in the comments below.
\n", "content_text": "There has never been a better time to be a developer! It seems like every business wants to add to its software development team.\n\n\n\nWith so much demand, top developers can be very picky about who they do business with. People have noticed this, and many are transitioning into software development careers.\n\n\n\nWith picky top talent and inexperienced developers entering the market daily, finding the right talent for your software development team is hard.\n\n\n\nBecause demand is so high, your job offering needs to speak to the individual developer you\u2019re hoping to hire. Generic job ads in general-purpose job boards won\u2019t cut it.\n\n\n\nDevelopers know how in-demand they are; even new developers aren\u2019t scared of moving if things aren\u2019t the right fit.\n\n\n\nNot all is lost, read on and you\u2019ll be growing your software development team in no time.\n\n\n\nUnderstand the Makeup of Your Software Development Team\n\n\n\nThe first challenge is to understand the makeup of your current development team. When you know your team, you are in a better position to find others who will be a good fit.\n\n\n\nHere are five questions to help you understand your team:\n\n\n\nHow diverse is your team? We know that\u00a0diverse teams make better decisions. Hires that\u00a0make the team more diverse\u00a0will have long-term positive impacts. In what ways are your team not diverse right now?What is the team\u2019s goal? What are you focused on? How is this goal measured?How is knowledge shared within the team? Is there a culture of documented decisions or discussing in the open?Which development methodologies are your software development projects using? Have you adopted Agile practices? Do you follow Lean principles?What is the experience level of the team? Is your team comprised of subject matter experts, or is it full of new coders?\n\n\n\nUse these answers to help guide your next hire. For example, if your team isn\u2019t great at documenting decisions, don\u2019t hire a remote junior developer. Some work would need to happen to get the team to the position where hiring such a person would be possible.\n\n\n\nLook for the Gaps in Your Software Team\n\n\n\nWhich gaps does a new hire need to fill for your team? Knowing this will help narrow down the types of people you need to be looking for.\n\n\n\nThere are two types of gaps you can fill: role-based and skills-based.\n\n\n\nRole-based gaps are job titles missing from your team. Here are some examples:\u00a0\n\n\n\nTeam Lead \u2013 Is your team missing someone who can take the lead on technical decisions and help unblock the other developers? A Team Lead can help with these types of tasks.Delivery Manager \u2013 Are delivery targets set and met? Are the stakeholders kept informed of product changes? If not, a Delivery Manager might help improve this.Architect \u2013 Are your developers struggling to understand how their software fits into the big picture? An Architect can help map out what this could look like.Developer \u2013 Do you need more code? Then you might need more people in your software development team. Designer \u2013 Is the usability or design of your product as good as it could be? Designers are crucial to great software development teams.Tester \u2013 If testing is taking up too much developer time, or mistakes are making their way to users, a tester could help.Product Owner \u2013 Is your team producing lots of stuff, but you aren\u2019t sure if it is the right stuff? A product owner can help you understand what is essential.\n\n\n\nSkills-based gaps are harder to hire for because they don\u2019t always have a clear job title. For a software developer, here are some skills your team might be missing:\n\n\n\nAccessibility \u2013 Making software that is usable by people that work with assistive technologies is a unique and essential skill.Performance \u2013 Having your website or software be fast loading and require the fewest resources will both make and save you money.Scalability \u2013 Going from 10 users to 10,000 has unique challenges that someone with a background in scaling software would have.Security \u2013 Keeping your users and their data secure should always be top-of-mind. As software changes, so do the security concerns associated with it.\n\n\n\nKnowing the types of skills you need will help target who you are looking for. If you need a security-conscious team lead, you will look in different places than when looking for an accessibility expert.\n\n\n\nThe skills you are missing aren\u2019t always clear. Look for patterns of issues raised during retrospectives and 1-on-1s.\n\n\n\nOnce you have an idea of the type of roles and skillsets you need, you can use this information to start searching for candidates.\u00a0\n\n\n\nBut, there is one more question to consider before you search: Should you hire permanent developers or contractors?\n\n\n\nHiring Permanent Software Developers vs Contractor Developers\n\n\n\nWhen it comes time to decide if you want to hire contractors or permanent members of staff, here are some important considerations.\n\n\n\nContractors will cost more per day but have a fixed start and end to their time with you. Full-time members of staff need to get paid each month regardless of what work is coming their way.\n\n\n\nContractors are generally self-sufficient and can get up to speed to deliver value. There are fewer ongoing managerial concerns with contractors. You don\u2019t need to do yearly performance reviews, for example.\n\n\n\nPermanent staff will need extra onboarding but will have a positive impact on your company for years to come.\n\n\n\nYou will have an easier time hiring experienced contractors and new permanent staff. Developers new to the industry want the security of a permanent position. Those with more experience often move into contracting.\n\n\n\nThe opposite is also true. It takes longer to find experienced permanent members of staff or junior contractors. People who enjoy job security build roots in companies and don\u2019t move around too often. There aren\u2019t that many people who contract without the experience of working as a permanent employee for several years.\n\n\n\nWhen you have decided if you need permanent or contractor software developers, you can start looking for your new hires.\n\n\n\nWhere to Find Talent for Your Software Development Team\n\n\n\nNow you are in great shape to start looking for talent to expand your software development team! With all the due diligence suggested above complete, you can make the most out of the resources below.\n\n\n\nIf you are new to recruiting, we have\u00a0dedicated articles all about recruitment\u00a0to help get you up to speed.\n\n\n\nJob Boards\n\n\n\nJob boards come in all shapes and sizes. The more niche the job board, the better your chances of finding someone who will be a good fit. You can only go niche once you know what you\u2019re looking for.\n\n\n\nSome great developer job boards include:\n\n\n\nHiredGitHub JobsStackOverflow JobsWeCodeNI\n\n\n\nYour Network\n\n\n\nDon\u2019t underestimate the power of your network and the network of your existing team. Recommendations, so long as they fit the criteria you\u2019ve already set out, are a great way to speed up hiring.\n\n\n\nRecommendations work so well because they are generally mutual. If someone recommends a developer, the person getting recommended is going to be happy about the idea of working with them again.\u00a0\n\n\n\nUsing your network could also mean passing on an email address or posting about the job on your social media channels.\n\n\n\nHiring Developers Takes Time\n\n\n\nHiring takes time. With each job ad you create, with each interview you have, you will learn something about what will work for your team and what won\u2019t.\n\n\n\nHave you had experience hiring developers into a software team? We\u2019d love to hear about it in the comments below.", "date_published": "2020-03-17T09:00:12-07:00", "date_modified": "2022-05-20T10:42:36-07:00", "authors": [ { "name": "Toby Osbourn", "url": "https://textexpander.com/author/toby", "avatar": "https://secure.gravatar.com/avatar/f9df5ae464cd8080533092eac3a56135?s=512&d=retro&r=g" } ], "author": { "name": "Toby Osbourn", "url": "https://textexpander.com/author/toby", "avatar": "https://secure.gravatar.com/avatar/f9df5ae464cd8080533092eac3a56135?s=512&d=retro&r=g" }, "image": "https://textexpander.com/wp-content/uploads/2020/03/engineer-talent.jpg", "tags": [ "developer", "hiring", "Blog", "Development", "Recruitment" ], "summary": "With in-demand top talent and brand-new developers entering the market daily, finding talent for your software development team is hard. This article helps you find the right talent." }, { "id": "https://textexpander.com/?p=13042", "url": "https://textexpander.com/blog/what-should-you-look-for-in-a-software-engineer-portfolio", "title": "What Should You Look for in a Software Engineer Portfolio?", "content_html": "Although software engineers are in high demand, hiring them is hard. Understanding a software engineer portfolio isn\u2019t something they teach you in Hiring 101.
\n\n\n\nTo help with that, we\u2019re going to share four steps to get the most out of looking at a developer\u2019s portfolio site. Then we\u2019re going to walk you through some of the things you should look for in a software engineer portfolio.
\n\n\n\nBy the end of this article, you will be in an excellent place to find impressive candidates for the positions you have available.
\n\n\n\nAs tempting as it is to start clicking around to get a feel for a potential new hire, you need a good plan. Often, you\u2019re looking at several candidates at once. Unlike resumes, there are no standards for portfolio websites.
\n\n\n\nThe first step is to define the role. Doing this will help ground your other actions and prevent you from reviewing portfolios without proper context.
\n\n\n\nTwo questions you should ask yourself are:
\n\n\n\nYou can arrive at these answers by talking to the hiring managers or look at the job specs, if available.
\n\n\n\nOnce you have defined the role, you can move onto step two.
\n\n\n\nNow you know the role to consider when reviewing the software engineer\u2019s portfolio. The next step is to break the job down into the required skills and attributes.
\n\n\n\nWe\u2019re going to cover some of these skills later, so don\u2019t worry if you aren\u2019t sure what you need to be looking for. A well-written job spec will include these.
\n\n\n\nTake the skills and put them into a spreadsheet. You are going to use this spreadsheet to record evidence of candidates\u2019 proficiency in said skills.
\n\n\n\nNaming the spreadsheet by job title and seniority helps when referencing this later.
\n\n\n\nThe finished spreadsheet will look like this:
\n\n\n\nCreating a spreadsheet is helpful for several reasons:
\n\n\n\nOnce you have a well-defined list of skills to look for, move on to step three.
\n\n\n\nWith your spreadsheet prepped, add the candidate\u2019s name and start looking for evidence.
\n\n\n\nBy the end of your browse through their portfolio, you should have added some notes for each skill. We find it useful to add links to their site that showcase the various skills. If you can\u2019t find any evidence, you should write \u201cno evidence.\u201d
\n\n\n\nBy this step, you have gathered your evidence for each candidate. Now you need to act on this information and make some decisions about moving a candidate forward or not.
\n\n\n\nThere are no hard-and-fast rules for this. Lack of evidence doesn\u2019t mean a lack of skill. It means they haven\u2019t showcased something. However, if you couldn\u2019t find any evidence they would fit this role, it is not the role for them.
\n\n\n\nYou\u2019re not finished with your spreadsheet yet! If you\u2019ve invited a candidate to continue the hiring process, take notes of where you couldn\u2019t find evidence for something. These are areas you can dig into during the interview.
\n\n\n\nIf you\u2019re rejecting a candidate, use the data you have to provide feedback, if possible. This will help them do better at selling their portfolio to the next potential employer.
\n\n\n\nFor the rest of this article, we\u2019re going to be talking about the skills to look for. This is not an exhaustive list. The skills you need are dependent on the project, the team and the job spec.
\n\n\n\nThese skills will give you a fabulous starting point. Soon you will be an expert at reading developer portfolios!
\n\n\n\nRegardless of the role, there are skills you should look for when reviewing portfolio websites.
\n\n\n\nOther skills you might incorporate are desirable traits you want to have in your company. If you have a culture of reflection, evidence of performing reviews would be positive.
\n\n\n\nDue to the nature of front-end development, a lot of the skills the developer will need are skills they can showcase in a portfolio. For example, if you need a front-end developer with an eye for design, their portfolio site should look visually pleasing.
\n\n\n\nFront end work is visual and interactive. You can expect to find interactive demos and experiments in a front-end developer\u2019s portfolio.
\n\n\n\nWith a back-end developer role, things become a bit more interesting. The nature of back-end development means the work isn\u2019t visible. Yet there are plenty of things you can look for when evaluating a back-end engineer portfolio.
\n\n\n\nPart of the back-end developer\u2019s portfolio will be their version control profile, such as a\u00a0Github\u00a0or\u00a0Gitlab\u00a0account.
\n\n\n\nWith any technical role, you might want to ask someone on your team with a relevant skillset to help review the portfolio.
\n\n\n\nThe importance of skills will change depending on the level of experience you need. You wouldn\u2019t expect a junior developer to be able to architect new solutions or mentor people.
\n\n\n\nGenerally speaking, the more\u00a0junior the role, the more slack you can cut someone. Look for evidence of being curious and trying different things.
\n\n\n\nWhen hiring more experienced people, look for evidence of how they plan and bring others along with them.
\n\n\n\nTo summarize, when looking at a software engineer portfolio, you should:
\n\n\n\nWe\u2019re always interested in seeing great examples of programmer portfolios. Please share yours with us on Twitter, Facebook or in the comments below.
\n", "content_text": "Although software engineers are in high demand, hiring them is hard. Understanding a software engineer portfolio isn\u2019t something they teach you in Hiring 101.\n\n\n\nTo help with that, we\u2019re going to share four steps to get the most out of looking at a developer\u2019s portfolio site. Then we\u2019re going to walk you through some of the things you should look for in a software engineer portfolio.\n\n\n\nBy the end of this article, you will be in an excellent place to find impressive candidates for the positions you have available.\n\n\n\nFour Steps for Success When Looking at Software Engineer Portfolios\n\n\n\nAs tempting as it is to start clicking around to get a feel for a potential new hire, you need a good plan. Often, you\u2019re looking at several candidates at once. Unlike resumes, there are no standards for portfolio websites.\n\n\n\n1. Define the Role You are Filling\n\n\n\nThe first step is to define the role. Doing this will help ground your other actions and prevent you from reviewing portfolios without proper context.\n\n\n\nTwo questions you should ask yourself are:\n\n\n\nWhat is the job title?\n\n\n\nWhat is the expected level of seniority?\n\n\n\nYou can arrive at these answers by talking to the hiring managers or look at the job specs, if available.\n\n\n\nOnce you have defined the role, you can move onto step two.\n\n\n\n2. Define the Skills Needed\n\n\n\nNow you know the role to consider when reviewing the software engineer\u2019s portfolio. The next step is to break the job down into the required skills and attributes.\n\n\n\nWe\u2019re going to cover some of these skills later, so don\u2019t worry if you aren\u2019t sure what you need to be looking for. A well-written job spec will include these.\n\n\n\nTake the skills and put them into a spreadsheet. You are going to use this spreadsheet to record evidence of candidates\u2019 proficiency in said skills.\n\n\n\nNaming the spreadsheet by job title and seniority helps when referencing this later.\n\n\n\nThe finished spreadsheet will look like this:\n\n\n\nAn example of the spreadsheet you should use\n\n\n\nCreating a spreadsheet is helpful for several reasons:\n\n\n\nIt keeps your browsing focusedIt helps you keep track of the skills you couldn\u2019t find evidence forIt\u2019s a resource to reference during interviews\n\n\n\nOnce you have a well-defined list of skills to look for, move on to step three.\n\n\n\n3. Look for Examples of Those Skills in the Portfolio\n\n\n\nWith your spreadsheet prepped, add the candidate\u2019s name and start looking for evidence.\n\n\n\nBy the end of your browse through their portfolio, you should have added some notes for each skill. We find it useful to add links to their site that showcase the various skills. If you can\u2019t find any evidence, you should write \u201cno evidence.\u201d\n\n\n\n4. Make Some Decisions\n\n\n\nBy this step, you have gathered your evidence for each candidate. Now you need to act on this information and make some decisions about moving a candidate forward or not.\n\n\n\nThere are no hard-and-fast rules for this. Lack of evidence doesn\u2019t mean a lack of skill. It means they haven\u2019t showcased something. However, if you couldn\u2019t find any evidence they would fit this role, it is not the role for them.\n\n\n\nYou\u2019re not finished with your spreadsheet yet! If you\u2019ve invited a candidate to continue the hiring process, take notes of where you couldn\u2019t find evidence for something. These are areas you can dig into during the interview.\n\n\n\nIf you\u2019re rejecting a candidate, use the data you have to provide feedback, if possible. This will help them do better at selling their portfolio to the next potential employer.\n\n\n\nWhat Skills to Look for in a Software Engineer Portfolio\n\n\n\nFor the rest of this article, we\u2019re going to be talking about the skills to look for. This is not an exhaustive list. The skills you need are dependent on the project, the team and the job spec.\n\n\n\nThese skills will give you a fabulous starting point. Soon you will be an expert at reading developer portfolios!\n\n\n\nUniversal Skills \n\n\n\nRegardless of the role, there are skills you should look for when reviewing portfolio websites.\n\n\n\nCommunication \u2013 Is the candidate an\u00a0excellent communicator? Do they match what they are trying to say to their intended audience? Have they given talks?Empathy \u2013 Does the candidate care about the people they are working with and for? Are they dismissive of \u201cthe user\u201d?Ethics \u2013 Does the developer showcase that they understand the ethical implications of software?Appropriate use of toolsets \u2013 Has the engineer shown that they can evaluate toolsets and pick the right tools for the job?\n\n\n\nOther skills you might incorporate are desirable traits you want to have in your company. If you have a culture of reflection, evidence of performing reviews would be positive.\n\n\n\nFront-End Developer Skills to Look for in a Portfolio\n\n\n\nDue to the nature of front-end development, a lot of the skills the developer will need are skills they can showcase in a portfolio. For example, if you need a front-end developer with an eye for design, their portfolio site should look visually pleasing.\n\n\n\nAccessible \u2013 Does the developer make software in a way that allows it to be usable by the majority of people?Performant \u2013 Has the developer shown care over how much data the project uses and how fast it works for the end-user?Standards \u2013 Does the code use current best practices and standards?\n\n\n\nFront end work is visual and interactive. You can expect to find interactive demos and experiments in a front-end developer\u2019s portfolio.\n\n\n\nBack-End Developer Skills to Look for in a Portfolio\n\n\n\nWith a back-end developer role, things become a bit more interesting. The nature of back-end development means the work isn\u2019t visible. Yet there are plenty of things you can look for when evaluating a back-end engineer portfolio.\n\n\n\nUnderstands fundamentals \u2013 Does the developer have a grasp of the fundamentals of the languages and tools they use?Reasons well about tooling \u2013 Is there evidence that the developer reasons about the options open to them and picks an appropriate one?Shows the code \u2013 Does the candidate work in the open? Do they show their code when possible with work samples?\n\n\n\nPart of the back-end developer\u2019s portfolio will be their version control profile, such as a\u00a0Github\u00a0or\u00a0Gitlab\u00a0account.\n\n\n\nWith any technical role, you might want to ask someone on your team with a relevant skillset to help review the portfolio.\n\n\n\nLooking for Experience in a Software Engineer Portfolio\n\n\n\nThe importance of skills will change depending on the level of experience you need. You wouldn\u2019t expect a junior developer to be able to architect new solutions or mentor people.\n\n\n\nGenerally speaking, the more\u00a0junior the role, the more slack you can cut someone. Look for evidence of being curious and trying different things.\n\n\n\nWhen hiring more experienced people, look for evidence of how they plan and bring others along with them.\n\n\n\nGo Forth and Find Awesome Software Engineers!\n\n\n\nTo summarize, when looking at a software engineer portfolio, you should:\n\n\n\nUnderstand the roleUnderstand the skills required for that role, using our examples as a starting pointDocument your evidenceMake decisions based on the information you\u2019ve gathered\n\n\n\nWe\u2019re always interested in seeing great examples of programmer portfolios. Please share yours with us on Twitter, Facebook or in the comments below.", "date_published": "2020-03-10T09:00:07-07:00", "date_modified": "2020-03-10T12:41:38-07:00", "authors": [ { "name": "Toby Osbourn", "url": "https://textexpander.com/author/toby", "avatar": "https://secure.gravatar.com/avatar/f9df5ae464cd8080533092eac3a56135?s=512&d=retro&r=g" } ], "author": { "name": "Toby Osbourn", "url": "https://textexpander.com/author/toby", "avatar": "https://secure.gravatar.com/avatar/f9df5ae464cd8080533092eac3a56135?s=512&d=retro&r=g" }, "image": "https://textexpander.com/wp-content/uploads/2020/03/software-engineer-portfolio.jpg", "tags": [ "developer", "hiring", "job applications", "jobs", "Blog", "Development" ], "summary": "Hiring software engineers is hard. Understanding a software engineer portfolio is not a skill taught in hiring 101! Here are four steps you should follow to get the most out of looking at a developer's portfolio site" }, { "id": "https://textexpander.com/?p=12793", "url": "https://textexpander.com/blog/sdlc-methodologies", "title": "Understanding SDLC Methodologies: Which One is Right for You?", "content_html": "There are entire companies dedicated to the training on different SDLC methodologies. It isn\u2019t surprising that implementing software development methodologies is confusing to both developers and project managers.
\n\n\n\nThis article covers some of the most common methodologies and shares their pros and cons.
\n\n\n\nWith a deeper understanding of SDLC methodologies, you will be able to pick the one that works best for your project.
\n\n\n\nThe software development life cycle is a series of phases that describe how software goes from idea to release.
\n\n\n\nThe seven phases in the SDLC are:
\n\n\n\nThe different methodologies give developers options on how much emphasis they place on each phase of the SDLC. The frameworks also dictate how those phases interact with one another.
\n\n\n\nFor example, the Agile methodology places emphasis on getting working software made sooner. Waterfall focuses more on documenting decisions made between phases.
\n\n\n\nPlanning takes longer on Waterfall than on Agile, but the goal of both is to please all project stakeholders and produce good software.
\n\n\n\nNow that you have an overview of SDLC methodologies, we\u2019re going to look at some of them in more detail.
\n\n\n\nWhen reading about these methodologies, consider whether they would be a good fit for your team as well as the product you\u2019re building.
\n\n\n\nThere isn\u2019t one methodology that is better than the rest. They all have strengths that will benefit different teams at different times.
\n\n\n\nYour choice of methodology will impact how your development team works and your hiring decisions.
\n\n\n\nThe Agile model focuses on getting something workable in front of users as soon as possible and then working on improvements. In Agile, the focus is on the interactions between the users and developers, and developers work closely together to reduce feedback loops.
\n\n\n\nYour team might enjoy the Agile model if tight feedback loops are important to them.
\n\n\n\nAgile Pros
\n\n\n\nEnd-users get to see quick improvements and feels ownership over the software because developers ask for their feedback in every iteration.
\n\n\n\nThe Agile movement has gained lots of momentum in recent years. Using Agile methodology is often a selling point when hiring staff.
\n\n\n\nAgile Cons
\n\n\n\nThe Agile model produces what the client wants quickly, but if the client doesn\u2019t know what they need, developers waste time.
\n\n\n\nThe Waterfall methodology is the most established SDLC approach. The goal is to finish each stage before moving on to the next one. Each phase relies on the information gathered from earlier stages and there is no going back.
\n\n\n\nYour developers might benefit from the Waterfall model if external factors require that work happens in a staged way with signoffs happening throughout.
\n\n\n\nWaterfall Pros
\n\n\n\nThe Waterfall methodology is easy to understand and explain to development teams and stakeholders, making onboarding easier compared to other approaches. Managing a team is easier, too, because each stage has a fixed start and end date.
\n\n\n\nWaterfall Cons
\n\n\n\nIn the Waterfall approach, early delays have cascading effects on the rest of the project. Also, even if you learn something new at a particular stage, you can\u2019t update previous stages to suit. This is due to the fixed nature of this development framework. As a result, the product often incorporates less user feedback.
\n\n\n\nMany people see Waterfall methodology as a relic. The bad publicity it receives makes it hard to hire people into projects that work this way.
\n\n\n\nLean has its founding in lean manufacturing principles. The Lean methodology prioritizes moving fast and cutting waste when possible. To accomplish this, the development team focuses on one task at a time and achieves one milestone before working on the next.
\n\n\n\nYour development team could benefit from the Lean model if developer efficiency is a core team goal.
\n\n\n\nLean Pros
\n\n\n\nTaking a Lean approach allows teams to incorporate lessons learned from past inefficiencies. This drive to be efficient leads to well-functioning teams in the long run.
\n\n\n\nOnce the team is working efficiently, it produces a lot of value for stakeholders in a short time.
\n\n\n\nLean Cons
\n\n\n\nOnboarding new people into a Lean process can be a cultural shock. Therefore, team managers need to plan onboarding more carefully than they would if they were working with other methodologies.
\n\n\n\nAlso, the team can only work on one feature at a time, which in the short term can cause conflicts with stakeholders.
\n\n\n\nWith the Iterative methodology, the development team doesn\u2019t wait until it understands all of the users\u2019 needs before starting to work. Work towards the first specified need begins immediately, and new requirements lead to new iterations.
\n\n\n\nYour project might benefit from the Iterative model if the end goal is only very loosely defined.
\n\n\n\nIterative Pros
\n\n\n\nIterative development is one of the fastest ways to get something in front of a user base and show progress quickly. The team feels empowered to make changes and improve things as they go.
\n\n\n\nIterative Cons
\n\n\n\nIt\u2019s hard to plan how long something will take. You only know the number of iterations you\u2019ll need to complete the project once it\u2019s closer to being done.
\n\n\n\nThe Spiral methodology applies rigor to the Iterative approach. Similar to the Iterative methodology, work happens in a cycle. Unlike Iterative, there is a specified method to follow.
\n\n\n\nIn this methodology, developer teams:
\n\n\n\nUse the Spiral model when your project goals are unknown but you need to consider the risks before the development team starts working.
\n\n\n\nSpiral Pros
\n\n\n\nThe Spiral methodology allows for early feedback since the first iteration is quick to produce.
\n\n\n\nUnlike other methodologies which overlook feasibility analysis, Spiral looks for risks at each development iteration.
\n\n\n\nSpiral Cons
\n\n\n\nWorking this way has the same drawbacks as working with Iterative development. It\u2019s hard to see an end to the work. You can mitigate this by getting stakeholder approval, but this can lead to bottlenecks.
\n\n\n\nIn the DevOps model, developers and operations teams work together, often as a combined team.
\n\n\n\nWith the teams working together, updates to the software can happen more often than with other methodologies.
\n\n\n\nYour team might benefit from a DevOps model if a robust system from the outset of the project is what it needs.
\n\n\n\nDevOps Pros
\n\n\n\nRobust testing and stability from the outset are the main advantages of working with DevOps.
\n\n\n\nWithin the DevOps methodology, deployed software is production-ready, secure and scalable.
\n\n\n\nDevOps Cons
\n\n\n\nMerging two teams into one requires a large-scale mindset and culture change in a company. Considering operations early on in the project often delays the first iteration.
\n\n\n\nThe methodology you pick for a particular project will depend on the constraints of the projects and the people involved.
\n\n\n\nThe methodologies we\u2019ve talked about today are frameworks for doing excellent work. They are only as good as their implementation. If an implementation isn\u2019t working for you, change it.
\n\n\n\nThe best teams adopt the spirit of a methodology and implement it in a way that works for them.
\n", "content_text": "There are entire companies dedicated to the training on different SDLC methodologies. It isn\u2019t surprising that implementing software development methodologies is confusing to both developers and project managers.\n\n\n\nThis article covers some of the most common methodologies and shares their pros and cons. \n\n\n\nWith a deeper understanding of SDLC methodologies, you will be able to pick the one that works best for your project. \n\n\n\nWhat Are SDLC Methodologies?\n\n\n\nThe software development life cycle is a series of phases that describe how software goes from idea to release. \n\n\n\nThe seven phases in the SDLC are:\n\n\n\nPlanningFeasibility analysisProduct designCodingImplementation and integrationSoftware testingInstallation and maintenance\n\n\n\nThe different methodologies give developers options on how much emphasis they place on each phase of the SDLC. The frameworks also dictate how those phases interact with one another. \n\n\n\nFor example, the Agile methodology places emphasis on getting working software made sooner. Waterfall focuses more on documenting decisions made between phases. \n\n\n\nPlanning takes longer on Waterfall than on Agile, but the goal of both is to please all project stakeholders and produce good software. \n\n\n\nThe 6 Most Common SDLC Methodologies In 2020\n\n\n\nNow that you have an overview of SDLC methodologies, we\u2019re going to look at some of them in more detail.\n\n\n\nWhen reading about these methodologies, consider whether they would be a good fit for your team as well as the product you\u2019re building.\n\n\n\nThere isn\u2019t one methodology that is better than the rest. They all have strengths that will benefit different teams at different times.\n\n\n\nYour choice of methodology will impact how your development team works and your hiring decisions.\n\n\n\nAgile\n\n\n\nThe Agile model focuses on getting something workable in front of users as soon as possible and then working on improvements. In Agile, the focus is on the interactions between the users and developers, and developers work closely together to reduce feedback loops.\n\n\n\nYour team might enjoy the Agile model if tight feedback loops are important to them.\n\n\n\nAgile Pros\n\n\n\nEnd-users get to see quick improvements and feels ownership over the software because developers ask for their feedback in every iteration. \n\n\n\nThe Agile movement has gained lots of momentum in recent years. Using Agile methodology is often a selling point when hiring staff.\n\n\n\nAgile Cons\n\n\n\nThe Agile model produces what the client wants quickly, but if the client doesn\u2019t know what they need, developers waste time.\n\n\n\nWaterfall\n\n\n\nThe Waterfall methodology is the most established SDLC approach. The goal is to finish each stage before moving on to the next one. Each phase relies on the information gathered from earlier stages and there is no going back.\n\n\n\nYour developers might benefit from the Waterfall model if external factors require that work happens in a staged way with signoffs happening throughout.\n\n\n\nWaterfall Pros\n\n\n\nThe Waterfall methodology is easy to understand and explain to development teams and stakeholders, making onboarding easier compared to other approaches. Managing a team is easier, too, because each stage has a fixed start and end date.\n\n\n\nWaterfall Cons\n\n\n\nIn the Waterfall approach, early delays have cascading effects on the rest of the project. Also, even if you learn something new at a particular stage, you can\u2019t update previous stages to suit. This is due to the fixed nature of this development framework. As a result, the product often incorporates less user feedback.\n\n\n\nMany people see Waterfall methodology as a relic. The bad publicity it receives makes it hard to hire people into projects that work this way.\n\n\n\nLean\n\n\n\nLean has its founding in lean manufacturing principles. The Lean methodology prioritizes moving fast and cutting waste when possible. To accomplish this, the development team focuses on one task at a time and achieves one milestone before working on the next.\n\n\n\nYour development team could benefit from the Lean model if developer efficiency is a core team goal.\n\n\n\nLean Pros\n\n\n\nTaking a Lean approach allows teams to incorporate lessons learned from past inefficiencies. This drive to be efficient leads to well-functioning teams in the long run. \n\n\n\nOnce the team is working efficiently, it produces a lot of value for stakeholders in a short time.\n\n\n\nLean Cons\n\n\n\nOnboarding new people into a Lean process can be a cultural shock. Therefore, team managers need to plan onboarding more carefully than they would if they were working with other methodologies.\n\n\n\nAlso, the team can only work on one feature at a time, which in the short term can cause conflicts with stakeholders.\n\n\n\nIterative\n\n\n\nWith the Iterative methodology, the development team doesn\u2019t wait until it understands all of the users\u2019 needs before starting to work. Work towards the first specified need begins immediately, and new requirements lead to new iterations.\n\n\n\nYour project might benefit from the Iterative model if the end goal is only very loosely defined.\n\n\n\nIterative Pros\n\n\n\nIterative development is one of the fastest ways to get something in front of a user base and show progress quickly. The team feels empowered to make changes and improve things as they go.\n\n\n\nIterative Cons\n\n\n\nIt\u2019s hard to plan how long something will take. You only know the number of iterations you\u2019ll need to complete the project once it\u2019s closer to being done.\n\n\n\nSpiral\n\n\n\nThe Spiral methodology applies rigor to the Iterative approach. Similar to the Iterative methodology, work happens in a cycle. Unlike Iterative, there is a specified method to follow.\n\n\n\nIn this methodology, developer teams:\n\n\n\nConsider what stakeholders needIdentify and test approaches for satisfying the requirementsFind and mitigate risks that stem from the selected approachesGet approval from stakeholders and commitment to pursue the next cycle\n\n\n\nUse the Spiral model when your project goals are unknown but you need to consider the risks before the development team starts working.\n\n\n\nSpiral Pros\n\n\n\nThe Spiral methodology allows for early feedback since the first iteration is quick to produce.\n\n\n\nUnlike other methodologies which overlook feasibility analysis, Spiral looks for risks at each development iteration. \n\n\n\nSpiral Cons\n\n\n\nWorking this way has the same drawbacks as working with Iterative development. It\u2019s hard to see an end to the work. You can mitigate this by getting stakeholder approval, but this can lead to bottlenecks.\n\n\n\nDevOps\n\n\n\nIn the DevOps model, developers and operations teams work together, often as a combined team.\n\n\n\nWith the teams working together, updates to the software can happen more often than with other methodologies.\n\n\n\nYour team might benefit from a DevOps model if a robust system from the outset of the project is what it needs.\n\n\n\nDevOps Pros\n\n\n\nRobust testing and stability from the outset are the main advantages of working with DevOps.\n\n\n\nWithin the DevOps methodology, deployed software is production-ready, secure and scalable.\n\n\n\nDevOps Cons\n\n\n\nMerging two teams into one requires a large-scale mindset and culture change in a company. Considering operations early on in the project often delays the first iteration.\n\n\n\nWhich SDLC Methodology Is Right For Me?\n\n\n\nThe methodology you pick for a particular project will depend on the constraints of the projects and the people involved. \n\n\n\nThe methodologies we\u2019ve talked about today are frameworks for doing excellent work. They are only as good as their implementation. If an implementation isn\u2019t working for you, change it. \n\n\n\nThe best teams adopt the spirit of a methodology and implement it in a way that works for them.", "date_published": "2020-03-03T08:20:49-07:00", "date_modified": "2020-03-18T06:26:54-07:00", "authors": [ { "name": "Toby Osbourn", "url": "https://textexpander.com/author/toby", "avatar": "https://secure.gravatar.com/avatar/f9df5ae464cd8080533092eac3a56135?s=512&d=retro&r=g" } ], "author": { "name": "Toby Osbourn", "url": "https://textexpander.com/author/toby", "avatar": "https://secure.gravatar.com/avatar/f9df5ae464cd8080533092eac3a56135?s=512&d=retro&r=g" }, "image": "https://textexpander.com/wp-content/uploads/2020/03/Featured_Understanding-SDLC-Methodologies.jpg", "tags": [ "developer", "manager", "Blog", "Development" ], "summary": "Learn about some common SDLC methodologies to better understand what SDLC methodology is right for your project" }, { "id": "https://textexpander.com/?p=12679", "url": "https://textexpander.com/blog/sdlc-phases", "title": "Is There Room for Improvement in Any of the SDLC Phases?", "content_html": "The software development life cycle, or SDLC, loosely describes the stages that software must go through to become a usable product. There isn\u2019t one, but several SDLC models. Some teams subscribe heavily to agile methodologies. Others to the waterfall model. Regardless of the method, the work happens in phases.
\n\n\n\nDifferent software development methodologies will prioritize different phases of the SDLC over others or have additional steps. The five SDLC phases that we will be covering in this post are:
\n\n\n\nEach one requires input from developers, project managers, testers, and stakeholders.
\n\n\n\nBecause the best way to improve any process is to ask questions, we\u2019ll suggest questions to ask about each SDLC phase below.
\n\n\n\nThe requirements analysis phase is where software engineers ensure that software ultimately helps the end user of the system.
\n\n\n\nGathering requirements involves talking to stakeholders and looking at as much relevant data as possible. Being efficient and effective during this phase will help the project get off to a great start.
Questions to ask while performing requirements analysis include:
In the design phase, developers often prototype their work, mapping out a solution without actually implementing it. Prototyping is useful for getting early feedback and informing technical decisions.
\n\n\n\nWithout prototypes, there\u2019s a risk that the team will waste time on production-ready solutions that raise concerns about issues such as security and scale.
\n\n\n\nQuestions to ask during the design phase:
\n\n\n\nWhen programmers reach the implementation phase, they take their prototypes or designs and turn them into fully functional features. Implementation is where simple SDLC methodologies stop.
\n\n\n\nIt is during the implementation phase that other teams, such as Operations, might get involved. It can be costly to make changes after this phase, which is why it is imperative that you ask questions to help ensure you are working effectively.
\n\n\n\nQuestions to ask during the implementation phase:
\n\n\n\nThe testing phase can cover a few different areas. Generally, testing is concerned with making sure that the implementation meets the initial requirements analysis, and that no regressions have occurred in other parts of the application as a result of these new changes.
\n\n\n\nTesting usually requires working with a testing team and users of your system. With so many teams involved, it pays to make sure you\u2019re working well in the testing phase.
\n\n\n\nQuestions to ask during the testing phase:
\n\n\n\nThe evolution phase gets called many different things, including maintenance. This phase is all about fine-tuning and reporting on the work that has been done. These reports turn into more requirements analysis in the future.
\n\n\n\nDepending on the SDLC methodology your team uses, there might be a well-defined case for doing another iteration.
\n\n\n\nWhether this is the true end of your project, or a phase before you start again, you should approach the work with the same professionalism as you have the other stages.
\n\n\n\nQuestions to ask during the evolution phase:
\n\n\n\nThese questions are not designed for moments of introspection; they should be starting points for a conversation with the people in each relevant team. For example, when thinking about automated testing, you need to speak to both developers and testers to see what they think needs to change.
\n\n\n\nAdditionally, the answers to these questions are not set in stone. You will find that as you make changes to one part of your process, it will impact other parts. Be sure to revisit these questions often.
\n\n\n\nWhichever programming methodology your team has adopted, and whatever you call the phases of your life cycle, there is always room for improvement.
\n\n\n\nKeep asking the right questions and making small improvements to your process. With time, your team will become more efficient and provide more value.
\n\n\n\nWhat development methodology does your team use? Let us know in the comments below.
\n", "content_text": "The software development life cycle, or SDLC, loosely describes the stages that software must go through to become a usable product. There isn\u2019t one, but several SDLC models. Some teams subscribe heavily to agile methodologies. Others to the waterfall model. Regardless of the method, the work happens in phases.\n\n\n\nDifferent software development methodologies will prioritize different phases of the SDLC over others or have additional steps. The five SDLC phases that we will be covering in this post are:\n\n\n\nRequirements analysisDesignImplementationTestingEvolution\n\n\n\nEach one requires input from developers, project managers, testers, and stakeholders.\n\n\n\nBecause the best way to improve any process is to ask questions, we\u2019ll suggest questions to ask about each SDLC phase below.\n\n\n\nRequirements Analysis Phase\n\n\n\nThe requirements analysis phase is where software engineers ensure that software ultimately helps the end user of the system.\n\n\n\nGathering requirements involves talking to stakeholders and looking at as much relevant data as possible. Being efficient and effective during this phase will help the project get off to a great start.Questions to ask while performing requirements analysis include:\n\n\n\nAm I getting requirements from our users?Are we reacting too quickly to one person\u2019s opinion?Can we back up demands with data?How do we communicate the needs back to the end user?Are the requirements being led by the roadmap?\n\n\n\nDesign Phase\n\n\n\nIn the design phase, developers often prototype their work, mapping out a solution without actually implementing it. Prototyping is useful for getting early feedback and informing technical decisions.\n\n\n\nWithout prototypes, there\u2019s a risk that the team will waste time on production-ready solutions that raise concerns about issues such as security and scale. \n\n\n\nQuestions to ask during the design phase:\n\n\n\nAre we continually designing the same thing over and over?For how long do the initial designs hold?Is the output from this phase looked at again in the future?\n\n\n\nImplementation Phase\n\n\n\nWhen programmers reach the implementation phase, they take their prototypes or designs and turn them into fully functional features. Implementation is where simple SDLC methodologies stop.\n\n\n\nIt is during the implementation phase that other teams, such as Operations, might get involved. It can be costly to make changes after this phase, which is why it is imperative that you ask questions to help ensure you are working effectively.\n\n\n\nQuestions to ask during the implementation phase:\n\n\n\nHow much technical debt are we introducing?How much did the implementation deviate from the original design?How much back and forth was there between the people designing the solution and the people implementing it?Does implementing this feature harm other features?Is code getting reviewed?\n\n\n\nTesting Phase\n\n\n\nThe testing phase can cover a few different areas. Generally, testing is concerned with making sure that the implementation meets the initial requirements analysis, and that no regressions have occurred in other parts of the application as a result of these new changes.\n\n\n\nTesting usually requires working with a testing team and users of your system. With so many teams involved, it pays to make sure you\u2019re working well in the testing phase.\n\n\n\nQuestions to ask during the testing phase:\n\n\n\nHow much of the testing is automated?Are we continually making the same implementation mistakes?How long does it take to test the project end-to-end?What bugs generally slip through the testing process?\n\n\n\nEvolution Phase\n\n\n\nThe evolution phase gets called many different things, including maintenance. This phase is all about fine-tuning and reporting on the work that has been done. These reports turn into more requirements analysis in the future.\n\n\n\nDepending on the SDLC methodology your team uses, there might be a well-defined case for doing another iteration. \n\n\n\nWhether this is the true end of your project, or a phase before you start again, you should approach the work with the same professionalism as you have the other stages.\n\n\n\nQuestions to ask during the evolution phase:\n\n\n\nHow much time do we give to maintenance?Are we able to accurately report on changes made by a feature?How much of what came before is taken into account when looking at new features?\n\n\n\nYou Cannot Answer These Questions Yourself\n\n\n\nThese questions are not designed for moments of introspection; they should be starting points for a conversation with the people in each relevant team. For example, when thinking about automated testing, you need to speak to both developers and testers to see what they think needs to change.\n\n\n\nAdditionally, the answers to these questions are not set in stone. You will find that as you make changes to one part of your process, it will impact other parts. Be sure to revisit these questions often.\n\n\n\nThere Is Always Room For Improvement\n\n\n\nWhichever programming methodology your team has adopted, and whatever you call the phases of your life cycle, there is always room for improvement.\n\n\n\nKeep asking the right questions and making small improvements to your process. With time, your team will become more efficient and provide more value.\n\n\n\nWhat development methodology does your team use? Let us know in the comments below.", "date_published": "2020-02-25T09:00:39-07:00", "date_modified": "2020-02-18T10:30:45-07:00", "authors": [ { "name": "Toby Osbourn", "url": "https://textexpander.com/author/toby", "avatar": "https://secure.gravatar.com/avatar/f9df5ae464cd8080533092eac3a56135?s=512&d=retro&r=g" } ], "author": { "name": "Toby Osbourn", "url": "https://textexpander.com/author/toby", "avatar": "https://secure.gravatar.com/avatar/f9df5ae464cd8080533092eac3a56135?s=512&d=retro&r=g" }, "image": "https://textexpander.com/wp-content/uploads/2020/02/sdlc-phases.jpg", "tags": [ "developer", "manager", "Blog", "Development" ], "summary": "We share some questions you can ask when improving the SDLC phases for your team.\n" }, { "id": "https://textexpander.com/?p=12311", "url": "https://textexpander.com/blog/technical-debt-in-scrum", "title": "5 Ways to Tackle Technical Debt in Scrum \u2013 Make Small Improvements For Big Gains", "content_html": "Technical debt happens in all software projects, regardless of the languages, frameworks, or project methodologies used. It describes the costs associated with each engineering decision made in a project. Often, quick-fixes will create a deficit in the system. Unless they are paid off, this will compound and cause a greater amount of debt over time.
\n\n\n\nWe use this term to explain to people who don\u2019t fully understand software development practices that there is a definite cost to rushing things. Much like monetary debt, you need to make a plan to reduce the technical deficit over time or it will spiral out of control.
\n\n\n\nDevelopers, like savers, have opinions on the best way to tackle debt. Some like to do small things regularly to keep debt down. Others let debt build up so that in the long run, a more drastic change needs to be made.
\n\n\n\nIn this post, we share five ways to tackle technical debt in scrum. We\u2019ve focused on scrum methodology for software development because it is a widely respected and adopted framework. Also, it provides us with many chances to pay off technical debt as part of the standard development workflow.
\n\n\n\nTake a look at these ideas for reducing technical debt in scrum.
\n\n\n\nThe majority of project teams that practice scrum have daily stand-ups. These are short meetings where the team shares a brief status report, their plans for the day, and highlight any blockers. They give everyone a quick overview of where things are and where things are heading.
\n\n\n\nIf you are working on something that feels like it might create technical debt in the future, it is worth highlighting during these stand-ups.
\n\n\n\nSomeone else on the team might have a suggestion about how to tackle the problem in a way that doesn\u2019t incur debt. At the very least, it lets the project manager know that this is something that may need attention in the future.
\n\n\n\nIf you are writing tickets correctly, each one will have a definition of done. The definition of done is a series of tasks that will be true when the ticket is complete. When all are confirmed, you can close the issue.
\n\n\n\nWriting a good definition of \u201cdone\u201d is a skill. A thorough explanation of \u201cdone\u201d should include the tasks required to ensure that technical debt is addressed.
\n\n\n\nFor example, if you\u2019re using old code for your payment provider, and you have a ticket in that includes using some of the payment provider code, the definition of done could include \u201cupdates to version 3 of payment provider API.\u201d
\n\n\n\nAdding tasks to your definition of done will increase the amount of time necessary to complete the ticket, but once complete, you won\u2019t have to worry about old code slowing down development work.
\n\n\n\nThere are several ways that technical debt can accrue in a project. One of the most common ways is a known technical debt. This is when a team or a team leader decides to do things a certain way knowing that this will cause issues down the line.
\n\n\n\nAnother is unknown technical debt, where a code change wasn\u2019t properly scrutinized.
\n\n\n\nLuckily, proponents of scrum almost always have a code review process as part of their development work. This process can help mitigate some of the risks involved in unknown technical debt.
\n\n\n\nCode review is the process by which someone who didn\u2019t write the code reviews it, makes comments, and ask questions. Often, the reviewer is able to spot issues that the original developer didn\u2019t think about.
\n\n\n\nIf code is frequently passing the review but is later found to be the cause of technical debt, it may be time to refine your code review process.
\n\n\n\nHaving debt-based code review doesn\u2019t mean that code can never incur debt; it just means that no hidden debt should sneak past code review.
\n\n\n\nSometimes, the technical debt is such that developers can\u2019t address it unless it becomes a task. In scrum, there\u2019s the notion of backlog. The backlog is where all tickets originate. During spring planning for the next body of work for the team, tickets move from the backlog into a to-do list.
\n\n\n\nIt is completely fine for a ticket to address technical debt. It should get treated like any other ticket. Developers should discuss it like they do other tickets. If deemed important enough, it should make its way out of the backlog and into the next body of work.
\n\n\n\nCreating a ticket in your backlog suggests that there is a dedicated body of work that needs to be done, probably over several files or touching several parts of the system. When a team creates a technical debt ticket, it\u2019s important to reflect on whether that made sense, or whether it would have been more appropriate to take one the actions mentioned earlier in this list.
\n\n\n\nThe product roadmap is a high-level document used to communicate what projects need to happen for a product to achieve its product vision.
\n\n\n\nUsually, the types of projects you see on a roadmap are targeted to things that end-users of your product need.
\n\n\n\nThere are some occasions in which you can argue for the need to add a technical debt project to the roadmap. This would be the case when significant time needs to be invested in the solution, more than would be covered by a few weeks of work.
\n\n\n\nJust like creating a ticket in the backlog, once a project is created in the roadmap, it should be evaluated along with all the other projects to determine a priority.
\n\n\n\nWhether you\u2019re casually mentioning a potential issue during stand-up, or helping to create an entire project to fix some technical debt, you always want to make sure you are providing value.
\n\n\n\nHow do you feel about technical debt? Do you try and pay it off immediately and put things in place to stop it from happening? Or do you let it pile up until it can\u2019t be ignored anymore? Let us know in the comments below.
\n", "content_text": "Technical debt happens in all software projects, regardless of the languages, frameworks, or project methodologies used. It describes the costs associated with each engineering decision made in a project. Often, quick-fixes will create a deficit in the system. Unless they are paid off, this will compound and cause a greater amount of debt over time.\n\n\n\nWe use this term to explain to people who don\u2019t fully understand software development practices that there is a definite cost to rushing things. Much like monetary debt, you need to make a plan to reduce the technical deficit over time or it will spiral out of control.\n\n\n\nDevelopers, like savers, have opinions on the best way to tackle debt. Some like to do small things regularly to keep debt down. Others let debt build up so that in the long run, a more drastic change needs to be made.\n\n\n\nIn this post, we share five ways to tackle technical debt in scrum. We\u2019ve focused on scrum methodology for software development because it is a widely respected and adopted framework. Also, it provides us with many chances to pay off technical debt as part of the standard development workflow.\n\n\n\nTake a look at these ideas for reducing technical debt in scrum. \n\n\n\n1. Mention Technical Debt in Stand-Up\n\n\n\nThe majority of project teams that practice scrum have daily stand-ups. These are short meetings where the team shares a brief status report, their plans for the day, and highlight any blockers. They give everyone a quick overview of where things are and where things are heading.\n\n\n\nIf you are working on something that feels like it might create technical debt in the future, it is worth highlighting during these stand-ups.\n\n\n\nSomeone else on the team might have a suggestion about how to tackle the problem in a way that doesn\u2019t incur debt. At the very least, it lets the project manager know that this is something that may need attention in the future.\n\n\n\n2. Adjust Your Definition of Done\n\n\n\nIf you are writing tickets correctly, each one will have a definition of done. The definition of done is a series of tasks that will be true when the ticket is complete. When all are confirmed, you can close the issue.\n\n\n\nWriting a good definition of \u201cdone\u201d is a skill. A thorough explanation of \u201cdone\u201d should include the tasks required to ensure that technical debt is addressed.\n\n\n\nFor example, if you\u2019re using old code for your payment provider, and you have a ticket in that includes using some of the payment provider code, the definition of done could include \u201cupdates to version 3 of payment provider API.\u201d\n\n\n\nAdding tasks to your definition of done will increase the amount of time necessary to complete the ticket, but once complete, you won\u2019t have to worry about old code slowing down development work.\n\n\n\n3. Refine Your Code Review Process\n\n\n\nThere are several ways that technical debt can accrue in a project. One of the most common ways is a known technical debt. This is when a team or a team leader decides to do things a certain way knowing that this will cause issues down the line.\n\n\n\nAnother is unknown technical debt, where a code change wasn\u2019t properly scrutinized.\n\n\n\nLuckily, proponents of scrum almost always have a code review process as part of their development work. This process can help mitigate some of the risks involved in unknown technical debt.\n\n\n\nCode review is the process by which someone who didn\u2019t write the code reviews it, makes comments, and ask questions. Often, the reviewer is able to spot issues that the original developer didn\u2019t think about.\n\n\n\nIf code is frequently passing the review but is later found to be the cause of technical debt, it may be time to refine your code review process.\n\n\n\nHaving debt-based code review doesn\u2019t mean that code can never incur debt; it just means that no hidden debt should sneak past code review.\n\n\n\n4. Create Tickets in Your Backlog\n\n\n\nSometimes, the technical debt is such that developers can\u2019t address it unless it becomes a task. In scrum, there\u2019s the notion of backlog. The backlog is where all tickets originate. During spring planning for the next body of work for the team, tickets move from the backlog into a to-do list.\n\n\n\nIt is completely fine for a ticket to address technical debt. It should get treated like any other ticket. Developers should discuss it like they do other tickets. If deemed important enough, it should make its way out of the backlog and into the next body of work.\n\n\n\nCreating a ticket in your backlog suggests that there is a dedicated body of work that needs to be done, probably over several files or touching several parts of the system. When a team creates a technical debt ticket, it\u2019s important to reflect on whether that made sense, or whether it would have been more appropriate to take one the actions mentioned earlier in this list.\n\n\n\n5. Add a Project to Your Product Roadmap\n\n\n\nThe product roadmap is a high-level document used to communicate what projects need to happen for a product to achieve its product vision.\n\n\n\nUsually, the types of projects you see on a roadmap are targeted to things that end-users of your product need.\n\n\n\nThere are some occasions in which you can argue for the need to add a technical debt project to the roadmap. This would be the case when significant time needs to be invested in the solution, more than would be covered by a few weeks of work.\n\n\n\nJust like creating a ticket in the backlog, once a project is created in the roadmap, it should be evaluated along with all the other projects to determine a priority.\n\n\n\nAlways Provide Value\n\n\n\nWhether you\u2019re casually mentioning a potential issue during stand-up, or helping to create an entire project to fix some technical debt, you always want to make sure you are providing value.\n\n\n\nHow do you feel about technical debt? Do you try and pay it off immediately and put things in place to stop it from happening? Or do you let it pile up until it can\u2019t be ignored anymore? Let us know in the comments below.", "date_published": "2020-02-25T08:00:49-07:00", "date_modified": "2020-02-14T09:18:38-07:00", "authors": [ { "name": "Toby Osbourn", "url": "https://textexpander.com/author/toby", "avatar": "https://secure.gravatar.com/avatar/f9df5ae464cd8080533092eac3a56135?s=512&d=retro&r=g" } ], "author": { "name": "Toby Osbourn", "url": "https://textexpander.com/author/toby", "avatar": "https://secure.gravatar.com/avatar/f9df5ae464cd8080533092eac3a56135?s=512&d=retro&r=g" }, "image": "https://textexpander.com/wp-content/uploads/2020/02/technical-debt.jpg", "tags": [ "developer", "web developer", "Blog", "Development" ], "summary": "We share five ways you can help your team reduce technical debt using scrum methodologies." }, { "id": "https://textexpander.com/?p=12435", "url": "https://textexpander.com/blog/the-7-most-common-types-of-errors-in-programming-and-how-to-avoid-them", "title": "The 7 Most Common Types of Errors in Programming and How to Avoid Them", "content_html": "The late computer scientist Edsger W. Dijkstra said, \u201cif debugging is the process of removing bugs, then programming must be the process of putting them in.\u201d
\n\n\n\nExperiencing different types of errors in programming is a huge part of the development process. The best developers become comfortable navigating the bugs they create and quickly fixing them.
\n\n\n\nToday, we\u2019re going to talk about the seven most common types of programming errors and how you can avoid them.
\n\n\n\nJust like human languages, computer languages have grammar rules. But while humans are able to communicate with less-than-perfect grammar, computers can\u2019t ignore mistakes, i.e. syntax errors.
\n\n\n\nFor example, let\u2019s say the correct syntax for printing something is print('hello')
, and we accidentally forget one of the parentheses while coding. A syntax error will happen, and this will stop the program from running.
As your proficiency with programming language increases, you will make syntax errors less frequently. The easiest way to prevent them from causing you problems is to be aware of them early. Many text editors or IDEs will come with the ability to warn you about syntax errors at the time of writing.
\n\n\n\nPro Tip: Code faster with TextExpander
TextExpander makes it easy to save commonly-used code snippets, documentation comments, and more \u2014 then insert them anywhere you type with a simple shortcut or inline search.
Click here to learn more.
Logic errors can be the hardest to track down. Everything looks like it is working; you have just programmed the computer to do the wrong thing. Technically the program is correct, but the results won\u2019t be what you expected.
\n\n\n\nIf you didn\u2019t check the requirements beforehand and wrote code to return the oldest user in your system when you needed the newest, you would have a logic error.
\n\n\n\nA famous example happened in 1999 when NASA lost a spacecraft due to miscalculations between English and American units. The software was coded one way but needed to work another.
\n\n\n\nWhen writing your tests, show them to the product manager or product owner to confirm that the logic you\u2019re about to write is correct. In the example above, someone closer to the business would have spotted that you aren\u2019t mentioning the fact it is the newest user that is required.
\n\n\n\nSome programming languages require a compilation step. Compilation is where your high-level language converts into a lower-level language that the computer can understand better. A compilation or compile-time error happens when the compiler doesn\u2019t know how to turn your code into the lower-level code.
\n\n\n\nIn our syntax error example, if we were compiling print('hello'
, the compiler would stop and tell us it doesn\u2019t know how to convert this into a lower-level language because it expected a )
after the '
.
If there is a compile-time error in your software, you won\u2019t be able to get it tested or launched.
\n\n\n\nLike syntax errors, you will get better at avoiding these with time, but in general, the best thing you can do is get early feedback when it happens.
\n\n\n\nCompilation happens across all files of your project at the same time. If you\u2019ve made lots of changes and see lots of compiler warnings or errors, it can be very daunting. By running the compiler often, you will get the feedback you need sooner, and you will more easily know where to address the issues.
\n\n\n\nRuntime errors happen as a user is executing your program. The code might work correctly on your machine, but on the webserver, there might be a different configuration, or it might be interacted with in a way that could cause a runtime error.
\n\n\n\nIf your system took the input from a form and tried to capitalize the first letter of a name by doing something like params[:first_name].capitalize
, this would break if the form was sent without a first name.
Runtime errors are particularly annoying because they directly impact your end user. A lot of these other errors will happen when you\u2019re at your computer working on the code. These errors occur when the system is running and can stop someone from doing what they need to do.
\n\n\n\nMake sure you have good error reporting in place to capture any runtime errors and automatically open up new bugs in your ticketing system. Try and learn from each bug report so that in future you can guard against this type of error.
\n\n\n\nMaking use of frameworks and community maintained code is an excellent way of minimizing these types of errors because the code is in many different projects, so it will have already encountered and fixed many issues.
\n\n\n\nAn arithmetic error is a type of logic error but involves mathematics. A typical example when performing a division equation is that you cannot divide by zero without causing an issue. Very few people would write 5 / 0, but you might not think that the size of something in your system might sometimes be zero, which would lead to this type of error.
\n\n\n\nages.max / ages.min
could return an error if either ages.max
or ages.min
were zero.
Arithmetic errors can generate logic errors as we\u2019ve discussed, or even run-time errors in the case of divide by zero.
\n\n\n\nHaving functional tests that always include edge-cases like zero, or negative numbers is an excellent way to stop these arithmetic errors in their tracks.
\n\n\n\nThe computer that your program is on will allocate a fixed amount of resources to the running of it. If something in your code forces the computer to try and allocate more resources than it has, it can create a resource error.
\n\n\n\nIf you accidentally wrote a loop that your code could never exit from, you would eventually run out of resources. In this example, the while loop will keep on adding new elements to an array. Eventually, you will run out of memory.
\n\n\n\nwhile(true)\n \u00a0\u00a0my_array << 'new array element'\n end\n\n\n\n
Resource errors can be hard to chase down because the machine you\u2019re developing on can often be higher quality than the servers running your code. It is also hard to mimic real-world use from your local computer.
\n\n\n\nHaving good reporting on resource usage on your web servers will flag code that is consuming too much of any type of resource over time.
\n\n\n\nResource errors are an example of a type of error in programming that might be something for the operations team to fix rather than developers.
\n\n\n\nThere are lots of load-testing applications and services that you can use to test what happens when multiple people try and run your code at once. Then, you can tune the testing to suit what is realistic for your application.
\n\n\n\nInterface errors occur when there is a disconnect between how you meant your program to be used and how it is actually used. Most things in software follow standards. If input your program receives doesn\u2019t conform to the standards, you might get an interface error.
\n\n\n\nFor example, an interface error might happen if you have an API that requires that specific parameters are set and those parameters are not set.
\n\n\n\nUnless handled correctly, interface errors will look like an error on your side when it is an error on the caller\u2019s side. This can lead to frustration from both sides.
\n\n\n\nHaving clear documentation and catching these errors to pass back to the caller in a useful way is the best way of saying, \u201cHey, you haven\u2019t given us what we need to process this request.\u201d This will help keep support costs down and keep your clients happy because they know what they need to fix.
\n\n\n\nIf you don\u2019t catch these errors and pass them back to the caller, they will end up appearing like runtime errors in your reporting, and you will end up guarding against things excessively.
\n\n\n\nWe are, thankfully, decades past needing to have perfectly placed punch-cards appropriately done the first time. Software engineering is hard, requirements are often fuzzy, and the code changes often. Try not to beat yourself up and know that we all make mistakes.
\n\n\n\nProgramming errors are inevitable. Get better at spotting them early, but know you will never be perfect.
\n\n\n\nHopefully, this guide has prepared you for the different types of errors in programming and made sense of some of the most common error messages for you.
\n\n\n\nIf you\u2019ve been writing code for a long time, please comment below with some errors you\u2019ve made recently, to help serve as reassurance for people who haven\u2019t been writing code as long!
\n\n\nNot able to play the video? Click here to watch the video
A lot of software development team managers were developers who got promoted into the role. They have all of the technical background needed to do a fantastic job but don\u2019t have any formal management training.
\n\n\n\nAfter reading our 17 tips for managing software development teams, any development manager will be in a fabulous position to make their team thrive.
\n\n\n\nA 1:1, or 1 on 1, is a meeting between you and one member of your team who reports to you. It is a dedicated time to check in with each other.
\n\n\n\nThe meeting should be considered a safe space for your direct report to speak candidly about what is bothering them and what you can do to support them.
\n\n\n\nRegular 1:1s are one of the easiest ways to get to know members of your team and have a positive influence on the work they do. They are key as to how to manage a software development team.
\n\n\n\nYour role as manager may put you in the position of project manager as well, so asking your direct reports about their progress from last week and plans for this week and the next will help you guide the whole team on joint projects in an organized fashion.
\n\n\n\nAim for once every two weeks, and adjust based on what works well for you and your team.
\n\n\n\nManagers aren\u2019t providing value when they need to be involved in every decision. Any time someone on your team asks for permission for something, and you feel they could have made the call on their own, tell them. Encourage your team to make responsible decisions independently.
\n\n\n\nThe more decisions your team makes on its own, the fewer choices you need to make. In this way, freeing up your time also gives your team autonomy. Things will happen faster, which is better for everyone.
\n\n\n\nAs an example, giving members of your team access to the company card and allowing them to make purchasing decisions up to a particular value is an excellent way to show this empowerment.
\n\n\n\nDistilling information means taking it from the form you received it and changing it to suit the people you want to share it with.
\n\n\n\nJust as you have a support team to translate what developers say so that customers can understand, as a manager you translate what upper management writes so that your team can understand. Especially if you distill the message down to only what your team will care about, means you are respecting your team\u2019s time and skills, and providing value.
\n\n\n\nAn example of this could be if you receive a quarterly report that includes stats from all across the business, but only one of the tables talks about the application uptime, one of your team\u2019s key metrics. Share the table, not the entire report.
\n\n\n\nYour team will work best when it has clear objectives to meet. They can only know what you expect of them if you share these goals.
\n\n\n\nThese goals must be somewhere public, as new people join the team you don\u2019t want to rely on assumed knowledge.
\n\n\n\nIf you\u2019d like some tips on goal setting, we have a post on setting useful software development metrics.
\n\n\n\nPro Tip: Code faster with TextExpander
TextExpander makes it easy to save commonly-used code snippets, documentation comments, and more \u2014 then insert them anywhere you type with a simple shortcut or inline search.
Click here to learn more.
Tied to your overall team goals are individual goals; these are the expectations and goals set for each member of the team. While they should have some bearing on business goals, the main driver should be personal development.
\n\n\n\nSetting these goals out early helps to frame any future conversation.
\n\n\n\nAll too often, these goals are discussed once per year, during an appraisal meeting and get promptly forgotten. Having regular 1:1s is a great way to avoid this mistake.
\n\n\n\nSome of the concerns that your team has will not be within your power to fix. When this happens, you need to be good at feeding concerns up the management chain.
\n\n\n\nCommunication is vital here. You need to package the concern up in a way that is useful to your manager, and you need to communicate your intent with the person who raised the matter.
\n\n\n\nIf someone raised an issue that needs clearance from your boss, you could respond with the following:
\n\n\n\n\n\n\n\nThank you for bringing this to my attention. I will need to run this by my manager, which I will do today. I\u2019ll have a decision for you by our next meeting.
Consistency as a manager means acting predictably.
\n\n\n\nIf you treat some issues very casually, but others in a very formal manner, then your staff cannot know how best to share a problem with you.
\n\n\n\nYou should also strive for consistency when performing work. If you say you will do something by a particular time, make sure that happens. Doing so helps build trust between you and your team.
\n\n\n\nHaving an open-door policy means that any time one of your team members needs help you make time to speak with them.
\n\n\n\nYour main job as a manager is to keep your team running smoothly. This means removing blockers and being there for your team.
\n\n\n\nIt isn\u2019t enough to have an open-door policy; the policy needs to be communicated to the team.
\n\n\n\nSoftware development teams are made up of people with a vast range of skillsets. Make sure you know which particular skills your team members have. This makes it easier to allocate work on projects and plan for personal growth.
\n\n\n\nA naive manager might split their technical team into frontend and backend developers, but there is more nuance to these skills than two categories. Knowing who is excited by accessibility means you are better positioned to bring the correct person into a meeting.
\n\n\n\nYou don\u2019t need to be an expert in the skills that make up your team, but you should have enough of a high-level overview to know who to speak to when expert knowledge is required.
\n\n\n\nGetting out of the way is a nice way of saying; don\u2019t micromanage. You\u2019ve hired a team of skilled people, and if you\u2019re doing everything else on this list, then you\u2019ve set them up for success.
\n\n\n\nDon\u2019t get in your team\u2019s way by micromanaging every decision, or by trying to stamp your authority on their work. Let your people do what they\u2019re paid to do.
\n\n\n\nA great way to avoid the temptation of micromanaging is to instill a culture of remote work. If you aren\u2019t physically next to your team, you\u2019re less likely to inject yourself in when it isn\u2019t required.
\n\n\n\nSetting the example is about managing by doing. If you want meetings to start on time, make sure you\u2019re always there on time. If you want your developers writing issues with precise details, make sure you always write first-class tickets.
\n\n\n\nMany managers expect their team to behave in ways in which they do not personally act. By living the example, you are building trust and establishing the expected culture.
\n\n\n\nWhen setting tasks or passing on a directive, you should strive to provide as much context as possible.
\n\n\n\nYou have a team of smart software developers, by letting them know why they should do something instead of just what they have to do, they can work more effectively. They know what their time is worth just as you do, and they don\u2019t want to waste time if they can find a better way to do something.
\n\n\n\nKnowing the spirit in which something was asked allows solutions to be more proactive and assures they address the underlying issues.
\n\n\n\nFor example, a request might be to not post about a new product on social media, but without knowing why, they may tell their friends about the product. If the reason is that it is under NDA and telling others would break a contract, then you can see how the context is essential.
\n\n\n\nAs a manager, you will have to make decisions that people don\u2019t agree with.
\n\n\n\nSometimes seeking complete consensus isn\u2019t the best course of action. When this is the case, you should be prepared to explain your decisions.
\n\n\n\nThorough explanations help to preempt questions your team might have and help justify future decisions.
\n\n\n\nStopping paid overtime for the next quarter could sound like a thoughtless move, but if you explain your rationale, your team will be more likely to accept it.
\n\n\n\nBy setting a clear budget for training, in both money and time, and setting the expectations of how or when the budget needs to be used, you can help your team plan training that is going to work for them.
\n\n\n\nEveryone learns differently. Some people want to attend conferences; others wish to access online courses, others still, might want to read books. Let each member of your staff learn in the way that is appropriate to them and back it up with the budget. This couple be as simple as a team plan for O\u2019Reilly.
\n\n\n\nIf your team isn\u2019t spending its budget, you should find out why.
\n\n\n\nOpen communication is accessible to anyone who cares to hear it.
\n\n\n\nInstead of sending a private message, send it in a public channel. Instead of an email, consider an article on the company intranet.
\n\n\n\nPracticing open communication helps to manage at scale, reduces duplicated work, and sets an example that excellent communication should be accessible to all.
\n\n\n\nFor private or sensitive matters, of course address these in person, 1:1s are a perfect place for that.
\n\n\n\nWriting things down is an excellent way of staying consistent, communicating in the open, and sharing your thoughts more constructively.
\n\n\n\nIf a meeting has happened between two people, outcomes should be written up and shared with relevant people. People who weren\u2019t in the meeting can benefit and get much-needed context. It also means the same meeting doesn\u2019t need to happen again.
\n\n\n\nSome teams will write down their working practices into what is known as a playbook. The dxw Playbook is an excellent example of a team writing things down.
\n\n\n\nSoftware development is a hard job, and one with hard-to-quantify results. Unlike sales teams, which can quickly put numbers on their work, it is hard for software development work to get recognized.
\n\n\n\nWhen someone has done an excellent job or has exhibited a behaviour you want to encourage in the team, call out that work and publicly recognize it.
\n\n\n\nPerhaps someone wrote an excellent note to accompany a pull request, share it with the team and publicly thank the person for going above and beyond.
\n\n\n\nDo you lead a software development team? What have you found makes for an excellent engineering manager? Let us know in the comments.
\n\n\nNot able to play the video? Click here to watch the video
How do you determine whether you\u2019ve hit one of your goals or not? You have to measure it in some way. A Key Performance Indicator (KPI) is a measurable value that businesses use to determine the success or failure of various campaigns and business objectives.
\n\n\n\nIn previous articles, we\u2019ve looked at measuring individual developer productivity and how to measure team based productivity.
\n\n\n\nPro Tip: Code faster with TextExpander
TextExpander makes it easy to save commonly-used code snippets, documentation comments, and more \u2014 then insert them anywhere you type with a simple shortcut or inline search.
Click here to learn more.
These have value \u2013 productive people and teams are generally happier and more effective. However, metrics tied to specific business objectives are much more powerful; they directly link development effort to business value. It is these types of objectives we want to talk about today.
\n\n\n\nDevelopment teams grow organically and rarely start with a well-defined set of KPIs governing their ongoing review.
\n\n\n\nAt some point, setting KPIs will become mandated. When that happens, the issue you will often face is that upper management rarely understands the specific issues that impact a development team. On the other hand, development teams don\u2019t always appreciate the rationale behind many business decisions.
\n\n\n\nWith this in mind, we want to share 6 essential KPIs for software development teams. These can act as conversation starters when setting KPIs for your organization.
\n\n\n\nWriting stable code refers to creating changes to the product that don\u2019t harm the rest of the business.
\n\n\n\nIf releasing a new feature breaks an existing feature, that can be bad for business. To avoid that, aim for stable code. Stable code is calm code. Plus, when the team isn\u2019t reacting to the negative upshot of an unstable codebase, they can focus on developing new features.
\n\n\n\nYou could word the KPI for writing stable code as:
\n\n\n\n\u201cLess than 2% of code deployed for the year should result in downtime of the application.\u201d
\n\n\n\nWhen we talk about writing testable code, we mean both writing code that is easy for an automated system to test and also writing those tests. The tests act like documentation so that changes from a developer will quickly show any errors.
\n\n\n\nThis software development KPI is also important to the business because it can serve as a measure for how easy it is to onboard new developers. A well-tested codebase makes things much easier to track when adding a new person to the team.
\n\n\n\nAn example of a KPI for writing testable code is:
\n\n\n\n\u201cBy the end of the quarter, our codebase should have code coverage of at least 97%.\u201d
\n\n\n\nCode churn refers to how often code changes over time. While it is a natural part of the development cycle, code churn should be minimized where possible.
\n\n\n\nThe less code that needs to change to accommodate a new feature the better. This measure is also a proxy for how easy change is in the system. The easier change is, the less risk is involved. Management loves mitigating risk.
\n\n\n\nAn example of a KPI encompassing code churn is:
\n\n\n\n\u201cThe last two days of every sprint should see code churn at 10% or less.\u201d
\n\n\n\nWriting simple code involves writing in such a way that the intent is clear to both other developers and the machines running the system.
\n\n\n\nThe simpler the code, the easier it is to test and change. Whenever you have a new developer come on board, it takes them time to learn the new code, reduce that time by having your codebases written simply.
\n\n\n\nOne metric of code simplicity is cyclomatic complexity, this measures the number of independent paths your code might have to take \u2013 the fewer, the better.
\n\n\n\nThere are several tools for measuring cyclomatic complexity. For example, in the Ruby programming language, a popular tool is Rubocop
\n\n\n\nHere is an example of a KPI that incorporates writing simple code:
\n\n\n\n\u201cNo code should make it into code review with a cyclomatic complexity higher than what Rubocop suggests for this project.\u201d
\n\n\n\nAll of our KPIs for software development teams so far have been technical, but developers don\u2019t spend all day writing code. Their KPIs should reflect this. When we talk about sharing knowledge, we mean either developers sharing what they know with other developers or with the broader team.
\n\n\n\nThe more sharing that is done, via code documentation, collaborative meetings, sharing of new things learned or articles written, the less management will worry that only a few key people within the team are gatekeepers to valuable knowledge.\u00a0
\n\n\n\nAn example of a KPI written with sharing knowledge in mind:
\n\n\n\n\u201cOnce a month you share an article with your team describing a part of the development process in our company.\u201d
\n\n\n\nRelated to sharing knowledge is supporting people within the immediate and broader team. Developers are useful for more than writing code. KPIs built around being good citizens of the company help to integrate the development team with the company.
\n\n\n\nGreat work doesn\u2019t happen in silos. The more that different teams can work together, the better the overall product will be.
\n\n\n\nSupporting each other can take many forms, such as:
\n\n\n\nOne KPI that would include supporting each other could be written like:
\n\n\n\n\u201cEach week you have sent at least one email to the sales team sharing what work you\u2019ve done and seeing if they have any feedback.\u201d
\n\n\n\nDo you work on a development team? We\u2019d love to hear what KPIs you\u2019ve worked with before. Please share them in the comments below.
\n\n\nNot able to play the video? Click here to watch the video
With a new year fast approaching it will soon be time to make some New Year\u2019s resolutions. We all want to be more productive; so here is our list of some development productivity tools that we think you should check out in the new year.
\n\n\n\nTo make this list easy to digest, we\u2019ve split it up into a few key sections:
\n\n\n\n\n\n\n\nThese are day-to-day development productivity tools. Some of them will run quietly in the background and others are used more actively, but all of them will make you a more productive developer.
\n\n\n\nPostman is a collaborative API testing tool. It allows you to build payloads to send to an API in order to quickly and repeatedly test endpoints.
\n\n\n\nThis is much faster than writing the code to interact with an API. The fact that you can collaborate with your team on creating the payloads means everyone can benefit from this productivity boost.
\n\n\n\nPostman is available on Mac, Windows, and Linux.
\n\n\n\nDash is a tool for downloading documentation to make it searchable offline. It can hook into many other tools to fully integrate into your development environment.
\n\n\n\nWorking remotely and on the go can be excellent for your personal productivity, but sometimes internet connections can put a stop to your development when you need to look something up. This isn\u2019t an issue if you use Dash.
\n\n\n\nDash is available on Mac and iOS.
\n\n\n\nOh My Zsh is a framework of terminal tools built on top of Zsh. If you\u2019ve been using the stock terminal program that comes with your operating system, then Oh My Zsh will be a breath of fresh air.
\n\n\n\nThere are thousands of small functions that have been created to make you more productive in the terminal, and a huge catalogue of community-made additions.
\n\n\n\nOh My Zsh is available on Mac, Linux, and Windows via Cygwin.
\n\n\n\nPrettier is a tool that will integrate with your text editor to allow automatic formatting of many common file types, such as CSS, JavaScript and JSON.
\n\n\n\nIt is heavily opinionated, which means so long as you\u2019re happy with its opinions, you can install and forget about it. It will automatically reformat your code when saved.
\n\n\n\nHaving it as part of a build process means your entire team could benefit from standardized formatting.
\n\n\n\nPrettier is available on Mac, Windows, and Linux.
\n\n\n\nRubocop is a Ruby style checker, if you don\u2019t code in Ruby there will be similar tools for your language of choice.
\n\n\n\nLike other linters, Rubocop will alert you to style violations in your Ruby code. It acts as a static code analyser.
\n\n\n\nRubocop will run in any environment that can run Ruby.
\n\n\n\nCircleCI is a continuous integration tool. It allows you to automatically run a suite of tools against your project every time you update it in version control.
\n\n\n\nThe most common use of tools like CircleCI is to run your tests automatically, but anything that can be scripted can get ran automatically.
\n\n\n\nCircleCI is a SaaS-based tool and will run projects designed for Windows, Linux, and Mac.
\n\n\n\nThe most productive you can be as a developer is when you put something in place to allow others to do your work for you. This frees up your time to work on tasks where you bring value.
\n\n\n\nThe development productivity tools listed here, once set up, will allow other members of your team to work on tasks that would traditionally have required a developer.
\n\n\n\nZapier allows you to link multiple services together without needing to write any code yourself.
\n\n\n\nFor example, if you wanted to automatically add new contacts from your CRM tool into your email campaign tool, you could hook both together using Zapier.
\n\n\n\nZapier is a SaaS tool that ties multiple services together, including some of the other tools we\u2019ve mentioned in this list.
\n\n\n\nData Hero allows you to combine data from multiple sources and generate reports based on these.
\n\n\n\nThis means you don\u2019t need to import data from several places and work out ways to combine it, Data Hero will do this heavy lifting for us.
\n\n\n\nData Studio is a Google tool that allows you to combine data from multiple sources just like Data Hero. Unlike Data Hero there is a lot more you can do with a free plan.
\n\n\n\nYou get more from Data Studio if you use other Google products, like Google Ads or Google Analytics, but you can add non-Google data into Data Studio.
\n\n\n\nThis final group consists of productivity tools that will help with your day-to-day development, as well as a range of other non-development tasks.
\n\n\n\nTextExpander lets you write a small keyword and will replace it with a longer snippet of text. We\u2019ve written before about how developers can use TextExpander when writing support tickets or for recalling your most used bash commands.
\n\n\n\nYou can use TextExpander by yourself or collaborate on snippets with your team.
\n\n\n\nTextExpander is available on Windows, Mac, iOS, and Google Chrome.
\n\n\n\nOmnifocus is a todo application heavily inspired by the Getting Things Done methodology.
\n\n\n\nIt breaks projects down into tasks to be done and lets you categorize those tasks in ways that hides what you can\u2019t do now. So, at any moment you can see what you can be working on.
\n\n\n\nOmnifocus is available on Mac, Windows, Web, and iOS.
\n\n\n\nTrello lets you collaboratively work on tickets that slot into lists and boards. It is an online version of a sprint or kanban board in an office.
\n\n\n\nIt is often used for team collaboration \u2013 we use it to organize content for the TextExpander blog! It can be used to keep track of things to do on a much smaller scale.
\n\n\n\nWe have an article on how you can run your hiring process through Trello.
\n\n\n\nTrello is available primarily as a web-based application but has clients on Mac, Windows, iOS, and Android.
\n\n\n\nWe love talking about productivity, and we love being productive developers, so please join in the conversation in our comments with your favorite productivity tools or techniques.
\n", "content_text": "With a new year fast approaching it will soon be time to make some New Year\u2019s resolutions. We all want to be more productive; so here is our list of some development productivity tools that we think you should check out in the new year.\n\n\n\nTo make this list easy to digest, we\u2019ve split it up into a few key sections:\n\n\n\nCoding Productivity ToolsProject Productivity ToolsEveryday Work Productivity Tools\n\n\n\nCoding Productivity Tools\n\n\n\nThese are day-to-day development productivity tools. Some of them will run quietly in the background and others are used more actively, but all of them will make you a more productive developer.\n\n\n\nPostman\n\n\n\nPostman is a collaborative API testing tool. It allows you to build payloads to send to an API in order to quickly and repeatedly test endpoints.\n\n\n\nThis is much faster than writing the code to interact with an API. The fact that you can collaborate with your team on creating the payloads means everyone can benefit from this productivity boost.\n\n\n\nPostman is available on Mac, Windows, and Linux.\n\n\n\nDash\n\n\n\nDash is a tool for downloading documentation to make it searchable offline. It can hook into many other tools to fully integrate into your development environment.\n\n\n\nWorking remotely and on the go can be excellent for your personal productivity, but sometimes internet connections can put a stop to your development when you need to look something up. This isn\u2019t an issue if you use Dash.\n\n\n\nDash is available on Mac and iOS.\n\n\n\nOh My Zsh\n\n\n\nOh My Zsh is a framework of terminal tools built on top of Zsh. If you\u2019ve been using the stock terminal program that comes with your operating system, then Oh My Zsh will be a breath of fresh air.\n\n\n\nThere are thousands of small functions that have been created to make you more productive in the terminal, and a huge catalogue of community-made additions.\n\n\n\nOh My Zsh is available on Mac, Linux, and Windows via Cygwin.\n\n\n\nPrettier\n\n\n\nPrettier is a tool that will integrate with your text editor to allow automatic formatting of many common file types, such as CSS, JavaScript and JSON.\n\n\n\nIt is heavily opinionated, which means so long as you\u2019re happy with its opinions, you can install and forget about it. It will automatically reformat your code when saved.\n\n\n\nHaving it as part of a build process means your entire team could benefit from standardized formatting.\n\n\n\nPrettier is available on Mac, Windows, and Linux.\n\n\n\nRubocop\n\n\n\nRubocop is a Ruby style checker, if you don\u2019t code in Ruby there will be similar tools for your language of choice.\n\n\n\nLike other linters, Rubocop will alert you to style violations in your Ruby code. It acts as a static code analyser.\n\n\n\nRubocop will run in any environment that can run Ruby.\n\n\n\nCircleCI\n\n\n\nCircleCI is a continuous integration tool. It allows you to automatically run a suite of tools against your project every time you update it in version control.\n\n\n\nThe most common use of tools like CircleCI is to run your tests automatically, but anything that can be scripted can get ran automatically.\n\n\n\nCircleCI is a SaaS-based tool and will run projects designed for Windows, Linux, and Mac.\n\n\n\nProject Productivity Tools\n\n\n\nThe most productive you can be as a developer is when you put something in place to allow others to do your work for you. This frees up your time to work on tasks where you bring value.\n\n\n\nThe development productivity tools listed here, once set up, will allow other members of your team to work on tasks that would traditionally have required a developer.\n\n\n\nZapier\n\n\n\nZapier allows you to link multiple services together without needing to write any code yourself.\n\n\n\nFor example, if you wanted to automatically add new contacts from your CRM tool into your email campaign tool, you could hook both together using Zapier.\n\n\n\nZapier is a SaaS tool that ties multiple services together, including some of the other tools we\u2019ve mentioned in this list.\n\n\n\nData Hero\n\n\n\nData Hero allows you to combine data from multiple sources and generate reports based on these.\n\n\n\nThis means you don\u2019t need to import data from several places and work out ways to combine it, Data Hero will do this heavy lifting for us.\n\n\n\nData Studio\n\n\n\nData Studio is a Google tool that allows you to combine data from multiple sources just like Data Hero. Unlike Data Hero there is a lot more you can do with a free plan.\n\n\n\nYou get more from Data Studio if you use other Google products, like Google Ads or Google Analytics, but you can add non-Google data into Data Studio.\n\n\n\nEveryday Work Productivity Tools\n\n\n\nThis final group consists of productivity tools that will help with your day-to-day development, as well as a range of other non-development tasks.\n\n\n\nTextExpander\n\n\n\nTextExpander lets you write a small keyword and will replace it with a longer snippet of text. We\u2019ve written before about how developers can use TextExpander when writing support tickets or for recalling your most used bash commands.\n\n\n\nYou can use TextExpander by yourself or collaborate on snippets with your team.\n\n\n\nTextExpander is available on Windows, Mac, iOS, and Google Chrome.\n\n\n\nOmnifocus\n\n\n\nOmnifocus is a todo application heavily inspired by the Getting Things Done methodology. \n\n\n\nIt breaks projects down into tasks to be done and lets you categorize those tasks in ways that hides what you can\u2019t do now. So, at any moment you can see what you can be working on.\n\n\n\nOmnifocus is available on Mac, Windows, Web, and iOS.\n\n\n\nTrello\n\n\n\nTrello lets you collaboratively work on tickets that slot into lists and boards. It is an online version of a sprint or kanban board in an office.\n\n\n\nIt is often used for team collaboration \u2013 we use it to organize content for the TextExpander blog! It can be used to keep track of things to do on a much smaller scale. \n\n\n\nWe have an article on how you can run your hiring process through Trello.\n\n\n\nTrello is available primarily as a web-based application but has clients on Mac, Windows, iOS, and Android.\n\n\n\nWhat Development Productivity Tools do you use?\n\n\n\nWe love talking about productivity, and we love being productive developers, so please join in the conversation in our comments with your favorite productivity tools or techniques.", "date_published": "2019-12-31T09:52:48-07:00", "date_modified": "2020-03-18T06:25:49-07:00", "authors": [ { "name": "Toby Osbourn", "url": "https://textexpander.com/author/toby", "avatar": "https://secure.gravatar.com/avatar/f9df5ae464cd8080533092eac3a56135?s=512&d=retro&r=g" } ], "author": { "name": "Toby Osbourn", "url": "https://textexpander.com/author/toby", "avatar": "https://secure.gravatar.com/avatar/f9df5ae464cd8080533092eac3a56135?s=512&d=retro&r=g" }, "image": "https://textexpander.com/wp-content/uploads/2019/12/Featured_12-Development-Productivity-Tools-to-Check-Out-Next-Year.jpg", "tags": [ "developer", "productivity", "professional development", "Blog", "Development" ], "summary": "We all want to be more productive, with these 12 development productivity tools you will be more efficient at focusing on what matters." }, { "id": "https://textexpander.com/?p=11908", "url": "https://textexpander.com/blog/software-development-metrics", "title": "10 Software Development Metrics to Track Team Efficiency", "content_html": "Software development metrics can help track how well your team is working together. Unlike measuring developer productivity, which focuses on the individual, the metrics in this article will help you track the progress of the entire team.
\n\n\n\nDevelopment teams change over time, and with each change, the culture of the team completely changes. The metrics we\u2019re going to share with you will act as a lagging indicator to how well your team is performing in a way that studying individuals within an organization cannot.
\n\n\n\nProduct teams work from a prioritized list called a roadmap. When your team is completing plenty of roadmap issues, you have confidence that the product is moving closer to achieving its product vision.
\n\n\n\nIf the product vision is well thought out, and the roadmap is prioritized objectively, then completing roadmap items means completing the tasks that will benefit the company the most. Measuring this is a great way to show how development can impact a product.
\n\n\n\nThe easiest way to measure that completed items link to the roadmap is to tag individual issues in GitHub or Jira with the associated roadmap item. Then when reviewing completed items, you can count up the roadmap items.
\n\n\n\nThis metric relies on the roadmap being kept up to date and that items within it are relevant to the product vision.
\n\n\n\nThe only work that matters is the work that can be put live and shown to your users. The deploys made metric is about measuring how many times code written by the team has made it onto your servers for your users to see.
\n\n\n\nWork that goes into features that never make it in front of your users isn\u2019t always wasted. Indeed, there can be useful lessons learned from code that never gets deployed. However, your users are still going to be the best indicators if something is excellent or not. That\u2019s why measuring how many times we get things in front of them is useful.
\n\n\n\nWhere you host your application will impact how you can measure this \u2014 familiar places like the Apple App Store or Heroku store logs about deploys to their servers.
\n\n\n\nThings can always go wrong, but pushing too many deploys without the appropriate quality checks is a way to ensure that you\u2019ll run into problems. Be sure to temper this metric with some of the other software development metrics in this guide.
\n\n\n\nCycle time is the time it takes for an issue, like a feature request or a bug, to go from one state to another \u2013 normally from \u201cbeing worked on\u201d to \u201ccomplete\u201d.
\n\n\n\nEfficiently working through a ticket until it is complete requires multiple team members and excellent collaboration. Seeing a downward trend in how long cards take shows that you\u2019re removing obstacles and encouraging collaboration.
\n\n\n\nThe majority of issue trackers can timestamp when tickets were opened, assigned, worked on, and completed.
\n\n\n\nIt\u2019s important to keep in mind that not all issues are created equal. Sometimes there can be lots of\u00a0 \u201cquick wins\u201d, but there can also be issues that require outside involvement that stretch out over more extended periods.
\n\n\n\nMeasuring work in progress means tracking the number of tickets that your team currently has open.
\n\n\n\nThis metric is particularly useful when you look at trends over time. This type of metric ideally stays reasonably stable, with the team only opening new issues when they close old ones. If the number of tickets in progress appears to move up over time, it can be an indicator there are too many blocked or unresolvable tickets in the team.
\n\n\n\nTools like Pivotal Tracker can track how many tickets are currently in progress.
\n\n\n\nThis number can be skewed near the start or end of a body of work, for example, if you work in sprints. Always be sure to track over time to avoid this skewing.
\n\n\n\nIssues on your application or website are inevitable. They come with the territory when you\u2019re creating something new to serve your customers. Mean time between failures tracks the average length of time between failures of the system. In an ideal world, there would be a long time between failures.
\n\n\n\nTracking this metric gives us a good insight into the quality and stability of our system. If you can deliver new features and keep this number down, then you\u2019re moving fast without breaking things.
\n\n\n\nTo track this metric, we need a way of tracking when things go wrong with the application. These details could be from uptime monitoring services, bug tracking systems, or user complaints. We plot all the issues over time and see the gaps in between them.
\n\n\n\nCompiling all of this information from different systems can be time-consuming, and the definition of failure needs to be consistent, or you\u2019re going to have incomparable data points.
\n\n\n\nKnowing that failures are inevitable means that we could also track the mean time to repair. Mean time to repair means measuring how long it takes us to respond and fix the spotted failures. The shorter the number, the better.
\n\n\n\nTo calculate the mean time to repair, we need to take the data we have from calculating the mean time between failures and add when fixes for the issues where deployed.
\n\n\n\nYou will need to pull data from your error logging systems and your deployment systems. Over time the team should be able to put automated fixes in for some of the failures, which will hopefully bring the mean time to repair down.
\n\n\n\nMake sure that the team is doing root cause analysis on issues. Instead of getting good at fixing issues quickly when they arise, this will help them put things in place to make sure the issues don\u2019t occur in the first place.
\n\n\n\nDevelopers love to joke about how closing one bug opens up fifty new ones, but there is an element of truth to this. When developers rush to fix one thing, they often neglect the knock-on effect it could have on other parts of the system. Measuring the number of new bugs versus closed bugs is an excellent software development metric for keeping an eye on this.
\n\n\n\nKnowing this metric over a given period allows you to determine if the quality of your product is improving over time. It also allows you to see if your quality assurance team is getting more or less rigorous at catching issues early.
\n\n\n\nDuring any given period, you need to see how many closed tickets were bug fixes, and we also need to see how many opened cards that were new bugs. Most modern issue tracking systems will allow you to see this.
\n\n\n\nBugs don\u2019t exist in a vacuum, and you should consider external factors when trying to work out why bug counts are going up. For example, perhaps the marketing team just started pushing a rarely-used feature.
\n\n\n\nCode coverage means tracking how much of the code is covered by automated testing tools.
\n\n\n\nWhen code coverage is high, your developers can move at pace, knowing that if they change something and it breaks, they will be alerted to it. When code coverage is low, each change will need to be checked by a quality assurance person, slowing your team\u2019s velocity.
\n\n\n\nCode coverage tools exist for most programming languages, a popular tool for the Ruby language is SimpleCov.
\n\n\n\nA lot of people mistakenly equate code coverage to code quality; this is not the case. It is purely a mark of how much of your code is covered by a test suite. If the tests don\u2019t test the system in a meaningful way, then it doesn\u2019t matter how close to 100% coverage you get, bugs will still frequently pass through.
\n\n\n\nRelease confidence is our first qualitative measure in this list. It is a measure of faith, scored by the team involved, about the next release to production. At its most basic it would be a poll asking \u201cOn a scale of 1 to 10, how confident are you in the next release we\u2019re going to deploy?\u201d
\n\n\n\nThis figure acts as a great jumping-off point for a conversation about why release confidence is low, or why release confidence doesn\u2019t align with the success of the release.
\n\n\n\nA simple poll shared near the end of a body of work is enough to capture what is needed. This could be done via Slack, or as part of an automated stand-up.
\n\n\n\nAs with all qualitative data, taking the number at face value and not digging into the \u201cwhy\u201d behind the number would be a missed opportunity.
\n\n\n\nNet Promoter Score, or NPS, is a well-regarded metric to gauge how satisfied your customers are and how likely they are to recommend you.
\n\n\n\nBy tracking this metric over time, you can see if development impact is having a mostly positive effect on the product or a negative one. Bugs are going to make people less likely to recommend you; exceptional features are more likely to make someone recommend you.
\n\n\n\nTracking net promoter score requires talking to your customers directly. Survey Monkey has written an excellent guide to this that shows you how you can create the survey.
\n\n\n\nFeatures are not the only thing that impacts net promoter score, so with any survey, tailor it to talk about the specific things that are relevant for your team.
\n\n\n\nWe\u2019ve shared these software development metrics to help you measure team efficiency. Remember, the goal of measurement should always be to inspire positive change.
\n\n\n\nWe\u2019d love to know what changes you\u2019ve made to help improve your team\u2019s efficiency. Let us know in the comments below.
\n", "content_text": "Software development metrics can help track how well your team is working together. Unlike measuring developer productivity, which focuses on the individual, the metrics in this article will help you track the progress of the entire team.\n\n\n\nDevelopment teams change over time, and with each change, the culture of the team completely changes. The metrics we\u2019re going to share with you will act as a lagging indicator to how well your team is performing in a way that studying individuals within an organization cannot.\n\n\n\n1. Roadmap Items Achieved\n\n\n\nProduct teams work from a prioritized list called a roadmap. When your team is completing plenty of roadmap issues, you have confidence that the product is moving closer to achieving its product vision.\n\n\n\nIf the product vision is well thought out, and the roadmap is prioritized objectively, then completing roadmap items means completing the tasks that will benefit the company the most. Measuring this is a great way to show how development can impact a product.\n\n\n\nThe easiest way to measure that completed items link to the roadmap is to tag individual issues in GitHub or Jira with the associated roadmap item. Then when reviewing completed items, you can count up the roadmap items.\n\n\n\nThis metric relies on the roadmap being kept up to date and that items within it are relevant to the product vision.\n\n\n\n2. Deploys Made\n\n\n\nThe only work that matters is the work that can be put live and shown to your users. The deploys made metric is about measuring how many times code written by the team has made it onto your servers for your users to see.\n\n\n\nWork that goes into features that never make it in front of your users isn\u2019t always wasted. Indeed, there can be useful lessons learned from code that never gets deployed. However, your users are still going to be the best indicators if something is excellent or not. That\u2019s why measuring how many times we get things in front of them is useful.\n\n\n\nWhere you host your application will impact how you can measure this \u2014 familiar places like the Apple App Store or Heroku store logs about deploys to their servers.\n\n\n\nThings can always go wrong, but pushing too many deploys without the appropriate quality checks is a way to ensure that you\u2019ll run into problems. Be sure to temper this metric with some of the other software development metrics in this guide.\n\n\n\n3. Cycle Time\n\n\n\nCycle time is the time it takes for an issue, like a feature request or a bug, to go from one state to another \u2013 normally from \u201cbeing worked on\u201d to \u201ccomplete\u201d.\n\n\n\nEfficiently working through a ticket until it is complete requires multiple team members and excellent collaboration. Seeing a downward trend in how long cards take shows that you\u2019re removing obstacles and encouraging collaboration.\n\n\n\nThe majority of issue trackers can timestamp when tickets were opened, assigned, worked on, and completed.\n\n\n\nIt\u2019s important to keep in mind that not all issues are created equal. Sometimes there can be lots of\u00a0 \u201cquick wins\u201d, but there can also be issues that require outside involvement that stretch out over more extended periods.\n\n\n\n4. Work In Progress\n\n\n\nMeasuring work in progress means tracking the number of tickets that your team currently has open.\n\n\n\nThis metric is particularly useful when you look at trends over time. This type of metric ideally stays reasonably stable, with the team only opening new issues when they close old ones. If the number of tickets in progress appears to move up over time, it can be an indicator there are too many blocked or unresolvable tickets in the team.\n\n\n\nTools like Pivotal Tracker can track how many tickets are currently in progress.\n\n\n\nThis number can be skewed near the start or end of a body of work, for example, if you work in sprints. Always be sure to track over time to avoid this skewing.\n\n\n\n5. Mean Time Between Failures\n\n\n\nIssues on your application or website are inevitable. They come with the territory when you\u2019re creating something new to serve your customers. Mean time between failures tracks the average length of time between failures of the system. In an ideal world, there would be a long time between failures.\n\n\n\nTracking this metric gives us a good insight into the quality and stability of our system. If you can deliver new features and keep this number down, then you\u2019re moving fast without breaking things.\n\n\n\nTo track this metric, we need a way of tracking when things go wrong with the application. These details could be from uptime monitoring services, bug tracking systems, or user complaints. We plot all the issues over time and see the gaps in between them.\n\n\n\nCompiling all of this information from different systems can be time-consuming, and the definition of failure needs to be consistent, or you\u2019re going to have incomparable data points.\n\n\n\n6. Mean Time To Repair\n\n\n\nKnowing that failures are inevitable means that we could also track the mean time to repair. Mean time to repair means measuring how long it takes us to respond and fix the spotted failures. The shorter the number, the better.\n\n\n\nTo calculate the mean time to repair, we need to take the data we have from calculating the mean time between failures and add when fixes for the issues where deployed.\n\n\n\nYou will need to pull data from your error logging systems and your deployment systems. Over time the team should be able to put automated fixes in for some of the failures, which will hopefully bring the mean time to repair down.\n\n\n\nMake sure that the team is doing root cause analysis on issues. Instead of getting good at fixing issues quickly when they arise, this will help them put things in place to make sure the issues don\u2019t occur in the first place.\n\n\n\n7. New Bugs Versus Closed Bugs\n\n\n\nDevelopers love to joke about how closing one bug opens up fifty new ones, but there is an element of truth to this. When developers rush to fix one thing, they often neglect the knock-on effect it could have on other parts of the system. Measuring the number of new bugs versus closed bugs is an excellent software development metric for keeping an eye on this.\n\n\n\nKnowing this metric over a given period allows you to determine if the quality of your product is improving over time. It also allows you to see if your quality assurance team is getting more or less rigorous at catching issues early.\n\n\n\nDuring any given period, you need to see how many closed tickets were bug fixes, and we also need to see how many opened cards that were new bugs. Most modern issue tracking systems will allow you to see this.\n\n\n\nBugs don\u2019t exist in a vacuum, and you should consider external factors when trying to work out why bug counts are going up. For example, perhaps the marketing team just started pushing a rarely-used feature.\n\n\n\n8. Code Coverage\n\n\n\nCode coverage means tracking how much of the code is covered by automated testing tools.\n\n\n\nWhen code coverage is high, your developers can move at pace, knowing that if they change something and it breaks, they will be alerted to it. When code coverage is low, each change will need to be checked by a quality assurance person, slowing your team\u2019s velocity.\n\n\n\nCode coverage tools exist for most programming languages, a popular tool for the Ruby language is SimpleCov.\n\n\n\nA lot of people mistakenly equate code coverage to code quality; this is not the case. It is purely a mark of how much of your code is covered by a test suite. If the tests don\u2019t test the system in a meaningful way, then it doesn\u2019t matter how close to 100% coverage you get, bugs will still frequently pass through.\n\n\n\n9. Release Confidence\n\n\n\nRelease confidence is our first qualitative measure in this list. It is a measure of faith, scored by the team involved, about the next release to production. At its most basic it would be a poll asking \u201cOn a scale of 1 to 10, how confident are you in the next release we\u2019re going to deploy?\u201d\n\n\n\nThis figure acts as a great jumping-off point for a conversation about why release confidence is low, or why release confidence doesn\u2019t align with the success of the release.\n\n\n\nA simple poll shared near the end of a body of work is enough to capture what is needed. This could be done via Slack, or as part of an automated stand-up.\n\n\n\nAs with all qualitative data, taking the number at face value and not digging into the \u201cwhy\u201d behind the number would be a missed opportunity.\n\n\n\n10. Net Promoter Score\n\n\n\nNet Promoter Score, or NPS, is a well-regarded metric to gauge how satisfied your customers are and how likely they are to recommend you.\n\n\n\nBy tracking this metric over time, you can see if development impact is having a mostly positive effect on the product or a negative one. Bugs are going to make people less likely to recommend you; exceptional features are more likely to make someone recommend you.\n\n\n\nTracking net promoter score requires talking to your customers directly. Survey Monkey has written an excellent guide to this that shows you how you can create the survey.\n\n\n\nFeatures are not the only thing that impacts net promoter score, so with any survey, tailor it to talk about the specific things that are relevant for your team.\n\n\n\nWhat Changes Have The Biggest Impact To Team Efficiency?\n\n\n\nWe\u2019ve shared these software development metrics to help you measure team efficiency. Remember, the goal of measurement should always be to inspire positive change.\n\n\n\nWe\u2019d love to know what changes you\u2019ve made to help improve your team\u2019s efficiency. Let us know in the comments below.", "date_published": "2019-12-24T09:30:25-07:00", "date_modified": "2019-12-24T10:30:59-07:00", "authors": [ { "name": "Toby Osbourn", "url": "https://textexpander.com/author/toby", "avatar": "https://secure.gravatar.com/avatar/f9df5ae464cd8080533092eac3a56135?s=512&d=retro&r=g" } ], "author": { "name": "Toby Osbourn", "url": "https://textexpander.com/author/toby", "avatar": "https://secure.gravatar.com/avatar/f9df5ae464cd8080533092eac3a56135?s=512&d=retro&r=g" }, "image": "https://textexpander.com/wp-content/uploads/2019/12/software-development-metrics.jpg", "tags": [ "developer", "metrics", "Blog", "Development" ], "summary": "Get the most out of our development team by using these 10 software development metrics to track the efficiency of your team." }, { "id": "https://textexpander.com/?p=11795", "url": "https://textexpander.com/blog/measure-developer-productivity", "title": "7 Creative Ideas to Measure Developer Productivity", "content_html": "The days of lines of code defining developer productivity are thankfully a distant memory for most of us.
\n\n\n\nThat doesn\u2019t mean you shouldn\u2019t measure how productive your developers are. It means you should measure things that make a difference.
\n\n\n\n\n\n\n\nWhat gets measured, gets managed
Peter Drucker
Code in and of itself doesn\u2019t make a difference. It is the features that developers make that matter.
\n\n\n\nToday we\u2019re going to share seven creative ideas to measure developer productivity that will help you measure things that have a positive impact on your product and your development practices.
\n\n\n\nPro Tip: Code faster with TextExpander
TextExpander makes it easy to save commonly-used code snippets, documentation comments, and more \u2014 then insert them anywhere you type with a simple shortcut or inline search.
Click here to learn more.
Most software projects get managed with a ticketing system that logs the work to be done as individual tickets. Counting the number of cards a developer closes over a certain period allows us to see what actual work is getting closed off.
\n\n\n\nMeasuring closed tickets is an excellent metric if the tasks are written well and assigned based on business priority. When more tickets get closed, more good things are happening with the project, be that bugs getting closed off or features made.
\n\n\n\nHow you measure closed tickets will depend on the ticketing system you use, but all modern systems like GitHub, Jira, or Trello will allow you to see closed/completed items.
\n\n\n\nNot all tickets are equal, which is why many teams opt to score tickets by effort. Scoring makes it easier to see if someone is working through lots of straightforward cards and leaving the longer, harder tickets to someone else.
\n\n\n\nA deploy is a unit of work that has made it from development to a live web server. Once something has been deployed, it is available for people to use.
\n\n\n\nGetting work in front of users is the best way to get feedback and to provide value to them. Measuring deploys works well because you\u2019re measuring changes that are getting shared with your users.
\n\n\n\nLike measuring closed tickets, the vast majority of modern platforms will have a smooth and automated way to measure deploys and also to see what work went into a deploy. Often many individual changes will make it into one deploy so that a single deploy might get attributed to several developers.
\n\n\n\nYou want to encourage your development team to release code often, but you want to make sure that the quality of the code remains high. So if you\u2019re using this method, be sure that people aren\u2019t deploying poor code just to achieve greater perceived productivity.
\n\n\n\nWriting documentation is an incredibly under-appreciated skill in development. Documentation can take many forms. When done well, it can have a lasting positive impact on the rest of the development team, often for a longer time than the developer was there.
\n\n\n\nBecause documentation is so important, it\u2019s a great idea to set up a productivity goal with writing documentation in mind.
\n\n\n\nMeasuring documentation written is a bit harder than anything else we\u2019ve talked about, and it depends mainly on how you store your documentation. Most internal tools like Basecamp or Notion have page counts and attribute pages or parts of pages to the people who edited them.
\n\n\n\nDocumentation for documentation\u2019s sake can become burdensome, so look out for developers reinventing the wheel by documenting something that they really should have just linked to instead.
\n\n\n\nIf your team does daily stand-ups, they often follow a standard pattern: what I got done yesterday, what I\u2019m doing today, what is blocking me. Measuring stand-up items covered involves knowing what they said they were going to do on one day and seeing if they completed those tasks the next day.
\n\n\n\nThis type of measurement shows consistency. Does the developer deliver on what they say they will provide regularly? If you have a team of people who frequently meet or exceed expectations, you know they\u2019re working well together.
\n\n\n\nIf stand-ups happen in person, the best way to measure would be for the person leading the stand-up to take notes. One of the many reasons why we favor text-based stand-ups is that it reduces the need for one person to be on top of record taking.
\n\n\n\nAn issue you might face measuring developer productivity this way is it might slow down the standup to ask people to clarify why things didn\u2019t get done, even if there are perfectly reasonable explanations.
\n\n\n\nDevelopment teams don\u2019t work in a silo and, depending on what other business processes are in play, measuring things like closed tickets might not apply. In those cases, you can measure forward movement. Forward movement means the change of a card from the left of a Kanban board, to the right.
\n\n\n\nA ticket might go from \u201cNeeds Investigation\u201d to \u201cDoing\u201d to \u201cIn Quality Assurance\u201d. Each time the ticket moves to the right, that is a positive movement. If the ticket ends up moving backwards, that is a negative movement.
\n\n\n\nThis type of measurement incentivizes all forms of positive movement. Sometimes tickets get stuck because developers don\u2019t know the complete solution, but they can make positive steps towards finding that solution.
\n\n\n\nContinually measuring this type of metric would need a project management tool like Jira or some custom analytics on your solution.
\n\n\n\nOne of the easiest ways to improve code quality and ensure your developers are learning is to make sure changes are getting reviewed before they get deployed. Measuring code reviews completed means counting how many code reviews are submitted or reviewed by someone on the team.
\n\n\n\nCode review is an essential part of mature software development. Measuring how many reviews get completed indicates how much buy-in code review has within the team, and acts as a proxy for a lot of the other metrics we\u2019ve mentioned. You can\u2019t review code that doesn\u2019t exist, so tickets are presumably moving forward.
\n\n\n\nMeasuring this metric can be done in the majority of newer code repositories, like GitLab or GitHub.
\n\n\n\nBe careful though, code review is a time-consuming process and returns little value if the developers in question go through the motions and don\u2019t take the required time to understand the code correctly.
\n\n\n\nDevelopers that spend too much of their time working in silos end up creating mediocre solutions. One way to ensure this doesn\u2019t happen is to make a metric out of a developer having conversations with non-developers. This could mean clients or users of the system, or it could mean people in other teams like Sales or Marketing.
\n\n\n\nThe more people talk, the more they learn from each other and the more context everyone has. This is why being present in meetings is a core developer skill.
\n\n\n\nMeasuring conversations is best done during one-on-one meetings between the developer and their manager. If these are happening as regularly as they should, then checking in about what conversations have occurred should be straightforward.
\n\n\n\nConversation count is one of the trickier metrics to measure, and communication isn\u2019t always everyone\u2019s strong suit, so definitely make sure you aren\u2019t making someone feel awkward with this type of measurement.
\n\n\n\nWe\u2019d love to hear your thoughts on measuring developer productivity, and we want to know if you\u2019ve tried any of the techniques in this article. Let us know in the comments below and let\u2019s all learn from each other.
\n", "content_text": "The days of lines of code defining developer productivity are thankfully a distant memory for most of us.\n\n\n\nThat doesn\u2019t mean you shouldn\u2019t measure how productive your developers are. It means you should measure things that make a difference.\n\n\n\nWhat gets measured, gets managedPeter Drucker\n\n\n\nCode in and of itself doesn\u2019t make a difference. It is the features that developers make that matter. \n\n\n\nToday we\u2019re going to share seven creative ideas to measure developer productivity that will help you measure things that have a positive impact on your product and your development practices.\n\n\n\nPro Tip: Code faster with TextExpanderTextExpander makes it easy to save commonly-used code snippets, documentation comments, and more \u2014 then insert them anywhere you type with a simple shortcut or inline search.Click here to learn more.\n\n\n\n1. Closed Tickets\n\n\n\nMost software projects get managed with a ticketing system that logs the work to be done as individual tickets. Counting the number of cards a developer closes over a certain period allows us to see what actual work is getting closed off.\n\n\n\nMeasuring closed tickets is an excellent metric if the tasks are written well and assigned based on business priority. When more tickets get closed, more good things are happening with the project, be that bugs getting closed off or features made.\n\n\n\nHow you measure closed tickets will depend on the ticketing system you use, but all modern systems like GitHub, Jira, or Trello will allow you to see closed/completed items.\n\n\n\nNot all tickets are equal, which is why many teams opt to score tickets by effort. Scoring makes it easier to see if someone is working through lots of straightforward cards and leaving the longer, harder tickets to someone else.\n\n\n\n2. Deploys\n\n\n\nA deploy is a unit of work that has made it from development to a live web server. Once something has been deployed, it is available for people to use.\n\n\n\nGetting work in front of users is the best way to get feedback and to provide value to them. Measuring deploys works well because you\u2019re measuring changes that are getting shared with your users.\n\n\n\nLike measuring closed tickets, the vast majority of modern platforms will have a smooth and automated way to measure deploys and also to see what work went into a deploy. Often many individual changes will make it into one deploy so that a single deploy might get attributed to several developers.\n\n\n\nYou want to encourage your development team to release code often, but you want to make sure that the quality of the code remains high. So if you\u2019re using this method, be sure that people aren\u2019t deploying poor code just to achieve greater perceived productivity.\n\n\n\n3. Documentation Written\n\n\n\nWriting documentation is an incredibly under-appreciated skill in development. Documentation can take many forms. When done well, it can have a lasting positive impact on the rest of the development team, often for a longer time than the developer was there.\n\n\n\nBecause documentation is so important, it\u2019s a great idea to set up a productivity goal with writing documentation in mind.\n\n\n\nMeasuring documentation written is a bit harder than anything else we\u2019ve talked about, and it depends mainly on how you store your documentation. Most internal tools like Basecamp or Notion have page counts and attribute pages or parts of pages to the people who edited them.\n\n\n\nDocumentation for documentation\u2019s sake can become burdensome, so look out for developers reinventing the wheel by documenting something that they really should have just linked to instead.\n\n\n\n4. Stand-up Items Covered\n\n\n\nIf your team does daily stand-ups, they often follow a standard pattern: what I got done yesterday, what I\u2019m doing today, what is blocking me. Measuring stand-up items covered involves knowing what they said they were going to do on one day and seeing if they completed those tasks the next day.\n\n\n\nThis type of measurement shows consistency. Does the developer deliver on what they say they will provide regularly? If you have a team of people who frequently meet or exceed expectations, you know they\u2019re working well together.\n\n\n\nIf stand-ups happen in person, the best way to measure would be for the person leading the stand-up to take notes. One of the many reasons why we favor text-based stand-ups is that it reduces the need for one person to be on top of record taking.\n\n\n\nAn issue you might face measuring developer productivity this way is it might slow down the standup to ask people to clarify why things didn\u2019t get done, even if there are perfectly reasonable explanations.\n\n\n\n5. Forward Movement\n\n\n\nDevelopment teams don\u2019t work in a silo and, depending on what other business processes are in play, measuring things like closed tickets might not apply. In those cases, you can measure forward movement. Forward movement means the change of a card from the left of a Kanban board, to the right.\n\n\n\nA ticket might go from \u201cNeeds Investigation\u201d to \u201cDoing\u201d to \u201cIn Quality Assurance\u201d. Each time the ticket moves to the right, that is a positive movement. If the ticket ends up moving backwards, that is a negative movement.\n\n\n\nThis type of measurement incentivizes all forms of positive movement. Sometimes tickets get stuck because developers don\u2019t know the complete solution, but they can make positive steps towards finding that solution.\n\n\n\nContinually measuring this type of metric would need a project management tool like Jira or some custom analytics on your solution.\n\n\n\n6. Code Reviews Completed\n\n\n\nOne of the easiest ways to improve code quality and ensure your developers are learning is to make sure changes are getting reviewed before they get deployed. Measuring code reviews completed means counting how many code reviews are submitted or reviewed by someone on the team.\n\n\n\nCode review is an essential part of mature software development. Measuring how many reviews get completed indicates how much buy-in code review has within the team, and acts as a proxy for a lot of the other metrics we\u2019ve mentioned. You can\u2019t review code that doesn\u2019t exist, so tickets are presumably moving forward.\n\n\n\nMeasuring this metric can be done in the majority of newer code repositories, like GitLab or GitHub.\n\n\n\nBe careful though, code review is a time-consuming process and returns little value if the developers in question go through the motions and don\u2019t take the required time to understand the code correctly.\n\n\n\n7. Conversations Had With Others\n\n\n\nDevelopers that spend too much of their time working in silos end up creating mediocre solutions. One way to ensure this doesn\u2019t happen is to make a metric out of a developer having conversations with non-developers. This could mean clients or users of the system, or it could mean people in other teams like Sales or Marketing.\n\n\n\nThe more people talk, the more they learn from each other and the more context everyone has. This is why being present in meetings is a core developer skill.\n\n\n\nMeasuring conversations is best done during one-on-one meetings between the developer and their manager. If these are happening as regularly as they should, then checking in about what conversations have occurred should be straightforward.\n\n\n\nConversation count is one of the trickier metrics to measure, and communication isn\u2019t always everyone\u2019s strong suit, so definitely make sure you aren\u2019t making someone feel awkward with this type of measurement.\n\n\n\nHow do you measure developer productivity?\n\n\n\nWe\u2019d love to hear your thoughts on measuring developer productivity, and we want to know if you\u2019ve tried any of the techniques in this article. Let us know in the comments below and let\u2019s all learn from each other.", "date_published": "2019-12-10T12:27:36-07:00", "date_modified": "2021-03-30T08:07:08-07:00", "authors": [ { "name": "Toby Osbourn", "url": "https://textexpander.com/author/toby", "avatar": "https://secure.gravatar.com/avatar/f9df5ae464cd8080533092eac3a56135?s=512&d=retro&r=g" } ], "author": { "name": "Toby Osbourn", "url": "https://textexpander.com/author/toby", "avatar": "https://secure.gravatar.com/avatar/f9df5ae464cd8080533092eac3a56135?s=512&d=retro&r=g" }, "image": "https://textexpander.com/wp-content/uploads/2019/12/Featured_7-Creative-Ideas-to-Measure-Developer-Productivity.jpg", "tags": [ "developer", "metrics", "productivity", "Blog", "Development" ], "summary": "Get the most out of our development team by incorporating these 7 creative ideas of measure developer productivity." } ] }