Introduction to software engineering and project management methodologies like Waterfall and Agile. In addition to discussing some practices and tools like Version Control Systems, CI/CD, Code reviews and testing strategies.
Towards Software Sustainability AssessmentPatricia Lago
After an introduction into the notion of Green IT, green software, and the sustainability role of software applications/systems, this seminar (given at Chalmers University of Technology) presents the idea of the Software Sustainability Assessment method.
Slides for the Greening Your Technology session at the Nonprofit Technology Conference (NTC) 2010 in Atlanta, GA.
Learn how to reduce the environmental impact of your information technology and how to effectively use IT to improve your organizations’ efficiency.
Integrated Analysis of Traditional Requirements Engineering Process with Agil...zillesubhan
In the past few years, agile software development approach has emerged as a most attractive software development approach. A typical CASE environment consists of a number of CASE tools operating on a common hardware and software platform and note that there are a number of different classes of users of a CASE environment. In fact, some users such as software developers and managers wish to make use of CASE tools to support them in developing application systems and monitoring the progress of a project. This development approach has quickly caught the attention of a large number of software development firms. However, this approach particularly pays attention to development side of software development project while neglects critical aspects of requirements engineering process. In fact, there is no standard requirement engineering process in this approach and requirements engineering activities vary from situation to situation. As a result, there emerge a large number of problems which can lead the software development projects to failure. One of major drawbacks of agile approach is that it is suitable for small size projects with limited team size. Hence, it cannot be adopted for large size projects. We claim that this approach can be used for large size projects if traditional requirements engineering approach is combined with agile manifesto. In fact, the combination of traditional requirements engineering process and agile manifesto can also help resolve a large number of problems exist in agile development methodologies. As in software development the most important thing is to know the clear customer’s requirements and also through modeling (data modeling, functional modeling, behavior modeling). Using UML we are able to build efficient system starting from scratch towards the desired goal. Through UML we start from abstract model and develop the required system through going in details with different UML diagrams. Each UML diagram serves different goal towards implementing a whole project.
Towards Software Sustainability AssessmentPatricia Lago
After an introduction into the notion of Green IT, green software, and the sustainability role of software applications/systems, this seminar (given at Chalmers University of Technology) presents the idea of the Software Sustainability Assessment method.
Slides for the Greening Your Technology session at the Nonprofit Technology Conference (NTC) 2010 in Atlanta, GA.
Learn how to reduce the environmental impact of your information technology and how to effectively use IT to improve your organizations’ efficiency.
Integrated Analysis of Traditional Requirements Engineering Process with Agil...zillesubhan
In the past few years, agile software development approach has emerged as a most attractive software development approach. A typical CASE environment consists of a number of CASE tools operating on a common hardware and software platform and note that there are a number of different classes of users of a CASE environment. In fact, some users such as software developers and managers wish to make use of CASE tools to support them in developing application systems and monitoring the progress of a project. This development approach has quickly caught the attention of a large number of software development firms. However, this approach particularly pays attention to development side of software development project while neglects critical aspects of requirements engineering process. In fact, there is no standard requirement engineering process in this approach and requirements engineering activities vary from situation to situation. As a result, there emerge a large number of problems which can lead the software development projects to failure. One of major drawbacks of agile approach is that it is suitable for small size projects with limited team size. Hence, it cannot be adopted for large size projects. We claim that this approach can be used for large size projects if traditional requirements engineering approach is combined with agile manifesto. In fact, the combination of traditional requirements engineering process and agile manifesto can also help resolve a large number of problems exist in agile development methodologies. As in software development the most important thing is to know the clear customer’s requirements and also through modeling (data modeling, functional modeling, behavior modeling). Using UML we are able to build efficient system starting from scratch towards the desired goal. Through UML we start from abstract model and develop the required system through going in details with different UML diagrams. Each UML diagram serves different goal towards implementing a whole project.
International Journal of Engineering Research and Applications (IJERA) is an open access online peer reviewed international journal that publishes research and review articles in the fields of Computer Science, Neural Networks, Electrical Engineering, Software Engineering, Information Technology, Mechanical Engineering, Chemical Engineering, Plastic Engineering, Food Technology, Textile Engineering, Nano Technology & science, Power Electronics, Electronics & Communication Engineering, Computational mathematics, Image processing, Civil Engineering, Structural Engineering, Environmental Engineering, VLSI Testing & Low Power VLSI Design etc.
Green ICT and its transformation in Korea (Green Startups)Hoon Jung
In 2015, I shared ideas on Green ICT and its transformation in Korea with global leaders from developing countries. This presentation deals with various subjects of Green ICT such as its background, definition, regulation and policy. If you are simply interested in Green Startups in Korea, please move to the last chapter. I separated one slide into many to make easier for readers to follow the content as each slide has heavy information.
IT can play a central role in making your corporate strategy sustainable; the key to the success is the application of a holistic governance that makes sure the IT strategy is aligned with and fully supports corporate sustainability strategy.
International Journal of Business and Management Invention (IJBMI)inventionjournals
International Journal of Business and Management Invention (IJBMI) is an international journal intended for professionals and researchers in all fields of Business and Management. IJBMI publishes research articles and reviews within the whole field Business and Management, new teaching methods, assessment, validation and the impact of new technologies and it will continue to provide information on the latest trends and developments in this ever-expanding subject. The publications of papers are selected through double peer reviewed to ensure originality, relevance, and readability. The articles published in our journal can be accessed online
Have you really taken into account your IT Department's impact on the environment? Green IT has moved beyond efforts to discourage employees from not printing emails. This panel will discuss:
Creating a Green IT Strategy
Green Software and Hardware Overview
Virtualization
Sustainable Design and Printing
Panelists: David Deal, Community IT Innovators, Com, Anna Jaeger TechSoup Global's GreenTech Initiative, and Ann Yoders, Green IT Consortium
Prefabrication offers quality controlled solutions by constructing parts in an environment, away from variable weather, where workers and resources can be closely monitored. This translates to less errors and more cost effective solutions for our clients, all within a guaranteed shorter timeframe.
Agility is the tool gilb vilnius 9 dec 2013tom gilb
Build Stuff 13, 9.12.2013 Monday 1600-1700,
Vilnius, Lithuania, #BuildStuffLT
‘Agility is the TOOL, not the Master’ : Practical Agile Systems Engineering Tools including My Ten Key Agile Principles and several case studies
Distilling Agile for Effective ExecutionOmar Bashir
The objective of agility in software is to fulfill evolving customer requirements while delivering high quality software on time and within budget. A number of agile methodologies have been developed promising to achieve this objective. But their adoption has proven to be challenging leading to cargo culting and bikeshedding practices that challenge project success. A review of Agile Manifesto and principles of agile methodologies distills them into 3 fundamental components. This talk suggests that a disciplined pursuit of these fundamentals while adopting agile practices increases an organisation’s chances of success.
Reduction is key to agility. It is of fundamental consequence to not just iteration planning and execution but in all aspects of project execution. Smaller stories simplify estimation, implementation and pivoting in addition to reducing intra-team dependencies. Smaller merge sizes reduce risk of merge conflicts and enable focused reviews leading to better code quality. Fewer technical dependencies make software flexible. Fewer inter-team and intra-team dependencies increase flow. Finally smaller team sizes focused on features and functionality enhance team cohesion and reduce inter-team dependencies.
Focus ensures that teams’ eyes are on the prize. Sprints need to be thematic focused on delivering end-to-end features that can be demonstrated to customers to obtain and act on feedback. Large features may not be completely delivered in a single sprint. In such cases, sprints may be grouped into packages which incrementally deliver features. Hence packages, unlike sprints, may not all be of the same length but all sprints within a package must focus on incremental completion of a feature. Cross functional teams tend to deliver end to end features better than technology specialist teams.
Finally, visibility is essential for teams to review their progress and make arrangement to reduce risks. It is important to create necessary and useful information radiators for the team members. These include sprint dashboards showing the progress on stories, burndown charts and defect trends. Additionally RAID (Risks, Assumptions, Issues and Dependencies) logs and dependency matrices highlight risks that teams face in achieving their targets.
International Journal of Engineering Research and Applications (IJERA) is an open access online peer reviewed international journal that publishes research and review articles in the fields of Computer Science, Neural Networks, Electrical Engineering, Software Engineering, Information Technology, Mechanical Engineering, Chemical Engineering, Plastic Engineering, Food Technology, Textile Engineering, Nano Technology & science, Power Electronics, Electronics & Communication Engineering, Computational mathematics, Image processing, Civil Engineering, Structural Engineering, Environmental Engineering, VLSI Testing & Low Power VLSI Design etc.
Green ICT and its transformation in Korea (Green Startups)Hoon Jung
In 2015, I shared ideas on Green ICT and its transformation in Korea with global leaders from developing countries. This presentation deals with various subjects of Green ICT such as its background, definition, regulation and policy. If you are simply interested in Green Startups in Korea, please move to the last chapter. I separated one slide into many to make easier for readers to follow the content as each slide has heavy information.
IT can play a central role in making your corporate strategy sustainable; the key to the success is the application of a holistic governance that makes sure the IT strategy is aligned with and fully supports corporate sustainability strategy.
International Journal of Business and Management Invention (IJBMI)inventionjournals
International Journal of Business and Management Invention (IJBMI) is an international journal intended for professionals and researchers in all fields of Business and Management. IJBMI publishes research articles and reviews within the whole field Business and Management, new teaching methods, assessment, validation and the impact of new technologies and it will continue to provide information on the latest trends and developments in this ever-expanding subject. The publications of papers are selected through double peer reviewed to ensure originality, relevance, and readability. The articles published in our journal can be accessed online
Have you really taken into account your IT Department's impact on the environment? Green IT has moved beyond efforts to discourage employees from not printing emails. This panel will discuss:
Creating a Green IT Strategy
Green Software and Hardware Overview
Virtualization
Sustainable Design and Printing
Panelists: David Deal, Community IT Innovators, Com, Anna Jaeger TechSoup Global's GreenTech Initiative, and Ann Yoders, Green IT Consortium
Prefabrication offers quality controlled solutions by constructing parts in an environment, away from variable weather, where workers and resources can be closely monitored. This translates to less errors and more cost effective solutions for our clients, all within a guaranteed shorter timeframe.
Agility is the tool gilb vilnius 9 dec 2013tom gilb
Build Stuff 13, 9.12.2013 Monday 1600-1700,
Vilnius, Lithuania, #BuildStuffLT
‘Agility is the TOOL, not the Master’ : Practical Agile Systems Engineering Tools including My Ten Key Agile Principles and several case studies
Distilling Agile for Effective ExecutionOmar Bashir
The objective of agility in software is to fulfill evolving customer requirements while delivering high quality software on time and within budget. A number of agile methodologies have been developed promising to achieve this objective. But their adoption has proven to be challenging leading to cargo culting and bikeshedding practices that challenge project success. A review of Agile Manifesto and principles of agile methodologies distills them into 3 fundamental components. This talk suggests that a disciplined pursuit of these fundamentals while adopting agile practices increases an organisation’s chances of success.
Reduction is key to agility. It is of fundamental consequence to not just iteration planning and execution but in all aspects of project execution. Smaller stories simplify estimation, implementation and pivoting in addition to reducing intra-team dependencies. Smaller merge sizes reduce risk of merge conflicts and enable focused reviews leading to better code quality. Fewer technical dependencies make software flexible. Fewer inter-team and intra-team dependencies increase flow. Finally smaller team sizes focused on features and functionality enhance team cohesion and reduce inter-team dependencies.
Focus ensures that teams’ eyes are on the prize. Sprints need to be thematic focused on delivering end-to-end features that can be demonstrated to customers to obtain and act on feedback. Large features may not be completely delivered in a single sprint. In such cases, sprints may be grouped into packages which incrementally deliver features. Hence packages, unlike sprints, may not all be of the same length but all sprints within a package must focus on incremental completion of a feature. Cross functional teams tend to deliver end to end features better than technology specialist teams.
Finally, visibility is essential for teams to review their progress and make arrangement to reduce risks. It is important to create necessary and useful information radiators for the team members. These include sprint dashboards showing the progress on stories, burndown charts and defect trends. Additionally RAID (Risks, Assumptions, Issues and Dependencies) logs and dependency matrices highlight risks that teams face in achieving their targets.
Managing a team and project are quite synonymous. Especially, teams require effective distribution of responsibility / roles. Once that is setup, a proper process guides people to make progress. All this fits into a product lifecycle, which is essential to develop the right product, in the right way, and deliver it at the right time.
Choosing the right QA strategy for a successful projectThe Software House
Dawid Krala, Tomasz Górski: When talking about Quality in software development, the most important thing is to understand the huge long-term impact of sticking (or not) to your QA strategy. That’s why The Software House’s most experienced QA engineers are going to show it on real-life examples from our projects – going over the most important trends, concepts and good practices.
What will you learn from this presentation:
When is QA the most important factor behind successful software projects?
How to develop quality software and not to go bankrupt?
How to choose the most optimal testing tools for your business?
Which types of tests will be the best for your software project?
What are the practical differences between Quality Assurance and Quality Control?
How can you use the Test Pyramid in 2020?
What is the “extended standard approach” in software testing (integration tests, component tests, contract tests, E2E, static code analysis)?
With so much noise and buzzwords floating around regarding data analytics, it can be rather difficult to decipher between the signal (what is worthwhile) and what is only talk. Sometimes the rhetoric even starts within your organization, confounding the issue further. During Andrew’s session, he will provide attendees with the knowledge they need to tune out the bogus information while gleaning valuable insights for developing and deploying their audit analytics program. The presentation will conclude with tangible examples of a successful Manufacturing Audit Analytics program, and recommendations for how to get yours up and running. After attending, participants will be able to articulate how steps for setting up an analytics program within their departments, as well be armed with knowledge for educating senior leadership on the fundamental changes in technology that are occurring, and what is just marketing.
ASPgems company description.
We make your project real, thanks to our team of highly specialized developers of agile solutions. Passion for software development and a deep understanding of the Internet and the digital world are the building blocks of our value proposition. We commit to your project success.
The product that software professionals build and then support over the long term.Software Characteristics,
1.Software is developed or Engineered, it is not manufactured in the classical sense.Importance of Software Engineering
Oplægget blev holdt ved et seminar i InfinIT-interessegruppen Softwaretest den 11. februar 2014. Læs mere om interessegruppen her: http://infinit.dk/dk/interessegrupper/softwaretest/softwaretest.htm
Similar to Building Sustainable Software: An Introduction to Software Engineering (20)
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
Les Buildpacks existent depuis plus de 10 ans ! D’abord, ils étaient utilisés pour détecter et construire une application avant de la déployer sur certains PaaS. Ensuite, nous avons pu créer des images Docker (OCI) avec leur dernière génération, les Cloud Native Buildpacks (CNCF en incubation). Sont-ils une bonne alternative au Dockerfile ? Que sont les buildpacks Paketo ? Quelles communautés les soutiennent et comment ?
Venez le découvrir lors de cette session ignite
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteGoogle
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-pilot-review/
AI Pilot Review: Key Features
✅Deploy AI expert bots in Any Niche With Just A Click
✅With one keyword, generate complete funnels, websites, landing pages, and more.
✅More than 85 AI features are included in the AI pilot.
✅No setup or configuration; use your voice (like Siri) to do whatever you want.
✅You Can Use AI Pilot To Create your version of AI Pilot And Charge People For It…
✅ZERO Manual Work With AI Pilot. Never write, Design, Or Code Again.
✅ZERO Limits On Features Or Usages
✅Use Our AI-powered Traffic To Get Hundreds Of Customers
✅No Complicated Setup: Get Up And Running In 2 Minutes
✅99.99% Up-Time Guaranteed
✅30 Days Money-Back Guarantee
✅ZERO Upfront Cost
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Into the Box Keynote Day 2: Unveiling amazing updates and announcements for modern CFML developers! Get ready for exciting releases and updates on Ortus tools and products. Stay tuned for cutting-edge innovations designed to boost your productivity.
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
2. ● Programming Effort vs. Software
Engineering
● Waterfall Methodology
● Agile Methodology
● Practices and Tools in SWE
○ Version Control Systems
○ CI/CD
○ Code Review
○ Testing
● References and Resources
Today’s Agenda
4. ● Programming is concerned only about
writing functional code.
● The result is usually a prototype not a
full product.
● We don’t give care much thought about
documentation.
● The team size is limited in number
Programming Effort VS. Software Engineering
5. The application of a systematic,
disciplined, quantifiable
approach to the development,
operation, and maintenance of
software; that is, the application
of engineering to software.
6. ● Time
● Scale
● Complexity
Programming Effort VS. Software
Engineering
7. ● What is the expected lifespan
of your code?
● The shorter the lifespan of the
code the less it’s affected by
time.
Programming Effort VS. Software Engineering
8. ● How many people are involved?
What role do they play in the
development and maintenance?
● As we scale, complexity emerge in
team organization, system
components and policies and
practices.
Programming Effort VS. Software Engineering
9. Programming Effort VS. Software Engineering
● In SWE we're always forced to
evaluate the trade-offs between
several paths forward.
● The stakes are sometimes high,
and often with imperfect value
metrics
12. Project Management Methodologies
● Waterfall is a linear sequential model.
● Development process is divided into
distinct phases.
● Each phase is well documented.
15. Project Management Methodologies
● No room for change.
● Working software is produced late in
the process.
● High amount of risk and uncertainty.
Requirements
Design
Implementation
Verification
Deployment
Maintenance
16. Project Management Methodologies
● When the requirements are well
defined, clear and fixe.
● The project is short.
● When time and money are secondary
considerations.
● When the technology is understood
17. In software, we rarely have meaningful
requirements. Even if we do, the only
measure of success that matters is
whether our solution solves the
customer’s shifting idea of what their
problem is.
18. Project Management Methodologies
● Software by nature is not tangible.
● Different Background.
● Time:
○ Unknown requirements.
○ Changes in the industry.
○ New competitors.
○ New regulations.
○ Different decision makers.
19. Project Management Methodologies
● Individuals and interactions over
processes and tools.
● Working software over
comprehensive documentation.
● Customer collaboration over
contract negotiation.
● Responding to change over
following a plan.
20. ● Our highest priority is to satisfy the
customer through early and
continuous delivery of valuable
software.
● Welcome changing requirements,
even late in development. Agile
processes harness change for the
customer's competitive advantage.
Project Management Methodologies
21. ● Deliver working software frequently,
from a couple of weeks to a couple
of months, with a preference to the
shorter timescale.
● Business people and developers
must work together daily
throughout the project.
Project Management Methodologies
22. ● Build projects around motivated
individuals. Give them the
environment and support they
need, and trust them to get the job
done.
● The most efficient and effective
method of conveying information to
and within a development team is
face-to-face conversation.
Project Management Methodologies
23. ● Working software is the primary
measure of progress.
● Agile processes promote
sustainable development. The
sponsors, developers, and users
should be able to maintain a
constant pace indefinitely.
Project Management Methodologies
24. ● Continuous attention to technical
excellence and good design
enhances agility.
● Simplicity--the art of maximizing the
amount of work not done--is
essential.
Project Management Methodologies
25. ● The best architectures,
requirements, and designs emerge
from self-organizing teams.
● At regular intervals, the team
reflects on how to become more
effective, then tunes and adjusts its
behavior accordingly.
Project Management Methodologies
31. Grand principles that generate no
action are mere vapor. Conversely,
specific practices in the
absence of guiding principles are
often inappropriately used.
34. Practices and Tools
● Enhances development speed.
● Reduce errors and conflicts.
● Team members can contribute
from anywhere.
● Helps in recovery in case of any
disaster.
● Tracks who, what, when, why
changes have been made.
35.
36. Practices and Tools
● Branching and merging.
● Committing.
● Diffing (reviewing differences).
● Conflicts.
37. ● Continuous Integration (CI): a set of
scripts executed every time a
change is made.
● Continuous Delivery (CD): the app is
also deployed continuously.
However, you trigger the
deployments manually.
● Continuous Deployment: similar to
CD. The difference is that changes
are deployed automatically
Practices and Tools
38.
39. ● Does this code change do what it
is supposed to do?
● Can this solution be optimized?
● Can a library, API or framework be
used or un-necessarily used?
● Does the change follow best
practices and architecture?
● Is there any logical errors?
Practices and Tools
40. ● Written in the programming
language of the system.
● Specifies the system at the
lowest level.
● Written before production code
(TDD).
● Executed as part of CI.
Practices and Tools
System Tests
Exploratory
Component Tests
Integration Tests
Unit Tests
41. Practices and Tools
● Written against individual component of
the system.
● Each component encapsulate business
rule(s).
● It passes input data to the component and
gathers the output. other components are
decoupled by mocking.
● IT covers the happy-path situation and
obvious corner cases.
System Tests
Exploratory
Component Tests
Integration Tests
Unit Tests
42. Practices and Tools
● These tests are for larger systems that have
many components.
● Specifies how well the components
communicate with each other.
● Any other components are decoupled
● They don not test business rules.
● They include performance and stress
testing.
● Executed infrequently.
System Tests
Exploratory
Component Tests
Integration Tests
Unit Tests
43. ● Tests the system as a whole.
● Written by system architects and
tech leads
● Executed infrequently.
● Testing coverage is about 10% as
it test the system construction not
the behavior.
Practices and Tools
System Tests
Exploratory
Component Tests
Integration Tests
Unit Tests
44. ● Manual tests (not automated
nor scripted).
● Explores the system for
unexpected behavior.
● Tests the system against
human interactions
Practices and Tools
System Tests
Exploratory
Component Tests
Integration Tests
Unit Tests
46. References and Resources
● Learning Agile - Andrew Stellman &
Jennifer Greene.
● Software Engineering at Google – Titus
Winters, Tom Manshreck and Hyrum
Wright.
● The Clean Coder – Robert C. Martin
● Peopleware: Productive Projects and
Teams - Tom DeMarco and Timothy Lister