Software Engineering: Challenges and Solutions

Software Engineering: Challenges and Solutions
Author: Lech Madeyski
Publisher: Springer
Total Pages: 217
Release: 2016-08-29
Genre: Technology & Engineering
ISBN: 3319436066

This book presents the proceedings of the KKIO Software Engineering Conference held in Wrocław, Poland in September 15-17, 2016. It contains the carefully reviewed and selected scientific outcome of the conference, which had the motto: “Better software = more efficient enterprise: challenges and solutions”. Following this mission, this book is a compilation of challenges and needs of the industry, as well as research findings and achievements that could address the posed problems in software engineering. Some of these challenges included in the book are: increasing levels of abstraction for programming constructs, increasing levels of software reuse, increasing levels of automation, optimizing software development cycles. The book provides a platform for communication between researchers, young and established, and practitioners.

Building Mobile Apps at Scale

Building Mobile Apps at Scale
Author: Gergely Orosz
Publisher:
Total Pages: 238
Release: 2021-04-06
Genre:
ISBN: 9781638778868

While there is a lot of appreciation for backend and distributed systems challenges, there tends to be less empathy for why mobile development is hard when done at scale. This book collects challenges engineers face when building iOS and Android apps at scale, and common ways to tackle these. By scale, we mean having numbers of users in the millions and being built by large engineering teams. For mobile engineers, this book is a blueprint for modern app engineering approaches. For non-mobile engineers and managers, it is a resource with which to build empathy and appreciation for the complexity of world-class mobile engineering. The book covers iOS and Android mobile app challenges on these dimensions: Challenges due to the unique nature of mobile applications compared to the web, and to the backend. App complexity challenges. How do you deal with increasingly complicated navigation patterns? What about non-deterministic event combinations? How do you localize across several languages, and how do you scale your automated and manual tests? Challenges due to large engineering teams. The larger the mobile team, the more challenging it becomes to ensure a consistent architecture. If your company builds multiple apps, how do you balance not rewriting everything from scratch while moving at a fast pace, over waiting on "centralized" teams? Cross-platform approaches. The tooling to build mobile apps keeps changing. New languages, frameworks, and approaches that all promise to address the pain points of mobile engineering keep appearing. But which approach should you choose? Flutter, React Native, Cordova? Native apps? Reuse business logic written in Kotlin, C#, C++ or other languages? What engineering approaches do "world-class" mobile engineering teams choose in non-functional aspects like code quality, compliance, privacy, compliance, or with experimentation, performance, or app size?

Software Engineering at Google

Software Engineering at Google
Author: Titus Winters
Publisher: O'Reilly Media
Total Pages: 602
Release: 2020-02-28
Genre: Computers
ISBN: 1492082767

Today, software engineers need to know not only how to program effectively but also how to develop proper engineering practices to make their codebase sustainable and healthy. This book emphasizes this difference between programming and software engineering. How can software engineers manage a living codebase that evolves and responds to changing requirements and demands over the length of its life? Based on their experience at Google, software engineers Titus Winters and Hyrum Wright, along with technical writer Tom Manshreck, present a candid and insightful look at how some of the world’s leading practitioners construct and maintain software. This book covers Google’s unique engineering culture, processes, and tools and how these aspects contribute to the effectiveness of an engineering organization. You’ll explore three fundamental principles that software organizations should keep in mind when designing, architecting, writing, and maintaining code: How time affects the sustainability of software and how to make your code resilient over time How scale affects the viability of software practices within an engineering organization What trade-offs a typical engineer needs to make when evaluating design and development decisions

Agile Processes, in Software Engineering, and Extreme Programming

Agile Processes, in Software Engineering, and Extreme Programming
Author: Helen Sharp
Publisher: Springer
Total Pages: 343
Release: 2016-05-14
Genre: Computers
ISBN: 3319335154

