|
Back to the Basics: Principles for Constructing Quality Software
Slideshow
Using an analogy to the building codes followed by architects and contractors in the construction of buildings, Rick Spiewak explores the fundamental principles for developing and delivering high quality, mission-critical systems. Just as buildings are constructed using different materials and techniques, we use a variety of languages, methodologies, and tools to develop software. Although there is no formal "building code" for software, software projects should consider-and judiciously apply-the recognized "best" practices of static analysis, automated unit testing, code re-use, and peer reviews. Rick takes you on a deep dive into each of these techniques where you'll learn about their advantages, disadvantages, costs, challenges, and more.
|
Rick Spiewak, The MITRE Corporation
|
|
STARWEST 2012: Testing in the DevOps World of Continuous Delivery DevOps is an increasingly popular development approach focused on ensuring that delivered code is immediately stable and works as expected. DevOps team members must be multi-skilled and are expected to perform all the activities of development, testing, and SysAdmin tasks. Manoj Narayanan shares how to implement testing using DevOps tenets and how it differs from its more popular cousin, agile development. To work productively with developers and SysAdmins, testers must develop knowledge of development and design principles, programming languages, and continuous integration. Manoj explores the critical role that functional and regression test automation plays in enabling testing organizations to be more productive. Manoj concludes with an analysis of the cultural impact DevOps has on the testing organization and its interaction with other critical stakeholders-business, developers, operations, and customers.
|
Manoj Narayanan, Cognizant Technology Solutions
|
|
Is Open Source Too Open? Tips for Implementing a Governance Program By next year, 90 percent of large enterprises will include open-source software as business critical elements of their IT portfolios. However, most software development organizations have limited capability to govern the process of selecting, managing, and distributing open-source components-leaving them exposed to unforeseen technical and compliance risks. Larry Roshfeld examines how open-source components-and their dependencies-may expose your company to unforeseen and unnecessary vulnerabilities. He outlines the significant threats to software quality, stability, performance, security, and intellectual property that have occurred using such components. Then, Larry shares an action plan for balancing the risk/reward trade-offs of open-source software in the enterprise. Find out how to ensure that your organization uses only the highest quality open-source components and avoids the common vulnerabilities.
|
Larry Roshfeld, Sonatype
|
|
Better Software Conference West 2012: Writing High Quality Code Quality in delivered software is very different from quality in physical goods. You can see it or touch it, except in the code. When classes and methods are cohesive, non-redundant, well-encapsulated, assertive, and explicitly coupled, they are less prone to developer mistakes and far easier to debug, test, and maintain. David Bernstein asserts that paying attention to code quality helps developers focus every day on the key principles, patterns, and practices expert developers use. Even more, if you don’t pay attention to critical code quality attributes, iterative development practices can quickly degrade code into a maintenance nightmare. Join David and your peers to take a deep dive into the code quality attributes that make software more maintainable and less bug friendly. Learn to create software that provides value now and, in addition, is easy to change and extend so it can continue to deliver value far into the future.
|
David Bernstein, To Be Agile
|
|
Application Lifecycle Management Imperatives Ever growing software development needs and faster delivery cycles coupled with flat or shrinking IT budgets have brought many organizations to new agile and lean practices. Together, these disruptions are causing a sea of change in the application lifecycle management (ALM) landscape. Although management tools aren’t an explicit focus for most development teams, choosing the right tools for enterprise development is an important factor in keeping everyone productive. Monica Luke discusses the five key imperatives for ALM implementations: in-context collaboration, accelerating time to delivery with real-time planning, improving quality with lifecycle traceability, refining predictability with development intelligence, and reducing costs through continuous improvement. For each imperative, Monica offers concrete examples and lessons learned from real-world implementations. Don’t get lost in the weeds with an ALM tool.
|
Monica Luke, IBM Rational Software
|
|
Agile Development Conference & Better Software Conference West 2012: Avoiding Overdesign and Underdesign The question of how much design to do up-front on a project is an engaging conundrum. Too much design often results in excess complexity and wasted effort. Too little design results in a poor architecture or insufficient system structures which require expensive rework and hurt more in the long run. How can we know the right balance of upfront design work versus emerging design approaches? Alan Shalloway shows how to use design patterns-coupled with the attitude from agile of “don’t build what you don’t need”-to guide your design efforts. The trick is to identify potential design alternatives, analyze how each may affect the system in the future, and then find the simplest approach for isolating those potential affects.
|
Alan Shalloway, Net Objectives
|
|
Developer-driven Quality: Putting Developers in the Drivers' Seat Although many software development teams rely on their QA/Test departments to uncover critical product defects near the end of development, we all recognize the inefficiency of this approach. It’s better to find and fix defects earlier in the software development process to save time and money in the long run! Colby Litnak explores key concepts that encourage and empower developers to take primary responsibility for producing quality software. As with a souped-up race car, developers need specially designed tools and practices when they are at the wheel: fail-fast frameworks, one-click test execution, automated defect prevention principles, automatic notifications of untested code, hurtful test failures, and much more. Discover the principles developers must embrace to produce high quality code the first time-before it goes to QA/Test.
|
Colby Litnak, MasterControl, Inc.
|
|
ALM in the Cloud: Bringing Code to the Cloud and Back Again The deployment destination for today’s applications is going through its biggest transition since the rise of the application server. Platform-as-a-Service (PaaS) and other cloud service offerings are putting pressure on every stakeholder in the application lifecycle, forcing us to modernize both our skill sets and tool stacks. Mik Kersten describes the key cloud technology trends and demonstrates how the coming wave of cloud-friendly application lifecycle management (ALM) tools and practices will become the defining factor for productivity and ultimate success. Discover the new challenges developers face when deploying and debugging multi-tenanted applications on hosted infrastructures. Learn how continuous integration loops require testers to learn new tools that connect them directly to running applications.
|
Mik Kersten, Tasktop Technologies
|
|
Selecting the Right Mobile Testing Solution: Practical Considerations and Proven Practices Because the mobile market is extremely dynamic, maintaining consistent application quality is always difficult. Managing the risk exposures with mobile apps and embedded software requires comprehensive testing of a wide variety of platforms operating on multiple networks. Testers have to contend with short development cycles that require continuous QA efforts. Three key building blocks are required to overcome these obstacles: device-agnostic automation, access to a large selection of handsets and tablets, and ways to seamlessly apply your existing testing tools, skills, and knowledge to mobile. From his experience working with enterprises going mobile, Eran Yaniv shares the do's and don'ts for selecting an enterprise-grade mobile testing and automation platform, and offers his analysis of the advantages and disadvantages of the various approaches.
|
Eran Yaniv, Perfecto Mobile
|
|
Sustainable Software Quality-at Warp Speed Businesses demand high levels of product quality, development productivity, planning reliability, employee satisfaction, and customer loyalty. And yet, people and organizations often ignore all those goals and focus on building systems with as many features as possible delivered by a specific due date. When the work is complete, retrospectives surface the dissatisfaction concerning missed dates, poor quality, technical debt, and more. Richard Hensley describes his last three years at McKesson, where they have delivered 103 production releases with no significant defects, fulfilled sixteen multi-million dollar contracts, maintained high employee morale, and trained 5,000 users. Employing the Kanban approach for change management, McKesson implemented new tools selected from RUP, XP, Scrum, and lean-daily focused planning, stand-up meetings, retrospectives, TDD, information radiators, user stories, etc.
|
Richard Hensley, McKesson Health Solutions
|