A presentation to graduating students of Library and Information Science, Federal University, Oye-Ekiti, Nigeria on Tuesday, August 24, 2021. The central theme is getting the college grads inspired to think beyond their degrees as they transit to the larger society. A sub-theme is the touch on emerging technologies poised to change the world and the library and information science profession.
Curious about how to work abroad? You have more options than ever before. Find your path to an adventurous global career.
Slides from 8/18 workshop. www.globalmeschool.com
This is my original presentation at the Games:EDU08 North, reproduced from here:
http://www.slideshare.net/pixellab/gamesedu08-north-dr-mike-reddy
Audio available from:
http://staff.newport.ac.uk/mreddy01/audio/MR-games-edu08.mp3
Adaptable Designs for Agile Software DevelopmentHayim Makabee
Abstract: This talk introduces the concept of Adaptable Software Design, and explains why adaptability is essential for the development of complex software systems using Agile methods. The concepts are illustrated through practical software architecture approaches such as micro-services.
A presentation to graduating students of Library and Information Science, Federal University, Oye-Ekiti, Nigeria on Tuesday, August 24, 2021. The central theme is getting the college grads inspired to think beyond their degrees as they transit to the larger society. A sub-theme is the touch on emerging technologies poised to change the world and the library and information science profession.
Curious about how to work abroad? You have more options than ever before. Find your path to an adventurous global career.
Slides from 8/18 workshop. www.globalmeschool.com
This is my original presentation at the Games:EDU08 North, reproduced from here:
http://www.slideshare.net/pixellab/gamesedu08-north-dr-mike-reddy
Audio available from:
http://staff.newport.ac.uk/mreddy01/audio/MR-games-edu08.mp3
Adaptable Designs for Agile Software DevelopmentHayim Makabee
Abstract: This talk introduces the concept of Adaptable Software Design, and explains why adaptability is essential for the development of complex software systems using Agile methods. The concepts are illustrated through practical software architecture approaches such as micro-services.
Introduction to Event Sourcing and CQRS (IASA-IL)Vladik Khononov
Slides for my "Introduction to Event Sourcing and CQRS" session at the IASA-IL meeting.
Abstract:
Event sourcing is a pattern for modeling the application’s business logic. It states that all changes to application state should be defined and stored as a sequence of events.
Its advantages are many:
* Gives freedom to refactor the business logic, allowing better response to new requirements.
* Suitable for building scalable, highly concurrent, distributed systems.
* Stored events give the true history of a system, which is required by law in some industries.
* The system’s state can be reversed to any point in the past for retroactive debugging.
* The required infrastructure is simple - no monstrous databases are involved.
Vladik will also describe CQRS, an architecture that goes hand in hand with Event Sourcing.
In this lecture I will present a unified Agile process and techniques that allow for a seamless transition from the system engineering level to the SW engineering level in an iterative and evolutionary way. I will also show the benefits the unifying the processes of the two levels and of the resulting component based architecture. I will also talk on the architect’s role and this role evolves over time and will conclude with presenting a small but real life project example.
How to extend the shelf life of software and enable long-lived, adaptable software architectures.
Herzliya - July 2015 @
ILTAM - Israeli Users' Association of Advanced Technologies in Hi-Tec Integrated Systems
IASA - International Association of Software Architects
The concept of Antifragility was introduced by Nassim Taleb to describe systems that benefit from impacts and volatility.
In this talk we will discuss how this concept may be applied in the field of Software Design with the goal of developing Change-Resilient Systems.
In particular we will address two patterns which frequently appear in Antifragile systems:
1) The Barbell Strategy and the importance of the separation between high-level abstract elements and concrete implementation details.
2) The Componentization Strategy and its applications in SOA, Microservices and Software Product Lines.
Technical debt is a metaphor for the gap between the current state of
a software system and its hypothesized ‘ideal’ state. One of the significant and
under-investigated elements of technical debt is documentation debt, which
may occur when code is created without supporting internal documentation,
such as code comments. Studies have shown that outdated or lacking
documentation is a considerable contributor to increased costs of software
systems maintenance. The importance of comments is often overlooked by
software developers, resulting in a notably slower growth rate of comments
compared to the growth rate of code in software projects. This research aims to
explore and better understand developers’ reluctance to document code, and
accordingly to propose efficient ways of using persuasive technology to
encourage programmers to document their code. The results may assist software
practitioners and project managers to control and reduce documentation debt.
The Role of the Software Architect (short version)Hayim Makabee
Talk at the First Israeli Conference on Software Architecture
http://www.iltam.org/sw-arch2014/
Abstract:
In this talk Hayim will present the practical aspects of the role of the Software Architect, including the architect's contribution at the diverse stages of the software development life cycle, and the cooperation with the diverse stakeholders: Developers, Team Leaders, Project Managers, QA and Technical Writers.
Bio: Hayim Makabee was born in Rio de Janeiro. He immigrated to Israel in 1992 and completed his M.Sc. studies on Computer Sciences at the Technion. Since then he worked for several hi-tech companies, including also some start-ups. Currently he is a Research Engineer at Yahoo! Labs Haifa. He is also a co-founder of the International Association of Software Architects in Israel.
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard WorkJoseph Yoder
Big Ball of Mud (BBoM) architectures are viewed as the culmination of many design decisions that, over time, result in a system that is hodgepodge of steaming and smelly anti-patterns. It can be arguably claimed that one of the reasons for the growth and popularity of agile practices is partially due to the fact that the state of the art of software architectures was not that good. Being agile, with its focus on extensive testing and frequent integration, has shown that it can make it easier to deal with evolving architectures (possibly muddy) and keeping systems working while making significant improvements and adding functionality. Time has also shown that Agile practices are not sufficient to prevent or eliminate Mud. It is important to recognize what is core to the architecture and the problem at hand when evolving an architecture.
This talk will examine the paradoxes that underlie Big Balls of Mud, what causes them, and why they are so prominent. I’ll explore what agile practices can help us avoid or cope with mud. I’ll also explain why continuous delivery and TDD with refactoring is not enough to help ensure clean architecture and why it is important to understand what is core to the architecture and the problem at hand. Understanding what changes in the system and at what rates can help you prevent becoming mired in mud. By first understanding where a system’s complexities are and where it keeps getting worse, we can then work hard (and more intelligently) at sustaining the architecture. This can become a key value to the agile team. The results will leave attendees with practices and patterns that help clean your code (refactor) as well as keeping the code clean or from getting muddier.
Additionally, I’ll talk about some practices and patterns that help keep the code clean or from getting muddier. Some of these include: Testing, Divide & Conquer, Gentrification, Demolition, Quarantine, Refactoring, Craftmanship and the like.. The original Big Ball of Mud paper described some best practices such as SHEARING LAYERS and SWEEPING IT UNDER THE RUG as a way to help deal with muddy architectures. Additionally there are some other practices such as PAVING OVER THE WAGON TRAIL and WIPING YOUR FEET AT THE DOOR that can make code more habitable.
In the context of Iterative Software Development, we ask the question: How much design should be done "up front"?
We propose the approach of Adaptable Design Up Front, which focuses on capturing the essential aspects of the system and plans for extensibility and adaptability.
The SOLID Principles Illustrated by Design PatternsHayim Makabee
The goal of the SOLID design principles is to improve the Separation of Concerns, through weaker Coupling and stronger Cohesion. The main consequence should be software systems that are easier to maintain and to extend. However the definition of the SOLID principles is quite abstract, and some developers find it difficult to apply them in practice. In my talk I will show how well-known Design Patterns illustrate the application of the SOLID principles, and also show examples of how to follow these principles to Refactor and improve existing designs.
About the speaker:
Hayim Makabee was born in Rio de Janeiro. He immigrated to Israel in 1992 and completed his M.Sc. studies on Computer Sciences at the Technion. Since then he worked for several hi-tech companies, including also some start-ups. Currently he is a co-founder of the International Association of Software Architects (IASA) in Israel. Hayim is the author of a book about Object-Oriented Programming and has published papers in the fields of Software Engineering, Distributed Systems and Genetic Algorithms.
To document or not to document? An exploratory study on developers' motivatio...Hayim Makabee
Abstract: Technical debt represents the situation in a project where developers accept compromises in one dimension of a system in order to meet urgent demands in other dimensions. These compromises incur a “debt”, on which “interest” has to be paid to maintain the long-term health of the project. One of the elements of technical debt is documentation debt due to under-documentation of the evolving system. In this exploratory study, our goal is to examine the different aspects of developers' motivation to document code. Specifically, we aim to identify the motivating and hindering aspects of documentation as perceived by the developers. The motivating aspects of code documenting we find include improving code comprehensibility, order, and quality. The hindering aspects include developers’ perception of documenting as a tedious, difficult, and time consuming task that interrupts the coding process. These findings may serve as a basis for developing guidelines toward improving documentation practices and encouraging developers to document their code thus reducing documentation debt.
Adaptive Object Model - IASA IL Meeting on Software Evolution (3/2014)Atzmon Hen-Tov
Lecture on AOM (Adaptive-Object-Model) in the IASA Israel meeting held on April 2, 2014.
The animated version -
http://prezi.com/vjfqz2rth7ct/?utm_campaign=share&utm_medium=copy&rc=ex0share
Unit tests are great, they help a developer gain control over his code and catch bugs and regression issues.
Test Driven Development is a methodology that uses unit tests but it's not about writing unit tests - in fact the tests are only a design tool.
TDD is a methodology that solves problems in an iterative way, it's about emergent design that creates a maintainable solution.
In this session I'll talk about common mistakes and misconceptions, how to benefit from TDD and show how to design your code using unit tests.
The code for this talk can be found on GitHub: https://github.com/dhelper/DesignWIthTests
Extracting Quality Scenarios from Functional ScenariosProf. Amir Tomer
Discovering quality attributes by applying "how well?" questions to functions in Use-Case structured scenarios, and then enriching the software architecture with additional functionality.
The quality of software systems may be expressed as a collection of Software Quality Attributes. When the system requirements are defined, it is essential also to define what is expected regarding these quality attributes, since these expectations will guide the planning of the system architecture and design.
Software quality attributes may be classified into two main categories: static and dynamic. Static quality attributes are the ones that reflect the system’s structure and organization. Examples of static attributes are coupling, cohesion, complexity, maintainability and extensibility. Dynamic attributes are the ones that reflect the behavior of the system during its execution. Examples of dynamic attributes are memory usage, latency, throughput, scalability, robustness and fault-tolerance.
Following the definitions of expectations regarding the quality attributes, it is essential to devise ways to measure them and verify that the implemented system satisfies the requirements. Some static attributes may be measured through static code analysis tools, while others require effective design and code reviews. The measuring and verification of dynamic attributes requires the usage of special non-functional testing tools such as profilers and simulators.
In this talk I will discuss the main Software Quality attributes, both static and dynamic, examples of requirements, and practical guidelines on how to measure and verify these attributes.
Although everyone is subject to losing their jobs, nobody is expected to encounter a letter of redundancy over the table. Besides losing jobs, people have struggled with getting a new job because they usually are not aware of how, when, and where they will find a new job. Most of them are not prepared to face an unemployment moment nor to live thinking about the effects of losing a job in their life, especially among their family and friends. Fortunately, there are some important steps people can take in order to overcome this problem and improve their chances of getting a job: education, networking and job hunting.
Introduction to Event Sourcing and CQRS (IASA-IL)Vladik Khononov
Slides for my "Introduction to Event Sourcing and CQRS" session at the IASA-IL meeting.
Abstract:
Event sourcing is a pattern for modeling the application’s business logic. It states that all changes to application state should be defined and stored as a sequence of events.
Its advantages are many:
* Gives freedom to refactor the business logic, allowing better response to new requirements.
* Suitable for building scalable, highly concurrent, distributed systems.
* Stored events give the true history of a system, which is required by law in some industries.
* The system’s state can be reversed to any point in the past for retroactive debugging.
* The required infrastructure is simple - no monstrous databases are involved.
Vladik will also describe CQRS, an architecture that goes hand in hand with Event Sourcing.
In this lecture I will present a unified Agile process and techniques that allow for a seamless transition from the system engineering level to the SW engineering level in an iterative and evolutionary way. I will also show the benefits the unifying the processes of the two levels and of the resulting component based architecture. I will also talk on the architect’s role and this role evolves over time and will conclude with presenting a small but real life project example.
How to extend the shelf life of software and enable long-lived, adaptable software architectures.
Herzliya - July 2015 @
ILTAM - Israeli Users' Association of Advanced Technologies in Hi-Tec Integrated Systems
IASA - International Association of Software Architects
The concept of Antifragility was introduced by Nassim Taleb to describe systems that benefit from impacts and volatility.
In this talk we will discuss how this concept may be applied in the field of Software Design with the goal of developing Change-Resilient Systems.
In particular we will address two patterns which frequently appear in Antifragile systems:
1) The Barbell Strategy and the importance of the separation between high-level abstract elements and concrete implementation details.
2) The Componentization Strategy and its applications in SOA, Microservices and Software Product Lines.
Technical debt is a metaphor for the gap between the current state of
a software system and its hypothesized ‘ideal’ state. One of the significant and
under-investigated elements of technical debt is documentation debt, which
may occur when code is created without supporting internal documentation,
such as code comments. Studies have shown that outdated or lacking
documentation is a considerable contributor to increased costs of software
systems maintenance. The importance of comments is often overlooked by
software developers, resulting in a notably slower growth rate of comments
compared to the growth rate of code in software projects. This research aims to
explore and better understand developers’ reluctance to document code, and
accordingly to propose efficient ways of using persuasive technology to
encourage programmers to document their code. The results may assist software
practitioners and project managers to control and reduce documentation debt.
The Role of the Software Architect (short version)Hayim Makabee
Talk at the First Israeli Conference on Software Architecture
http://www.iltam.org/sw-arch2014/
Abstract:
In this talk Hayim will present the practical aspects of the role of the Software Architect, including the architect's contribution at the diverse stages of the software development life cycle, and the cooperation with the diverse stakeholders: Developers, Team Leaders, Project Managers, QA and Technical Writers.
Bio: Hayim Makabee was born in Rio de Janeiro. He immigrated to Israel in 1992 and completed his M.Sc. studies on Computer Sciences at the Technion. Since then he worked for several hi-tech companies, including also some start-ups. Currently he is a Research Engineer at Yahoo! Labs Haifa. He is also a co-founder of the International Association of Software Architects in Israel.
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard WorkJoseph Yoder
Big Ball of Mud (BBoM) architectures are viewed as the culmination of many design decisions that, over time, result in a system that is hodgepodge of steaming and smelly anti-patterns. It can be arguably claimed that one of the reasons for the growth and popularity of agile practices is partially due to the fact that the state of the art of software architectures was not that good. Being agile, with its focus on extensive testing and frequent integration, has shown that it can make it easier to deal with evolving architectures (possibly muddy) and keeping systems working while making significant improvements and adding functionality. Time has also shown that Agile practices are not sufficient to prevent or eliminate Mud. It is important to recognize what is core to the architecture and the problem at hand when evolving an architecture.
This talk will examine the paradoxes that underlie Big Balls of Mud, what causes them, and why they are so prominent. I’ll explore what agile practices can help us avoid or cope with mud. I’ll also explain why continuous delivery and TDD with refactoring is not enough to help ensure clean architecture and why it is important to understand what is core to the architecture and the problem at hand. Understanding what changes in the system and at what rates can help you prevent becoming mired in mud. By first understanding where a system’s complexities are and where it keeps getting worse, we can then work hard (and more intelligently) at sustaining the architecture. This can become a key value to the agile team. The results will leave attendees with practices and patterns that help clean your code (refactor) as well as keeping the code clean or from getting muddier.
Additionally, I’ll talk about some practices and patterns that help keep the code clean or from getting muddier. Some of these include: Testing, Divide & Conquer, Gentrification, Demolition, Quarantine, Refactoring, Craftmanship and the like.. The original Big Ball of Mud paper described some best practices such as SHEARING LAYERS and SWEEPING IT UNDER THE RUG as a way to help deal with muddy architectures. Additionally there are some other practices such as PAVING OVER THE WAGON TRAIL and WIPING YOUR FEET AT THE DOOR that can make code more habitable.
In the context of Iterative Software Development, we ask the question: How much design should be done "up front"?
We propose the approach of Adaptable Design Up Front, which focuses on capturing the essential aspects of the system and plans for extensibility and adaptability.
The SOLID Principles Illustrated by Design PatternsHayim Makabee
The goal of the SOLID design principles is to improve the Separation of Concerns, through weaker Coupling and stronger Cohesion. The main consequence should be software systems that are easier to maintain and to extend. However the definition of the SOLID principles is quite abstract, and some developers find it difficult to apply them in practice. In my talk I will show how well-known Design Patterns illustrate the application of the SOLID principles, and also show examples of how to follow these principles to Refactor and improve existing designs.
About the speaker:
Hayim Makabee was born in Rio de Janeiro. He immigrated to Israel in 1992 and completed his M.Sc. studies on Computer Sciences at the Technion. Since then he worked for several hi-tech companies, including also some start-ups. Currently he is a co-founder of the International Association of Software Architects (IASA) in Israel. Hayim is the author of a book about Object-Oriented Programming and has published papers in the fields of Software Engineering, Distributed Systems and Genetic Algorithms.
To document or not to document? An exploratory study on developers' motivatio...Hayim Makabee
Abstract: Technical debt represents the situation in a project where developers accept compromises in one dimension of a system in order to meet urgent demands in other dimensions. These compromises incur a “debt”, on which “interest” has to be paid to maintain the long-term health of the project. One of the elements of technical debt is documentation debt due to under-documentation of the evolving system. In this exploratory study, our goal is to examine the different aspects of developers' motivation to document code. Specifically, we aim to identify the motivating and hindering aspects of documentation as perceived by the developers. The motivating aspects of code documenting we find include improving code comprehensibility, order, and quality. The hindering aspects include developers’ perception of documenting as a tedious, difficult, and time consuming task that interrupts the coding process. These findings may serve as a basis for developing guidelines toward improving documentation practices and encouraging developers to document their code thus reducing documentation debt.
Adaptive Object Model - IASA IL Meeting on Software Evolution (3/2014)Atzmon Hen-Tov
Lecture on AOM (Adaptive-Object-Model) in the IASA Israel meeting held on April 2, 2014.
The animated version -
http://prezi.com/vjfqz2rth7ct/?utm_campaign=share&utm_medium=copy&rc=ex0share
Unit tests are great, they help a developer gain control over his code and catch bugs and regression issues.
Test Driven Development is a methodology that uses unit tests but it's not about writing unit tests - in fact the tests are only a design tool.
TDD is a methodology that solves problems in an iterative way, it's about emergent design that creates a maintainable solution.
In this session I'll talk about common mistakes and misconceptions, how to benefit from TDD and show how to design your code using unit tests.
The code for this talk can be found on GitHub: https://github.com/dhelper/DesignWIthTests
Extracting Quality Scenarios from Functional ScenariosProf. Amir Tomer
Discovering quality attributes by applying "how well?" questions to functions in Use-Case structured scenarios, and then enriching the software architecture with additional functionality.
The quality of software systems may be expressed as a collection of Software Quality Attributes. When the system requirements are defined, it is essential also to define what is expected regarding these quality attributes, since these expectations will guide the planning of the system architecture and design.
Software quality attributes may be classified into two main categories: static and dynamic. Static quality attributes are the ones that reflect the system’s structure and organization. Examples of static attributes are coupling, cohesion, complexity, maintainability and extensibility. Dynamic attributes are the ones that reflect the behavior of the system during its execution. Examples of dynamic attributes are memory usage, latency, throughput, scalability, robustness and fault-tolerance.
Following the definitions of expectations regarding the quality attributes, it is essential to devise ways to measure them and verify that the implemented system satisfies the requirements. Some static attributes may be measured through static code analysis tools, while others require effective design and code reviews. The measuring and verification of dynamic attributes requires the usage of special non-functional testing tools such as profilers and simulators.
In this talk I will discuss the main Software Quality attributes, both static and dynamic, examples of requirements, and practical guidelines on how to measure and verify these attributes.
Although everyone is subject to losing their jobs, nobody is expected to encounter a letter of redundancy over the table. Besides losing jobs, people have struggled with getting a new job because they usually are not aware of how, when, and where they will find a new job. Most of them are not prepared to face an unemployment moment nor to live thinking about the effects of losing a job in their life, especially among their family and friends. Fortunately, there are some important steps people can take in order to overcome this problem and improve their chances of getting a job: education, networking and job hunting.
EF Go Global - How to get the most of your internship abroadEF Education First
Check out this webinar with Stefan Sennekamp, the Global Intern at EF. Find out about how to make your internship abroad an unforgettable and valuable experience.
Working Abroad - Tips, Tricks, and How To Land a JobTroy Erstling
Do you want to work abroad and gain international experience? This presentation will give you a clear idea of what types of opportunities are out there for you, and what you can do to make getting a job abroad a reality.
Making a presentation on these events will ensure that you attract the right kind of attention for your career moves. Our blog post today will focus on 5 vital steps that will help you sail through any academic or professional conference. These steps are equally applicable to national as well as international academic conferences.
To know more click on the link givenbelow:
http://www.texilaconference.org/blog/5-steps-to-prepare-for-an-academic-conference/
Making a presentation on these events will ensure that you attract the right kind of attention for your career moves. Our blog post today will focus on 5 vital steps that will help you sail through any academic or professional conference. These steps are equally applicable to national as well as international academic conferences.
To know more click on the link given below:
http://www.texilaconference.org/blog/5-steps-to-prepare-for-an-academic-conference/
This is the 2019 edition of the "How to get a job" aka Career advice. This deck talks about the key things employers are interested in and things you as a student can do to make yourself more employable.
NOTE: These slides are meant as an accompaniment to the talk which provided more context and examples.
Networking is overrated! You must invest in your Reputation!
Speaker: Hayim Makabee, CTO at Dooiu
In this talk Hayim will share useful guidelines about how to manage and develop your personal reputation.
Hayim will focus on providing practical advice about how to create opportunities by generating value to the people in your professional network.
In general the goal of networking is to create new opportunities. These may be business opportunities, partnership opportunities or job opportunities. But what really creates new opportunities is our reputation.
Having a good reputation means that:
People will remember you. They will remember you for many years since they had the last interaction with you.
People will recommend you. They will introduce you to their own contacts whenever they think you may contribute.
People will constantly offer you new opportunities. They will invite you when they have a job opening, or when they need a partner or an adviser.
About the speaker:
Hayim Makabee is the CTO of Dooiu, an innovative Social Fintech. Hayim has over 25 years of experience in the Israeli high-tech industry, having held leadership roles as a Software Architect and Machine Learning specialist. He is also a mentor at Gvahim, where he helps new Olim to develop their professional careers in Israel. Hayim holds a M.Sc. in Computer Science from Technion and is the author of a book and several scientific publications.
About Dooiu:
Dooiu is a platform from which two or more people can make calls and exchange knowledge for money. Dooiu is a solution for communicating to each other and making payments in a simple and clear way. It allows those who sell their time as teachers, consultants, or experts to increase their income and grow professionally. Also, it enables any person who wants to consult on any topic to pay a fair price for the services received.
How to Job-search covers what you can do to get the most out of your job search to secure a job.
For more information about how we can help you with your job-search call us on: 0121 707 0550 or e-mail: info@pathwaygroup.co.uk
Similar to Aliyah: Looking for a hi-tech job in Israel (20)
Applications of Machine Learning - INDT WebinarHayim Makabee
INDT Webinar about Applications of Machine Learning.
In these slides Hayim Makabee presents several applications of Machine Learning and their impact on our lives, including Recommender Systems and Autonomous Vehicles, with several examples of recent innovations in the fields of Industry, Health and Agriculture.
In these slides Hayim Makabee presents several applications of Machine Learning and their impact on our lives, including Recommender Systems and Autonomous Vehicles.
In these slides Hayim Makabee explains how we applied the Blue Ocean Strategy to plan the main features of the KashKlik platform and its business model.
Managing your Reputation Gvahim WebinarHayim Makabee
Useful guidelines about how to manage and develop your personal reputation. Practical advice about how to create opportunities by generating value to the people in your professional network. Presented by Hayim Makabee as a Gvahim Webinar on June 2020.
Useful guidelines about how to manage and develop your personal reputation. Practical advice about how to create opportunities by generating value to the people in your professional network.
The Story of a Young Oleh (Immigrant in Israel)Hayim Makabee
The Story of a Young Oleh (Immigrant in Israel) by Hayim Makabee
Presentation prepared for the Taglit groups (August 2018)
Taglit-Birthright Israel, also known as Birthright Israel or simply Birthright, is a not-for-profit educational organization that sponsors free ten-day heritage trips to Israel for young adults of Jewish heritage, aged 18–32.
Software Architecture for Agile DevelopmentHayim Makabee
Slides of a workshop given at Herzliya on June/2017, organized by ILTAM and IASA Israel. This workshop was dedicated to the topic of Software Architecture in the context of Agile Development. We answered the question: “How much Design Up Front should be done in an Agile project?” Hayim presented his approach of Adaptable Design Up Front (ADUF), describing its rationale, applications in practice and comparison to other approaches such as Emergent Design. He explained why adaptability is essential for the development of complex software systems using Agile methods. The concepts were illustrated through practical software architecture approaches such as micro-services and examples of real software systems that were developed in the past. The workshop also included an exercise on the definition and evolution of the design of an interesting system.
To document or not to document? An exploratory study on developers' motivatio...Hayim Makabee
Abstract: Technical debt represents the situation in a project where developers accept compromises in one dimension of a system in order to meet urgent demands in other dimensions. These compromises incur a “debt”, on which “interest” has to be paid to maintain the long-term health of the project. One of the elements of technical debt is documentation debt due to under-documentation of the evolving system. In this exploratory study, our goal is to examine the different aspects of developers' motivation to document code. Specifically, we aim to identify the motivating and hindering aspects of documentation as perceived by the developers. The motivating aspects of code documenting we find include improving code comprehensibility, order, and quality. The hindering aspects include developers’ perception of documenting as a tedious, difficult, and time consuming task that interrupts the coding process. These findings may serve as a basis for developing guidelines toward improving documentation practices and encouraging developers to document their code thus reducing documentation debt.
Title: The Role of the Software Architect
Speaker: Hayim Makabee, co-founder of the Israeli Chapter of the International Association of Software Architects (IASA)
Abstract:
In this talk Hayim will present the practical aspects of the role of the Software Architect, including:
- The four areas of expertise: Design, Domain, Technology and Methodology.
- The cooperation with stakeholders: Developers, Team Leaders, Project Managers, QA and Technical Writers.
Understanding the expected areas of expertise is essential for the architect to develop his/her professional skills.
Understanding how to cooperate with the diverse stakeholders is essential to improve the architect's impact and effectiveness.
Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...Hayim Makabee
Technical debt is a metaphor for the gap between the current state of a software system and its hypothesized ‘ideal’ state. One of the significant and under-investigated elements of technical debt is documentation debt, which
may occur when code is created without supporting internal documentation, such as code comments. Studies have shown that outdated or lacking documentation is a considerable contributor to increased costs of software
systems maintenance. The importance of comments is often overlooked by software developers, resulting in a notably slower growth rate of comments compared to the growth rate of code in software projects. This research aims to explore and better understand developers’ reluctance to document code, and accordingly to propose efficient ways of using persuasive technology to
encourage programmers to document their code. The results may assist software practitioners and project managers to control and reduce documentation debt.
The Benefits of Temporary Part-Time Jobs for StudentsSnapJob
SnapJob is revolutionizing the way people connect with work opportunities and find talented professionals for their projects. Find temporary part-time jobs that fit your schedule and skills. Browse our listings and apply online today to secure flexible work opportunities that offer the perfect balance between career and personal life.
Watch this expert-led webinar to learn effective tactics that high-volume hiring teams can use right now to attract top talent into their pipeline faster.
Accelerating AI Integration with Collaborative Learning - Kinga Petrovai - So...SocialHRCamp
Speaker: Kinga Petrovai
You have the new AI tools, but how can you help your team use them to their full potential? As technology is changing daily, it’s hard to learn and keep up with the latest developments. Help your team amplify their learning with a new collaborative learning approach called the Learning Hive.
This session outlines the Learning Hive approach that sets up collaborations that foster great learning without the need for L&D to produce content. The Learning Hive enables effective knowledge sharing where employees learn from each other and apply this learning to their work, all while building stronger community bonds. This approach amplifies the impact of other learning resources and fosters a culture of continuous learning within the organization.
Becoming Relentlessly Human-Centred in an AI World - Erin Patchell - SocialHR...SocialHRCamp
Speaker: Erin Patchell
Imagine a world where the needs, experiences, and well-being of people— employees and customers — are the focus of integrating technology into our businesses. As HR professionals, what tools exist to leverage AI and technology as a force for both people and profit? How do we influence a culture that takes a human-centred lens?
3. 1st Decision: You made Aliyah!
Several possible reasons:
◦ Ideals, Zionism, Jewish Identity?
◦ Improving quality of life?
◦ Make a change in your life?
All reasons are legitimate, but…
Your next steps should be coherent.
4. Decision: Work or study?
Having an Israeli degree would make
everything much simpler:
◦ Recognized diploma.
◦ Enough time to learn Hebrew well.
◦ Making lots of friends and contacts.
◦ Getting used to Israeli mentality.
◦ Low cost of living in students dorms.
◦ Scholarship is sufficient income.
5. Decision: Where to work?
Main hi-tech centers in Israel:
◦ Tel-Aviv
◦ Herzliya
◦ Raanana
◦ Petah-Tikwah
◦ Jerusalem (Malkha, Har Hotzvim)
◦ Haifa – Matam
◦ Yokneam
See: http://en.wikipedia.org/wiki/Silicon_Wadi
8. Decision: Company size?
Big companies:
◦ Stability.
◦ Promotions may take time.
◦ Work load more reasonable (8-10).
Startups:
◦ No stability.
◦ Promotions may be fast.
◦ Stressful work load (10-12).
◦ Special packages (stocks + options).
9. Decision: Technology
Use your current skills:
◦ Previous experience is valuable.
◦ Is there demand for these skills?
◦ Are they becoming obsolete?
Learn new skills:
◦ Previous experience less relevant.
◦ Takes time to learn.
◦ May be more valuable in the future.
10. No offense, please, but…
Are you able to write a check in Hebrew?
סבלנות!
Decision: Your own startup?
11. On Realistic Expectations
As a New Oleh, finding a good job in
Israel, in your profession, is already a
great achievement.
Having the salary by month’s end will
give you time and tranquility to:
◦ Adapt to your new life in Israel.
◦ Improve your Hebrew skills.
◦ Make long term plans.
12. How to find a job?
Placement agencies.
LinkedIn groups.
Job search websites.
Job fairs.
Friends.
17. Friend-bring-friend
Most people in Israel find jobs through
friends and friends-of-friends
recommendations.
Where can you make friends?
Events!
Look for professional meetings in:
◦ Meetup: http://www.meetup.com/
◦ Eventbrite: https://www.eventbrite.com/
18. Making Connections in Israel
People on LinkedIn who are very likely
to accept invitations to connect:
◦ Head-hunters.
◦ Consultants.
◦ Bloggers.
◦ Speakers in meetings and conferences.
◦ People with 500+ connections.
19. Joining LinkedIn Groups
Must: Join several LinkedIn groups for
job search in Israel.
Also join Israeli groups that fit your:
◦ Professional experience.
◦ Main interests.
◦ Main skills.
These groups are a great place to
make new connections.
21. Meeting Israeli CS Students
Most Computer Sciences students in
Israel start working much before they
end their studies.
By talking to CS students you may find
out which companies are hiring and
what technologies they are using.
CS faculties always have message
boards with lots of job offers.
Try also to listen to a lecture!
23. You must contact the veterans!
The best way to learn about the real
difficulties and opportunities in Israel is
to talk to “veteran Olim”.
Find people:
◦ From your country of origin.
◦ With similar education.
◦ With similar professional skills.
◦ That made Aliyah 5 years ago.
24. The Job Market is Hot!
מסיכוםרבעון3שלשנת2014לעומתהרבעון
המקביללואשתקדעולהכיברבעוןזהנרשמו
ירידותחדותשלקרובל-50אחוזיםבמספר
קורותהחייםשנשלחולמשרותבתחומים
המוביליםשלענףההייטקבישראל:ירידהבת
48אחוזיםבהפנייתקורותחייםלמשרות
בתחוםהתוכנהוירידהבת49אחוזים
בהפנייתקורותחייםלמשרותבתחום
האינטרנט.כךעולהמניתוחבסיסנתונימאגר
המידעשלJobinfo.
29. The first job is special
Look at your first job in Israel as a
place to get prepared for future jobs.
The first job doesn’t need to be your
“dream job”, but it should:
◦ Give you a reasonable income.
◦ Give you relevant experience.
◦ Serve as a reference for future jobs.
After the first job, it should be much
easier to find the second job.