The book "Accelerating Software Quality: Machine Learning and Artificial Intelligence in the Age of DevOps" is a complete asset for software developers, testers, and managers that are on their journey to a more mature DevOps workflow, and struggle with better automation and data-driven decision making. DevOps is a mature process across the entire market, however, with existing Non-AI/ML technologies and models, it comes short in expediting release cycle, identifying productivity gaps and addressing them. This book, that was implemented by myself with the help of leaders from the DevOps and test automation space, is covering topics from basic introduction to AI and ML in software development and testing, implications of AI and ML on existing apps, processes, and tools, practical tips in applying commercial and open-source AI/ML tools within existing tool chain, chat-bots testing, visual based testing using AI, automated security scanning for vulnerabilities, automated code reviews, API testing and management using AI/ML, reducing effort and time through test impact analysis (TIA), robotic process automation (RPA), AIOps for smarter code deployments and production defects prevention, and many more.When properly leveraging such tools, DevOps teams can benefit from greater code quality and functional and non-functional test automation coverage. This increases their release cycle velocity, reduces noise and software waste, and enhances their app quality.The book is divided into 3 main sections: *Section 1 covers the fundamentals of AI and ML in software development and testing. It includes introductions, definitions, 101 for testing AI-Based applications, classifications of AI/ML and defects that are tied to AI/ML, and more.*Section 2 focuses on practical advises and recommendations for using AI/ML based solutions within software development activities. This section includes topics like visual AI test automation, AI in test management, testing conversational AI applications, RPA benefits, API testing and much more.*Section 3 covers the more advanced and future-looking angles of AI and ML with projections and unique use cases. Among the topics in this section are AI and ML in logs observability, AIOps benefits to an entire DevOps teams, how to maintain AI/ML test automation, Test impact analysis with AI, and more.The book is packed with many proven best practices, real life examples, and many other open source and commercial solution recommendations that are set to shape the future of DevOps together with ML/AI
* Gets right to what you need to know; Covers advanced topics not documented in other books. * Eases transition from other Version Control systems. * Explains how to integrate Subversion with common development tools; Shows you how to embed Subversion in your own programs. * Rooney is one of the Subversion developers.
This book doesn't tell you how to write faster code, or how to write code with fewer memory leaks, or even how to debug code at all. What it does tell you is how to build your product in better ways, how to keep track of the code that you write, and how to track the bugs in your code. Plus some more things you'll wish you had known before starting a project. Practical Development Environments is a guide, a collection of advice about real development environments for small to medium-sized projects and groups. Each of the chapters considers a different kind of tool - tools for tracking versions of files, build tools, testing tools, bug-tracking tools, tools for creating documentation, and tools for creating packaged releases. Each chapter discusses what you should look for in that kind of tool and what to avoid, and also describes some good ideas, bad ideas, and annoying experiences for each area. Specific instances of each type of tool are described in enough detail so that you can decide which ones you want to investigate further. Developers want to write code, not maintain makefiles. Writers want to write content instead of manage templates. IT provides machines, but doesn't have time to maintain all the different tools. Managers want the product to move smoothly from development to release, and are interested in tools to help this happen more often. Whether as a full-time position or just because they are helpful, all projects have toolsmiths: making choices about tools, installing them, and then maintaining the tools that everyone else depends upon. This book is especially for everyone who ends up being a toolsmith for his or her group.
Get more out of your legacy systems: more performance, functionality, reliability, and manageability Is your code easy to change? Can you get nearly instantaneous feedback when you do change it? Do you understand it? If the answer to any of these questions is no, you have legacy code, and it is draining time and money away from your development efforts. In this book, Michael Feathers offers start-to-finish strategies for working more effectively with large, untested legacy code bases. This book draws on material Michael created for his renowned Object Mentor seminars: techniques Michael has used in mentoring to help hundreds of developers, technical managers, and testers bring their legacy systems under control. The topics covered include Understanding the mechanics of software change: adding features, fixing bugs, improving design, optimizing performance Getting legacy code into a test harness Writing tests that protect you against introducing new problems Techniques that can be used with any language or platform—with examples in Java, C++, C, and C# Accurately identifying where code changes need to be made Coping with legacy systems that aren't object-oriented Handling applications that don't seem to have any structure This book also includes a catalog of twenty-four dependency-breaking techniques that help you work with program elements in isolation and make safer changes.
How do the experts solve difficult problems in software development? In this unique and insightful book, leading computer scientists offer case studies that reveal how they found unusual, carefully designed solutions to high-profile projects. You will be able to look over the shoulder of major coding and design experts to see problems through their eyes. This is not simply another design patterns book, or another software engineering treatise on the right and wrong way to do things. The authors think aloud as they work through their project's architecture, the tradeoffs made in its construction, and when it was important to break rules. This book contains 33 chapters contributed by Brian Kernighan, KarlFogel, Jon Bentley, Tim Bray, Elliotte Rusty Harold, Michael Feathers,Alberto Savoia, Charles Petzold, Douglas Crockford, Henry S. Warren,Jr., Ashish Gulhati, Lincoln Stein, Jim Kent, Jack Dongarra and PiotrLuszczek, Adam Kolawa, Greg Kroah-Hartman, Diomidis Spinellis, AndrewKuchling, Travis E. Oliphant, Ronald Mak, Rogerio Atem de Carvalho andRafael Monnerat, Bryan Cantrill, Jeff Dean and Sanjay Ghemawat, SimonPeyton Jones, Kent Dybvig, William Otte and Douglas C. Schmidt, AndrewPatzer, Andreas Zeller, Yukihiro Matsumoto, Arun Mehta, TV Raman,Laura Wingerd and Christopher Seiwald, and Brian Hayes. Beautiful Code is an opportunity for master coders to tell their story. All author royalties will be donated to Amnesty International.
Cost cutting is an issue for every manager and executive at every level in every company, large or small, public or private sector. Junior managers who are proactively tight on cost are learning good habits for the future, ones that will bring them recognition and advance their climb up the organizational chart. The HR department is now staffed with tough cost managers dealing with the most difficult cost category, people. Marketing departments now focus on how to get higher returns from less spend. Cut Costs Not Corners has a coherent and structured approach to cost cutting as a permanent activity, combined with guidance on the practical steps to take and powerful international case studies. It covers strategic and tactical cost cutting options such as analysing space needs, buying technology for less, selling off redundant assets, reducing credit risk, reviewing distribution methods, sourcing new suppliers or consolidating existing ones, advertising for less, changing the route to market, travel and utility savings, minimising finance and tax costs, crisis measures - freezing recruitment, delaying pay rises, sell and lease back assets - keeping budgets rolling and using a daily cash flow model.
For most software developers, coding is the fun part. The hard bits are dealing with clients, peers, and managers and staying productive, achieving financial security, keeping yourself in shape, and finding true love. This book is here to help. Soft Skills: The Software Developer's Life Manual is a guide to a well-rounded, satisfying life as a technology professional. In it, developer and life coach John Sonmez offers advice to developers on important subjects like career and productivity, personal finance and investing, and even fitness and relationships. Arranged as a collection of 71 short chapters, this fun listen invites you to dip in wherever you like. A "Taking Action" section at the end of each chapter tells you how to get quick results. Soft Skills will help make you a better programmer, a more valuable employee, and a happier, healthier person.
“Mantle and Lichty have assembled a guide that will help you hire, motivate, and mentor a software development team that functions at the highest level. Their rules of thumb and coaching advice are great blueprints for new and experienced software engineering managers alike.” —Tom Conrad, CTO, Pandora “I wish I’d had this material available years ago. I see lots and lots of ‘meat’ in here that I’ll use over and over again as I try to become a better manager. The writing style is right on, and I love the personal anecdotes.” —Steve Johnson, VP, Custom Solutions, DigitalFish All too often, software development is deemed unmanageable. The news is filled with stories of projects that have run catastrophically over schedule and budget. Although adding some formal discipline to the development process has improved the situation, it has by no means solved the problem. How can it be, with so much time and money spent to get software development under control, that it remains so unmanageable? In Managing the Unmanageable: Rules, Tools, and Insights for Managing Software People and Teams , Mickey W. Mantle and Ron Lichty answer that persistent question with a simple observation: You first must make programmers and software teams manageable. That is, you need to begin by understanding your people—how to hire them, motivate them, and lead them to develop and deliver great products. Drawing on their combined seventy years of software development and management experience, and highlighting the insights and wisdom of other successful managers, Mantle and Lichty provide the guidance you need to manage people and teams in order to deliver software successfully. Whether you are new to software management, or have already been working in that role, you will appreciate the real-world knowledge and practical tools packed into this guide.
Empirical research has now become an essential component of software engineering yet software practitioners and researchers often lack an understanding of how the empirical procedures and practices are applied in the field. Empirical Research in Software Engineering: Concepts, Analysis, and Applications shows how to implement empirical research pro