This book contains the refereed proceedings of the 17th International Conference on Agile Software Development, XP 2016, held in Edinburgh, UK, in May 2016. While agile development has already become mainstream in industry, this field is still constantly evolving and continues to spur an enormous interest both in industry and academia. To this end, the XP conference attracts a large number of software practitioners and researchers, providing a rare opportunity for interaction between the two communities. The 14 full papers accepted for XP 2016 were selected from 42 submissions. Additionally, 11 experience reports (from 25 submissions) 5 empirical studies (out of 12 submitted) and 5 doctoral papers (from 6 papers submitted) were selected, and in each case the authors were shepherded by an experienced researcher. Generally, all of the submitted papers went through a rigorous peer-review process.

An Elegant Puzzle

An Elegant Puzzle
Author: Will Larson
Publisher: Stripe Press
Total Pages: 281
Release: 2019-05-20
Genre: Computers
ISBN: 1953953336

A human-centric guide to solving complex problems in engineering management, from sizing teams to handling technical debt. There’s a saying that people don’t leave companies, they leave managers. Management is a key part of any organization, yet the discipline is often self-taught and unstructured. Getting to the good solutions for complex management challenges can make the difference between fulfillment and frustration for teams—and, ultimately, between the success and failure of companies. Will Larson’s An Elegant Puzzle focuses on the particular challenges of engineering management—from sizing teams to handling technical debt to performing succession planning—and provides a path to the good solutions. Drawing from his experience at Digg, Uber, and Stripe, Larson has developed a thoughtful approach to engineering management for leaders of all levels at companies of all sizes. An Elegant Puzzle balances structured principles and human-centric thinking to help any leader create more effective and rewarding organizations for engineers to thrive in.

Surviving the Top Ten Challenges of Software Testing

Surviving the Top Ten Challenges of Software Testing
Author: William Perry
Publisher: Addison-Wesley
Total Pages: 242
Release: 2013-07-15
Genre: Computers
ISBN: 0133489159

This is the digital version of hte printed book (Copyright © 1997). Software testers require technical and political skills to survive what can often be a lose-lose relationship with developers and managers. Whether testing is your specialty or your stepping stone to a career as a developer, there's no better way to survive the pressures put on testers than to meet the ten challenges described in this practical handbook. This book goes beyond the technical skills required for effective testing to address the political realities that can't be solved by technical knowledge alone. Communication and negotiation skills must be in every tester's tool kit. Authors Perry and Rice compile a "top ten" list of the challenges faced by testers and offer tactics for success. They combine their years of experience in developing testing processes, writing books and newsletters on testing, and teaching seminars on how to test. The challenges are addressed in light of the way testing fits into the context of software development and how testers can maximize their relationships with managers, developers, and customers. In fact, anyone who works with software testers should read this book for insight into the unique pressures put on this part of the software development process. "Somewhere between the agony of rushed deadlines and the luxury of all the time in the world has got to be a reasonable approach to testing."—from Chapter 8 The Top Ten People Challenges Facing Testers Challenge #10: Getting Trained in Testing Challenge #9: Building Relationships with Developers Challenge #8: Testing Without Tools Challenge #7: Explaining Testing to Managers Challenge #6: Communicating with Customers—And Users Challenge #5: Making Time for Testing Challenge #4: Testing What's Thrown Over the Wall Challenge #3: Hitting a Moving Target Challenge #2: Fighting a Lose-Lose Situation Challenge #1: Having to Say No

Facts and Fallacies of Software Engineering

Facts and Fallacies of Software Engineering
Author: Robert L. Glass
Publisher: Addison-Wesley Professional
Total Pages: 218
Release: 2003
Genre: Computers
ISBN: 9780321117427

Regarding the controversial and thought-provoking assessments in this handbook, many software professionals might disagree with the authors, but all will embrace the debate. Glass identifies many of the key problems hampering success in this field. Each fact is supported by insightful discussion and detailed references.

Collaborative Software Engineering

Collaborative Software Engineering
Author: Ivan Mistrík
Publisher: Springer Science & Business Media
Total Pages: 422
Release: 2010-03-10
Genre: Computers
ISBN: 3642102948

Collaboration among individuals – from users to developers – is central to modern software engineering. It takes many forms: joint activity to solve common problems, negotiation to resolve conflicts, creation of shared definitions, and both social and technical perspectives impacting all software development activity. The difficulties of collaboration are also well documented. The grand challenge is not only to ensure that developers in a team deliver effectively as individuals, but that the whole team delivers more than just the sum of its parts. The editors of this book have assembled an impressive selection of authors, who have contributed to an authoritative body of work tackling a wide range of issues in the field of collaborative software engineering. The resulting volume is divided into four parts, preceded by a general editorial chapter providing a more detailed review of the domain of collaborative software engineering. Part 1 is on "Characterizing Collaborative Software Engineering", Part 2 examines various "Tools and Techniques", Part 3 addresses organizational issues, and finally Part 4 contains four examples of "Emerging Issues in Collaborative Software Engineering". As a result, this book delivers a comprehensive state-of-the-art overview and empirical results for researchers in academia and industry in areas like software process management, empirical software engineering, and global software development. Practitioners working in this area will also appreciate the detailed descriptions and reports which can often be used as guidelines to improve their daily work.

Exercises for Programmers

Exercises for Programmers
Author: Brian P. Hogan
Publisher: Pragmatic Bookshelf
Total Pages: 120
Release: 2015-09-04
Genre: Computers
ISBN: 1680503480

When you write software, you need to be at the top of your game. Great programmers practice to keep their skills sharp. Get sharp and stay sharp with more than fifty practice exercises rooted in real-world scenarios. If you're a new programmer, these challenges will help you learn what you need to break into the field, and if you're a seasoned pro, you can use these exercises to learn that hot new language for your next gig. One of the best ways to learn a programming language is to use it to solve problems. That's what this book is all about. Instead of questions rooted in theory, this book presents problems you'll encounter in everyday software development. These problems are designed for people learning their first programming language, and they also provide a learning path for experienced developers to learn a new language quickly. Start with simple input and output programs. Do some currency conversion and figure out how many months it takes to pay off a credit card. Calculate blood alcohol content and determine if it's safe to drive. Replace words in files and filter records, and use web services to display the weather, store data, and show how many people are in space right now. At the end you'll tackle a few larger programs that will help you bring everything together. Each problem includes constraints and challenges to push you further, but it's up to you to come up with the solutions. And next year, when you want to learn a new programming language or style of programming (perhaps OOP vs. functional), you can work through this book again, using new approaches to solve familiar problems. What You Need: You need access to a computer, a programming language reference, and the programming language you want to use.

Continuous Software Engineering

Continuous Software Engineering
Author: Jan Bosch
Publisher: Springer
Total Pages: 230
Release: 2014-11-11
Genre: Computers
ISBN: 331911283X

This book provides essential insights on the adoption of modern software engineering practices at large companies producing software-intensive systems, where hundreds or even thousands of engineers collaborate to deliver on new systems and new versions of already deployed ones. It is based on the findings collected and lessons learned at the Software Center (SC), a unique collaboration between research and industry, with Chalmers University of Technology, Gothenburg University and Malmö University as academic partners and Ericsson, AB Volvo, Volvo Car Corporation, Saab Electronic Defense Systems, Grundfos, Axis Communications, Jeppesen (Boeing) and Sony Mobile as industrial partners. The 17 chapters present the “Stairway to Heaven” model, which represents the typical evolution path companies move through as they develop and mature their software engineering capabilities. The chapters describe theoretical frameworks, conceptual models and, most importantly, the industrial experiences gained by the partner companies in applying novel software engineering techniques. The book’s structure consists of six parts. Part I describes the model in detail and presents an overview of lessons learned in the collaboration between industry and academia. Part II deals with the first step of the Stairway to Heaven, in which R&D adopts agile work practices. Part III of the book combines the next two phases, i.e., continuous integration (CI) and continuous delivery (CD), as they are closely intertwined. Part IV is concerned with the highest level, referred to as “R&D as an innovation system,” while Part V addresses a topic that is separate from the Stairway to Heaven and yet critically important in large organizations: organizational performance metrics that capture data, and visualizations of the status of software assets, defects and teams. Lastly, Part VI presents the perspectives of two of the SC partner companies. The book is intended for practitioners and professionals in the software-intensive systems industry, providing concrete models, frameworks and case studies that show the specific challenges that the partner companies encountered, their approaches to overcoming them, and the results. Researchers will gain valuable insights on the problems faced by large software companies, and on how to effectively tackle them in the context of successful cooperation projects.