Naresh Jain

Naresh Jain

Founder @ ConfEngine.com
location_on India
Twitter Personal Profile Website

Member since 3 years

Naresh Jain

Geek...Consultant...Conference Producer...Startup Founder…struggling to stay up-to-date with technology innovation. Null Process Evangelist.

Naresh Jain is an internationally recognized Technology & Product Development Expert. Over the last decade, he has helped streamline the product development practices at many Fortune 500 companies like Google, Amazon, HP, Siemens Medical, GE Energy, Schlumberger, EMC, CA Technologies, to name a few clients. These days, he is more focused on engineering excellence and product innovation. In a nutshell, hire him as a consultant/mentor, if your entire organization wants to move beyond the Agile and Lean mindset. Learn more about his expert services.

Naresh Jain's Startup Icons

Currently Naresh is building two tech-startup and mentoring various other startups in India. Part of his time is also dedicated to help Software companies as an Agile/Lean Coach/Consultant. From Organizational Transformation to enhanced Developer productivity, Naresh helps organizations embrace, scale, sustain and go beyond the essential Agile and Lean thinking.

Agile Software Community of India

Naresh founded the Agile Software community of India, a registered non-profit society to evangelize Agile, Lean and other Light-weight Software Development methods in India. He is responsible for creating and organising 50+ international conferences including the Functional Conf, Simple Design And Testing Conference (SDTConf), Agile Coach Camp, Selenium Conf India, jQuery and Open Web Conference and Eclipse Summit India. He started many Agile User Groups including the Agile Philly User Group and groups in India.

In recognition of his accomplishments, in 2007 the Agile Alliance awarded Naresh with the Gordon Pask Award for contributions to the Agile Community.

Learn more about Naresh at http://nareshjain.com 

 
  • 3 favorite_border Naresh Jain 0forum

    Unleashing the Power of Automated Refactoring with JDT

    Naresh Jain
    Naresh Jain
    schedule 1 month ago
    45 mins
    Demonstration
    Intermediate

    Refactoring is a series of small steps, each of which changes the program’s internal structure without changing its external behaviour. Refactoring, as a tool, to automate behaviour-preserving transformations to source code are not only very popular in agile development environments, but have been widely established as a cornerstone of the daily software development process, regardless of the methodology being used. Most major development environments such as Eclipse offer a set of powerful refactoring to substantially increase development productivity. 

    In this live demo, I’ll show 

    • the real value of refactoring,
    • how we practice it safely,
    • when and why we refactor,
    • the power of refactoring tools and
    • when we avoid refactoring.

    I’ll be using two real-world examples of refactoring and sharing what I’ve learned about this important practice of the last 15 years.

     
  • 2 favorite_border Naresh Jain 0forum

    Q & A with the Selenium Committee

    Naresh Jain
    Naresh Jain
    schedule 2 months ago
    45 mins
    Keynote
    Intermediate

    Q & A with the Selenium Committee

     
  • 6 favorite_border Kumar Pratyush 0forum

    Performance Testing a Mobile App Used by 100M Users

    Kumar Pratyush
    Kumar Pratyush
    Naresh Jain
    Naresh Jain
    schedule 2 months ago
    45 mins
    Case Study
    Intermediate

    Hike is used by 100 Million users and many of our users have cheap smart phone (~ $120 USD) that can install no more than 3 mobile apps.

    So the questions is: Should testing of app be limited to its functionality? At Hike, we believe "Performance is Queen!" For our users, if we misuse the critical resources such as Battery, CPU, Network and Memory, its a deal-breaker. Hence pref-testing is very important.

    During the initial days of Hike, we were very reactive and only did (manual) perf testing, when our users reported issues.

    Now, every Sprint (2 weeks) and every public release (monthly), we run our automated perf tests. We measure our app's performance using several app specific use-cases on 4 key areas:

    • CPU,
    • Memory,
    • Battery and
    • Network (data consumption.)

    Hike's CPU Utilization

    We also benchmark the following scenarios for app latency:

    • App launch time upon Force Stop
    • App launch time upon Force Kill
    • App's busiest screen openning time
    • Scrolling latency in different parts of the app
    • Contact loading time in Compose screen

    Hike App Benchmark

    We still have a long way to go in terms of our pref-testing journey at Hike. But we feel, we've some key learnings, which would be worth while to share with the community. Join us, for a fast paced perf-testing session.

     
  • 6 favorite_border Vivek Upreti 0forum

    Cross-platform, Multi-device Instant Communication Testing in Parallel using Appium and Docker

    Vivek Upreti
    Vivek Upreti
    Naresh Jain
    Naresh Jain
    schedule 3 months ago
    45 mins
    Demonstration
    Intermediate

    Today over 100 million users share over 40 billion messages per month on Hike. Its not just simple 1:1 chat messages. Users can do a VoIP call or share rich multi-media content in 8 different languages in group chats with hundreds of members. User can transfer large (upto 100 MB) file using Wifi-Direct .i.e. device to device file transfer without using Internet. And many more features. How do you ensure that you can roll out a release every month without breaking any of these features?

    With such a large user based, which is very sensitive to frequent upgrades due to data consumption cost, rigorously testing the app becomes extremely critical.

    When we started our automation journey in 2014, we were looking for a device lab which can simplify our testing effort. However we gave up and ended up building our own setup. The reason being, we require multiple devices that can communicate with each other for a single test. And we have 6000+ such tests, which we want to run in parallel. While many device labs allow you to run tests in parallel, they don't allow the devices to communicate with each other. Also its not possible to run the same test across multiple devices. Imagine testing a group-chat flow with photo sharing or imagine the device to device file transfer using hotspot. How would you test these features?

     

    If this interests you, join us and we'll share our learning trying to achieve this at Hike.

     
  • 4 favorite_border Naresh Jain 0forum

    Test Driving a React.js UI Component with Jasmine

    Naresh Jain
    Naresh Jain
    schedule 4 months ago
    45 mins
    Demonstration
    Intermediate

    Over the past decade, eXtreme Programming practices like Test-Driven Development (TDD) & Behaviour Driven Developer (BDD), Refactoring, Continuous Integration and Automation have fundamentally changed software development processes and inherently how engineers work. While TDD has seen a great adoption on server side, developers still find it hard to apply TDD for developing UI components.

    In code walk-thru where Naresh will build a web commenting and discussion feature (like Disqus) in React.js, 100% test driven. He will also demonstrate how TDD will help us drive an object-functional design to strike a pragmatic balance between the Object-Oriented and Functional Programming paradigms.

     
  • 1 favorite_border Naresh Jain 0forum

    The Decline and Fall of Agile - Antifragile Mindset to Rescue

    Naresh Jain
    Naresh Jain
    schedule 4 months ago
    45 mins
    Talk
    Intermediate

    What started off as a trial-and-error approach to improve the state of software development by a bunch of tinkerers, is today dominated by management consultants, "Thou-Shall" codified frameworks and rigid, expensive tools. Over the last 20 years, we've gone from, "I'm not sure, let's try this in a small-safe environment" to "you/your-team sucks; you guys have a very poor agile maturity because you are not doing _x_y_z_ (not conforming to the standards)." Along the way, we've lost the purpose of being agile .i.e. to embrace uncertainty and simplicity. Instead we've been forced to believe that consistency via top-down standardisation and predictability by increasing the rigour on process is our eternal quest. Anything that sounds simple and works 80% of the cases is discarded as being naive. What once drove thought-leader into agile, is now driving them insane. This is the unfortunate fate of Agile.

    Luckily there has been some fresh perspectives from Nassim Taleb, author of Antifragile. His work explains how some things benefit from shocks; they thrive and grow when exposed to volatility, randomness, disorder, and stressors and love adventure, risk, and uncertainty. More importantly why antifragility is beyond resilience or robustness.

    In this talk, I'll use some of Nassim's thoughts (and some of my own) to explain what is wrong with our current approach to Agile and how we can bring life back into Agile. Particularly how we can leverage Volatility, Uncertainty, Complexity, and Ambiguity to make product development more antifragile.

     
  • 9 favorite_border Naresh Jain 0forum

    Dark Side of Collaboration

    Naresh Jain
    Naresh Jain
    schedule 4 months ago
    45 mins
    Talk
    Advanced

    On Agile teams, collaboration is the way of life. Our leaders want their team members to work closely with each other, have shared goals and even think as one entity. Why? Because we believe that collaboration leads to happier, more productive teams that can build innovative products/services.

    It's strange that companies use the word collaboration very tightly with innovation. Collaboration is based on consensus building, which rarely leads to visionary or revolutionary products/services. Innovative/disruptive concepts require people to independently test out divergent ideas without getting caught up in collaborative boardroom meetings.

    In this presentation, Naresh Jain explores the scary, unspoken side of collaboration and explains in what context, collaboration can be extremely important; and when it can get in the way or be a total waste of time.

     
  • 3 favorite_border Naresh Jain 0forum

    Dark Side of Collaboration

    Naresh Jain
    Naresh Jain
    schedule 7 months ago
    45 mins
    Keynote
    Advanced

    On Agile teams, collaboration is the way of life. Our leaders want their team members to work closely with each other, have shared goals and even think as one entity. Why? Because we believe that collaboration leads to happier, more productive teams that can build innovative products/services.

    It's strange that companies use the word collaboration very tightly with innovation. Collaboration is based on consensus building, which rarely leads to visionary or revolutionary products/services. Innovative/disruptive concepts require people to independently test out divergent ideas without getting caught up in collaborative boardroom meetings.

    In this presentation, Naresh Jain explores the scary, unspoken side of collaboration and explains in what context, collaboration can be extremely important; and when it can get in the way or be a total waste of time.

     
  • 2 favorite_border Naresh Jain 0forum

    MVP Design Hacks

    Naresh Jain
    Naresh Jain
    schedule 7 months ago
    45 mins
    Talk
    Intermediate

    A successful startup/product company needs to master the art of validating early product ideas quickly and effectively. Whether you are building a product, service or a new feature, the two most important questions to find out early are:

    • are we solving the right problem?
    • if yes, how do we pitch the idea to the target customer to generate a favourable action?

    During this session, we'll focus on various safe-fail experimentation techniques used by Lean Startups for quickly identifying and validating the customer's value hypothesis, without having to build the real product. You will leave this session equipped with various MVP design techniques, that will allow you to rapidly discover a viable product/service that delights your customers, without spending a lot of time and effort.

    Traditionally, entrepreneurs believed that the only way to test their product/service hypothesis was to build the best-in-class product/service in that category, launch it, and then pray. Most often, products/services fail, not because they cannot be built or delivered. But because, they lack the market-fitment and customer appeal.

    To avoid these risks, these days startups are focusing on building a "Minimum Viable Product" (MVP), a product that includes just enough core features to allow useful feedback from early adopters. This reduces the time to market and allows the company to build subsequent customer-driven versions of the product. Hence mitigating the likelihood of wasting time on features that nobody wants. MVPs are typically deployed to a subset of customers, such as early adopters that are more forgiving, more likely to give valuable feedback.

    However the problem with MVPs is that companies still spend too much time building stuff and very little time learning. Don't forget the purpose of MVP is validated learning NOT building. This session will give you ideas on how to quickly formulate and test your value and growth hypothesis in a scientific framework using extremely cheap MVP techniques collectively referred to as MVP Design Hacks.

     
  • 4 favorite_border Naresh Jain 0forum

    Agile Testing

    Naresh Jain
    Naresh Jain
    schedule 7 months ago
    45 mins
    Talk
    Intermediate

    As more and more companies are moving to the Cloud, they want their latest, greatest software features to be available to their users as quickly as they are built. However there are several issues blocking them from moving ahead.

    One key issue is the massive amount of time it takes for someone to certify that the new feature is indeed working as expected and also to assure that the rest of the features will continuing to work. In spite of this long waiting cycle, we still cannot assure that our software will not have any issues. In fact, many times our assumptions about the user's needs or behavior might itself be wrong. But this long testing cycle only helps us validate that our assumptions works as assumed.

    How can we break out of this rut & get thin slices of our features in front of our users to validate our assumptions early?

    Most software organizations today suffer from what I call, the "Inverted Testing Pyramid" problem. They spend maximum time and effort manually checking software. Some invest in automation, but mostly building slow, complex, fragile end-to-end GUI test. Very little effort is spent on building a solid foundation of unit & acceptance tests.

    This over-investment in end-to-end tests is a slippery slope. Once you start on this path, you end up investing even more time & effort on testing which gives you diminishing returns.

    In this session Naresh Jain will explain the key misconceptions that has lead to the inverted testing pyramid approach being massively adopted, main drawbacks of this approach and how to turn your organization around to get the right testing pyramid.

     
  • 1 favorite_border Naresh Jain 0forum

    MVP Design Hacks

    Naresh Jain
    Naresh Jain
    schedule 8 months ago
    45 mins
    Tutorial
    Intermediate

    A successful startup/product company needs to master the art of validating early product ideas quickly and effectively. Whether you are building a product, service or a new feature, the two most important questions to find out early are:

    • are we solving the right problem?
    • if yes, how do we pitch the idea to the target customer to generate a favourable action?

    During this session, we'll focus on various safe-fail experimentation techniques used by Lean Startups for quickly identifying and validating the customer's value hypothesis, without having to build the real product. You will leave this session equipped with various MVP design techniques, that will allow you to rapidly discover a viable product/service that delights your customers, without spending a lot of time and effort.

    Traditionally, entrepreneurs believed that the only way to test their product/service hypothesis was to build the best-in-class product/service in that category, launch it, and then pray. Most often, products/services fail, not because they cannot be built or delivered. But because, they lack the market-fitment and customer appeal.

    To avoid these risks, these days startups are focusing on building a "Minimum Viable Product" (MVP), a product that includes just enough core features to allow useful feedback from early adopters. This reduces the time to market and allows the company to build subsequent customer-driven versions of the product. Hence mitigating the likelihood of wasting time on features that nobody wants. MVPs are typically deployed to a subset of customers, such as early adopters that are more forgiving, more likely to give valuable feedback.

    However the problem with MVPs is that companies still spend too much time building stuff and very little time learning. Don't forget the purpose of MVP is validated learning NOT building. This session will give you ideas on how to quickly formulate and test your value and growth hypothesis in a scientific framework using extremely cheap MVP techniques collectively referred to as MVP Design Hacks.

     
  • 3 favorite_border Naresh Jain 1forum

    The Decline and Fall of Agile - Antifragile Mindset to Rescue

    Naresh Jain
    Naresh Jain
    schedule 9 months ago
    45 mins
    Talk
    Intermediate

    What started off as a trial-and-error approach to improve the state of software development by a bunch of tinkerers, is today dominated by management consultants, "Thou-Shall" codified frameworks and rigid, expensive tools. Over the last 20 years, we've gone from, "I'm not sure, let's try this in a small-safe environment" to "you/your-team sucks; you guys have a very poor agile maturity because you are not doing _x_y_z_ (not conforming to the standards)." Along the way, we've lost the purpose of being agile .i.e. to embrace uncertainty and simplicity. Instead we've been forced to believe that consistency via top-down standardisation and predictability by increasing the rigour on process is our eternal quest. Anything that sounds simple and works 80% of the cases is discarded as being naive. What once drove thought-leader into agile, is now driving them insane. This is the unfortunate fate of Agile.

    Luckily there has been some fresh perspectives from Nassim Taleb, author of Antifragile. His work explains how some things benefit from shocks; they thrive and grow when exposed to volatility, randomness, disorder, and stressors and love adventure, risk, and uncertainty. More importantly why antifragility is beyond resilience or robustness.

    In this talk, I'll use some of Nassim's thoughts (and some of my own) to explain what is wrong with our current approach to Agile and how we can bring life back into Agile. Particularly how we can leverage Volatility, Uncertainty, Complexity, and Ambiguity to make product development more antifragile.

     
  • 2 favorite_border Naresh Jain 5forum

    Test Driving a React.js UI Component with Jasmine

    Naresh Jain
    Naresh Jain
    schedule 9 months ago
    90 mins
    Demonstration
    Intermediate

    Over the past decade, eXtreme Programming practices like Test-Driven Development (TDD) & Behaviour Driven Developer (BDD), Refactoring, Continuous Integration and Automation have fundamentally changed software development processes and inherently how engineers work. While TDD has seen a great adoption on server side, developers still find it hard to apply TDD for developing UI components.

    In this hands-on, live coding demo, Naresh will build a web commenting and discussion feature (like Disqus) in React.js, 100% test driven. He will also demonstrate how TDD will help us drive an object-functional design to strike a pragmatic balance between the Object-Oriented and Functional Programming paradigms.

     
  • 31 favorite_border Naresh Jain 1forum

    Dark Side of Collaboration

    Naresh Jain
    Naresh Jain
    schedule 11 months ago
    45 mins
    Keynote
    Advanced

    On Agile teams, collaboration is the way of life. Our leaders want their team members to work closely with each other, have shared goals and even think as one entity. Why? Because we believe that collaboration leads to happier, more productive teams that can build innovative products/services.

    It's strange that companies use the word collaboration very tightly with innovation. Collaboration is based on consensus building, which rarely leads to visionary or revolutionary products/services. Innovative/disruptive concepts require people to independently test out divergent ideas without getting caught up in collaborative boardroom meetings.

    In this presentation, Naresh Jain explores the scary, unspoken side of collaboration and explains in what context, collaboration can be extremely important; and when it can get in the way or be a total waste of time.

     
  • 4 favorite_border Naresh Jain 0forum

    Live Code Jugalbandi

    Naresh Jain
    Naresh Jain
    Dhaval Dalal
    Dhaval Dalal
    schedule 1 year ago
    90 mins
    Event
    Beginner

    In Indian classical music, we have Jugalbandi, where two lead musicians or vocalist engage in a playful competition. There is jugalbandi between Flutist and a Percussionist (say using Tabla as the instrument). Compositions rendered by flutist will be heard by the percussionist and will replay the same notes, but now on Tabla and vice-versa is also possible.

    In a similar way, we will perform Code Jugalbandi to see how the solution looks using different programming languages and paradigms.

    During the session, conference attendees will take turns at coding the same problem using different languages and paradigms. There would be multiple such attempts by different participants during the Jugalbandi.

     
  • 1 favorite_border Naresh Jain 0forum

    Balancing Object-Functional Design Guided by Tests

    Naresh Jain
    Naresh Jain
    schedule 1 year ago
    120 mins
    Demonstration
    Intermediate

    When we think of OO, most people think of modeling THE real world in software by mapping every real world object (nouns) to entities in software. These entities are then modeled using Is-A-Has-A relationship to build complex, polymorphic hierarchies with deep object graphs. State is stored and mutated in-place inside the object to achieve the desired functionality. This paradigm leads to a fairly convoluted design and encourage imperative style of programming.

    Not everyone who has designed large complex systems, think of OO the same way. For instance, people who Test Drive, do not have the luxury of a big-up-front design, instead they focus on small and incremental design. IME, TDD facilities a design that is side-effect free and encourages a declarative style of programming. While decoupling and composing objects in a functional style with the right granularity of abstraction.

    Let's assume we've to build a web commenting and discussion feature (like Disqus). And we've a requirement to implement this as a jQuery Plugin. Can we apply pure functional principles to design this? Or will the design be better if we try a classical OO JS approach? In this live demo, we'll build this plugin from scratch and see how TDD will help us drive an object-functional design to strike a pragmatic balance between the 2 paradigms.

     
  • 1 favorite_border Naresh Jain 0forum

    Aap Ki Adalat with jQuery Foundation

    45 mins
    Keynote
    Beginner

    Aap Ki Adalat is the longest running talk show in the history of Indian television. In this show, the anchor, Mr. Rajat Sharma has grilled over 500 personalities on various sensitive and personal issues. We would like to put the key members of the jQuery Foundation through a similar session, where participants will ask them hard questions around various technical and non-technical choices made by the Foundation and the future direction of the foundation.

     
  • 1 favorite_border Naresh Jain 0forum

    Agile Testing

    Naresh Jain
    Naresh Jain
    schedule 1 year ago
    45 mins
    Talk
    Intermediate

    As more and more companies are moving to the Cloud, they want their latest, greatest software features to be available to their users as quickly as they are built. However there are several issues blocking them from moving ahead.

    One key issue is the massive amount of time it takes for someone to certify that the new feature is indeed working as expected and also to assure that the rest of the features will continuing to work. In spite of this long waiting cycle, we still cannot assure that our software will not have any issues. In fact, many times our assumptions about the user's needs or behavior might itself be wrong. But this long testing cycle only helps us validate that our assumptions works as assumed.

    How can we break out of this rut & get thin slices of our features in front of our users to validate our assumptions early?

    Most software organizations today suffer from what I call, the "Inverted Testing Pyramid" problem. They spend maximum time and effort manually checking software. Some invest in automation, but mostly building slow, complex, fragile end-to-end GUI test. Very little effort is spent on building a solid foundation of unit & acceptance tests.

    This over-investment in end-to-end tests is a slippery slope. Once you start on this path, you end up investing even more time & effort on testing which gives you diminishing returns.

    In this session Naresh Jain will explain the key misconceptions that has lead to the inverted testing pyramid approach being massively adopted, main drawbacks of this approach and how to turn your organization around to get the right testing pyramid.

     
  • 1 favorite_border Naresh Jain 0forum

    IAmA (I Am A ... Ask Me Anything)

    Naresh Jain
    Naresh Jain
    schedule 1 year ago
    60 mins
    Keynote
    Beginner

    On Reddit, IAmA stands for "I am a" and AMA stands for "ask me anything".

    In an IAmA post, a person will post what they are, and other people will ask the original poster some questions to gain insights about the experience the person has had.
     
    Ex: I'm Jeff Patton, creator of Story Mapping, Ask Me Anything... OR I'm Diana Larsen, co-creator of the Fluency Model and co-author of Agile Retrospectives, Ask Me Anything...

    We plan to take this concept and apply it to the Agile context. We've few luminaries at the conference and we plan to do an live interview with them using this format.

     
  • 2 favorite_border Naresh Jain 0forum

    Test Driving a jQuery Plugin

    Naresh Jain
    Naresh Jain
    schedule 1 year ago
    90 mins
    Demonstration
    Intermediate

    Over the past decade, eXtreme Programming practices like Test-Driven Development (TDD), Behavior Driven Developer (BDD), Refactoring and Continuous Integration have fundamentally changed software development processes and inherently how engineers work. Practitioners claim that it has helped them significantly improve their development speed, design quality and responsiveness to changing requirements. Software professionals across the board, from Internet startups to medical device companies to space research organizations, today have embraced these practices. But can these practices be applied to front-end development? Especially jQuery plugin development?

    This demo will show how we can test drive a jQuery plugin with the help of various patterns, strategies, tools and techniques. Participants will understand how they can apply this approach for testing any jQuery code.

     
  • 6 favorite_border Kumar Pratyush 0forum

    Performance Testing a Mobile App Used by 100M Users

    Kumar Pratyush
    Kumar Pratyush
    Naresh Jain
    Naresh Jain
    schedule 2 months ago
    45 mins
    Case Study
    Intermediate

    Hike is used by 100 Million users and many of our users have cheap smart phone (~ $120 USD) that can install no more than 3 mobile apps.

    So the questions is: Should testing of app be limited to its functionality? At Hike, we believe "Performance is Queen!" For our users, if we misuse the critical resources such as Battery, CPU, Network and Memory, its a deal-breaker. Hence pref-testing is very important.

    During the initial days of Hike, we were very reactive and only did (manual) perf testing, when our users reported issues.

    Now, every Sprint (2 weeks) and every public release (monthly), we run our automated perf tests. We measure our app's performance using several app specific use-cases on 4 key areas:

    • CPU,
    • Memory,
    • Battery and
    • Network (data consumption.)

    Hike's CPU Utilization

    We also benchmark the following scenarios for app latency:

    • App launch time upon Force Stop
    • App launch time upon Force Kill
    • App's busiest screen openning time
    • Scrolling latency in different parts of the app
    • Contact loading time in Compose screen

    Hike App Benchmark

    We still have a long way to go in terms of our pref-testing journey at Hike. But we feel, we've some key learnings, which would be worth while to share with the community. Join us, for a fast paced perf-testing session.

     
  • 6 favorite_border Vivek Upreti 0forum

    Cross-platform, Multi-device Instant Communication Testing in Parallel using Appium and Docker

    Vivek Upreti
    Vivek Upreti
    Naresh Jain
    Naresh Jain
    schedule 3 months ago
    45 mins
    Demonstration
    Intermediate

    Today over 100 million users share over 40 billion messages per month on Hike. Its not just simple 1:1 chat messages. Users can do a VoIP call or share rich multi-media content in 8 different languages in group chats with hundreds of members. User can transfer large (upto 100 MB) file using Wifi-Direct .i.e. device to device file transfer without using Internet. And many more features. How do you ensure that you can roll out a release every month without breaking any of these features?

    With such a large user based, which is very sensitive to frequent upgrades due to data consumption cost, rigorously testing the app becomes extremely critical.

    When we started our automation journey in 2014, we were looking for a device lab which can simplify our testing effort. However we gave up and ended up building our own setup. The reason being, we require multiple devices that can communicate with each other for a single test. And we have 6000+ such tests, which we want to run in parallel. While many device labs allow you to run tests in parallel, they don't allow the devices to communicate with each other. Also its not possible to run the same test across multiple devices. Imagine testing a group-chat flow with photo sharing or imagine the device to device file transfer using hotspot. How would you test these features?

     

    If this interests you, join us and we'll share our learning trying to achieve this at Hike.

     
  • 9 favorite_border Bret Pettichord 1forum

    Checking as a Service

    Bret Pettichord
    Bret Pettichord
    schedule 4 months ago
    45 mins
    Keynote
    Beginner

    This talk suggests a reframe in how we understand the business value of automated testing. One shift is to see automation as "checking" rather than "testing". Another is the shift from software delivery to service delivery, including fully embracing DevOps. The resulting approach could be called Checking as a Service or CheckOps, and forces us to rethink traditional automation priorities. In this talk, Bret will explain how change in approach has affected teams he's worked with and how you can use it to improve your ability to deliver valued services.

     
  • 27 favorite_border Adam Carmi 0forum

    Advanced Automated Visual Testing With Selenium

    Adam Carmi
    Adam Carmi
    schedule 5 months ago
    45 mins
    Talk
    Beginner

    Automated visual testing is a major emerging trend in the dev / test community. In this talk you will learn what visual testing is and why it should be automated. We will take a deep dive into some of the technological challenges involved with visual test automation and show how modern tools address them. We will review available Selenium-based open-source and commercial visual testing tools, demo cutting edge technologies that enable running cross browser and cross device visual tests at large scale, and show how visual test automation fits in the development / deployment lifecycle.

    If you don’t know what visual testing is, if you think that Sikuli is a visual test automation tool, if you are already automating your visual tests and want to learn more on what else is out there, if you are on your way to implement Continuous Deployment or just interested in seeing how cool image processing algorithms can be, this talk is for you!

     
  • 4 favorite_border Rajat Talwar 2forum

    Pains and Gains of being a Full Stack Developer

    Rajat Talwar
    Rajat Talwar
    schedule 8 months ago
    45 mins
    Experience Report
    Intermediate

    As the industry is shifting towards an Agile (Continuous Delivery) style for developing products and services, (whether startups or large established organisation), everyone today has to thrive by innovating and adapting to the latest trends in technology. They have to keep themselves ahead in the race to delight customers. Full stack developers are key players in experimenting and delivering value consistently using varied tools and technologies throughout the stack.

    In this session I'll be share my journey of how I became a full-stack developer. Hopefully this will help others understand how they can target and plan to gradually become a full stack developer in their respective teams.

    Also I'll highlight the following topics:

    • What is the importance of a full stack dev?
    • What tools/resources/languages in my experience work best for full stack developers?
    • Downsides of being a full stack developer!
     
  • 23 favorite_border Vishal Prasad 7forum

    Learning from Anemic Reviews - Improving your Agile Feedback Loop

    Vishal Prasad
    Vishal Prasad
    schedule 9 months ago
    20 mins
    Experience Report
    Intermediate

    Consider an agile utopia executing a lean build-measure-feedback loop for software development. How would you feel if your biggest strength of receiving early feedback from your end-users turns out to be your Achilles heel? Recently I faced this dilemma where my end-users unfortunately were a group of introvert individuals. This led to Monger project’s MVP almost declared as a failure since it did not fulfill the end-user’s requirements. 

    Many a times, projects transform their delivery mechanism from traditional models to agile with a myth that agile is a recipe for success. In reality many projects fail since agile is not well understood by the teams. A few times (like in this case) the agile process falters not due to incorrect implementation but due to incorrect participants responsible to execute a part of the process.

    Experience with me what happens when your end-users falter your feedback loop just because of the nature of individuals. If you’ve ever been a part of a group (or may be in the future) where your end-users are introverts, learn from this experience report how we overcame this problem on the Monger project by strengthening our anemic reviews. At the same time, if you as a participant have been there and done that, I would love to hear about it.

     
  • 2 favorite_border Dhaval Dalal 0forum

    DRYing to Monads in Java8

    Dhaval Dalal
    Dhaval Dalal
    schedule 1 year ago
    45 mins
    Demonstration
    Beginner

    If you thought Monads are a mystery, then this demonstration would show you how to evolve your code towards a Monad without knowing about it. This demo will neither go into any Category Theory nor begin with monadic laws.  Instead, we will start with typical code that you see in your daily life as a developer, attempt to DRY (Don't Repeat Yourself) it up and eventually use Monad to remove duplication and verbosity. You'll also see how Monads make your code more declarative and succinct by sequencing the steps in your domain logic.

    Also, we know in Java8 Checked Exceptions + λ == Pain!  To be more precise, we will evolve a Try (exception handling monad) which is missing in Java8, similar to one found in Scala.  Finally, map back Try to the 3 monad laws.

     
  • 7 favorite_border Morten Kromberg 0forum

    Parallel Programming in Dyalog using Futures and Isolates

    Morten Kromberg
    Morten Kromberg
    schedule 1 year ago
    45 mins
    Keynote
    Beginner

    Dyalog is an array first multi-paradigm language based on an APL language kernel. In APL, it is common for the application of primitive functions to arrays of conforming shape to imply a map; the function is applied item-wise to corresponding elements of the arguments, producing a result of the same shape. APL also provides a variety of explicit operators that provide different mappings of user-defined functions, or more generally functional compositions, to multi-dimensional and nested arrays.

    One might expect that such language features would provide a complete framework for parallel programming. In practice, writing programs that can be efficiently executed in parallel on current hardware is extremely difficult, if implicit or explicit maps are the only parallel language feature available and an interpreter or compiler needs to deduce where to introduce the asynchronicity that is required in order to take advantage of the hardware.

    This talk will present Futures and Isolates, and related parallel operators constructed upon them, which were added to Dyalog version 14.0 in 2014. The goal has been to provide explicit forms of deterministic asynchronous execution, designed to be very familiar to APL users, and continue to allow them to view the language as an executable mathematical notation, while taking advantage of parallel hardware that is now readily available.

     
  • 2 favorite_border Dhaval Dalal 0forum

    The Tao of Transformation

    Dhaval Dalal
    Dhaval Dalal
    Naresh Jain
    Naresh Jain
    schedule 1 year ago
    90 mins
    Workshop
    Beginner

    "To know, is good. To live, is better. To be, that is perfect." - The Mother

    During the Agile adoption, its a common complain that many team in many organizations get caught up in the ceremonies or mechanics of Agile and fail to understand/appreciate the true value and spirit of Agile. And because of this, the original intent of the Agile movement itself is lost. This is a serious issue!

    This workshop will highlight, a well-proven approach to transformation (not adoption) and show the distinct steps in this journey that an individual or a collective goes through when learning anything new. Activities, serving as examples, in the workshop, will focus to show the journey - that is, how to begin with rituals, then gradually move to practices, arriving at principles and eventually internalizing the values. Witnessing this gradual process of transformation will help participants discover for themselves their current progression. We hope this will serve as a guiding light during their Agile journey.

    Finally, we will leave the participants to ponder upon and discover for themselves their ideals in life and work as this is not only applicable to software development, but also to any discipline where humans are involved, including life itself.

     
  • 5 favorite_border Scott González 0forum

    Building Up the Community

    Scott González
    Scott González
    schedule 1 year ago
    45 mins
    Keynote
    Beginner

    Over the past seven years, jQuery UI has identified and solved many common problems for web developers. Often times, the problems don't apply just to users of jQuery UI, or even jQuery Core. In these cases, we try to solve the problem in the best way for the largest audience, rather than creating an isolated solution within jQuery UI. We're able to do this by working with the community and bringing together various groups to collaborate on solutions. In this talk, I'll discuss how this concept is at the heart of the jQuery Foundation and explain some of the projects that have been born out of jQuery UI.

     
  • 3 favorite_border Aslak Hellesøy 0forum

    How BDD can save agile

    Aslak Hellesøy
    Aslak Hellesøy
    schedule 1 year ago
    60 mins
    Keynote
    Intermediate

    As lead developer of Cucumber and author of The Cucumber Book, Aslak gets asked to consult with organisations who want to introduce Behaviour-Driven Development (BDD). Time after time, he meets teams who are trapped doing half-arsed agile. They do the easy, obvious, visible agile practices, and none of the powerful, hard-to-master, hard-to-see ones.

    When these teams ask for help learning BDD, we get a chance to remind them how important conversations and collaboration are in software development. We teach them to write tests before they write code, as a way to explore and discover the hidden details of a requirement just before they dive in and start building it. This talk will make you wince with recognition, laugh with despair, and finally inspire you with stories of teams that have finally, after years of flaccid scrumming, discovered the true collaborative heart of agile software development. You’ll see patterns you recognise from your own teams, and gain insights about how to fix them.

     
  • 11 favorite_border Prasad Kunte 6forum

    Implementing Agile Engineering Practices in Legacy Codebases

    Prasad Kunte
    Prasad Kunte
    Naresh Jain
    Naresh Jain
    schedule 1 year ago
    45 mins
    Case Study
    Intermediate

    Afraid of legacy code? Don't be!!!

    Most successful product companies are confronted with the problem of legacy code.

    What is a legacy code?

    • A code which is in production for several years.
    • A super-complex, hard to understand code base, written by different set of developers. 
    • Outdated Technology stack.

    But the most hurting reality is:

    Lack of confidence in the code due to zero or poor test coverage.

    Due to this reality, developers are often scared to touch it. They have very little confidence that "their code change wouldn't break the existing application in production."

    Recently at IDeaS, we came across such situation, where we needed to enhance one of our products containing legacy code. We started looking into the code and soon figured out that it was developed in 2007, hardly ever touched (& still working in production :)). The original team, which has worked on this product, could not be traced anymore.

    As this product has expanded to attract new customers, we had to change it significantly in order to support new customer's specifications. We had to make sure that the product was backward compatible and supported the earlier specifications, while we enhance the new specification.

    One simple option was to COPY PASTE every single method which needs to be modified and use an if-statement to decide which method to call. This certainly seems like an easy method, since the chances of breaking existing code is very little. 

    Today we all know this is a BAD option!!!

    Instead, our team decided to refactor the existing code to support plug-and-play approach for different specification. But before we started refactoring code, we had to build a safety net of tests around the existing code.

    How do we put the safety net? Ideal way would be to implement the Test Pyramid first. But, that would have taken significant time to be ready with the pyramid before we start touching the legacy code. And obvious, we would have missed the business goals.

    What do we do?

    Instead of building the entire test pyramid, we decided to attack different layers of the test pyramid, one at a time. Along the way, we followed the following approach:

    1. Re-structuring the Project code-base
    2. Establishing a baseline database: After taking a dump from the production database, we cleared out surplus data from the DB and setup a seed database with automed scripts
    3. Creating/fixing the build script 
      1. Setting up an auto DB deploy tool and integrating it with build scripts
    4. Set up basic CI pipeline
    5. Write a few work-flow tests to capture the system's flow from user's point of view
      1. Find the inception point in the code from where we can exercise the code
      2. Restify the application at the inception point (one service at a time)
      3. Setup authorization for production and test environment
      4. Build minimal test-data set for different environment 
      5. Create a few work-flow tests via the inception point (Test itself should not be coupled with the underlying database or implementation level components)
    6. Write business logic acceptance test to capture various complicated business rules
    7. Test drive the new enhancement or bug fixes
    8. Every time we touch legacy code, refactor the code and improve test coverage at unit level

    This really helped us test driven the new code and implement all the layers of the test pyramid.

    If you've a similar situation, join us, as we share our experience on how to confront legacy code.

     
  • 11 favorite_border Sachin Natu 7forum

    Death of Inspection: Reincarnation of the Testing Community

    Sachin Natu
    Sachin Natu
    Naresh Jain
    Naresh Jain
    schedule 1 year ago
    60 mins
    Case Study
    Intermediate

    Adopting agile development practices and continuous delivery is becoming a norm in the software industry. Time to market and frequent releases have drastically reduced time available for regression testing. Inspection is considered wasteful. Faster feedback cycles during development is crucial. These have created lot of challenges for testing community, which traditionally relies on manual testing assisted by UI based test automation.

    This is an experience report of transforming testing practices across organization, which decided to embrace Agile. Today our testers are not trying to find defects, instead they collaborate with product management and developers to prevent them in the first place. In fact, during the appraisal process, the defects found by them is ignored, instead we focus on how much time they are able to dedicate to collaboration and exploratory testing. The boundaries between developers and testers have faded away and today quality is whole team's responsibility.

    We started with less than 20% of our testers with automation skills (mostly UI automation) and rest of them relying on manual testing. However, today, all our testers practice BDD. They have picked up Java & Groovy programming skills. They are able to contribute Workflow tests, Integration tests and Business Logic Acceptance Tests. Early collaboration and pairing is the norm. By the time developers are done with their tasks, all checks are already automated and hence we are able to deploy software every fortnight to production.

    Are your testers finding it hard to make this transition to an Agile mindset? This session will give you some concrete ideas based on our transition at IDeaS.  

     
  • 4 favorite_border Ashish Parkhi 3forum

    Techniques to Speed Up your Build Pipeline for Faster Feedback.

    Ashish Parkhi
    Ashish Parkhi
    Naresh Jain
    Naresh Jain
    schedule 1 year ago
    45 mins
    Experience Report
    Intermediate

    We would like to share our experience and journey on how we brought down our Jenkins build pipeline time down from over 90 minutes to under 12 minutes. In the process, we would share specific techniques which helped and also some, which logically made sense, but actually did not help. If your team is trying to optimize their build times, then this session might give you some ideas on how to approach the problem.

    Development Impact - For one of our build job, below graph shows how the number of builds in a day have increased over a period of time as the build time has reduced. Frequency of code check-in has increased; Wait time has reduced; failed test case faster to isolate and fix.

    Business Impact - More builds leading to quicker feedback and faster story acceptance and less story spill over.

     
  • 5 favorite_border Ashish Parkhi 12forum

    Gamifying Agile Adoption - An Experiment

    Ashish Parkhi
    Ashish Parkhi
    Naresh Jain
    Naresh Jain
    schedule 1 year ago
    45 mins
    Case Study
    Intermediate

    While having a chat with Naresh Jain, he suggested me to go through the Ted Talk – “Gaming can make a better world” by Jane McGonigal. I found the title very weird and was wondering how is that possible? After going through the talk though, I was amazed. I started wondering if I can use the gamification technique in Agile Adoption, in our Products, in Performance Management Systems, in Employee Engagement Programs?

    Dhaval Dalal introduced me to Prof. Kevin Werbach’s definition of Gamification – “The use of game elements and game design techniques in non-game contexts.

    For our 4th ShipIt Day, organized on 25th/26th Sept 2014 at IDeaS, I decided to explore the idea of using game elements and game design techniques in the context of Agile Adoption. The idea was to create a gaming system which will automatically collect data, i.e. without explicit user intervention,  from multiple sources like Jenkins, Rally and manually from individuals and offer Star’s for positive behavior and deduct Star’s otherwise.

    The aim was to help the team get continuous visual feedback on how they are doing, adopt agile practices, visualize sense of accountability, visualize sense of achievement, drive positive behavior, create healthy competition, create a culture of appreciation, help performance tracking and create transparency.

     

    Landing Page

    User Profile

     

     

     Update - 

    1. Deducting points seems to be bothering the individuals. Now we are experimenting with getting rid of negative points and introducing short lived badeges instead e.g. "Build Breaker". 
    2. We have now added more badges to recognize individual efforts in various categories.
    3. Working on open sourcing the core app at https://github.com/IDeaSCo/rockstar
     
  • 7 favorite_border Prafulla Girgaonkar 1forum

    eXtreme Programming for ETL and Data Analytics

    45 mins
    Experience Report
    Intermediate

    Over the last decade, eXtreme Programming practices like User Stories, Evolutionary Design, Test-Driven Development (TDD), Behavior Driven Developer (BDD), Refactoring, Continuous Integration and Automation have fundamentally changed software development processes and inherently how engineers work.

    Having experienced various benefits from XP practices on our J2EE stack, our team started to apply these practices to extract, transform, and load (ETL) and Data Analytics side of our product. Unfortunately, there is very little guidance available in this context, esp. for the SAS Platform. Right from finding the unit testing framework to structuring the code to designing our modules and setting up a Continuous Integration builds, our team had to figure out everything, the hard way.

    Join us to understand the challenges we faced during this process and how we resolved these challenges.

     
  • 5 favorite_border Dhaval Dalal 0forum

    The Tao of Transformation

    Dhaval Dalal
    Dhaval Dalal
    Naresh Jain
    Naresh Jain
    schedule 1 year ago
    90 mins
    Workshop
    Beginner

    "To know, is good. To live, is better. To be, that is perfect." - The Mother

    During the Agile adoption, its a common complain that many team in many organizations get caught up in the ceremonies or mechanics of Agile and fail to understand/appreciate the true value and spirit of Agile. And because of this, the original intent of the Agile movement itself is lost. This is a serious issue!

    This workshop will highlight, a well-proven approach to transformation (not adoption) and show the distinct steps in this journey that an individual or a collective goes through when learning anything new. Activities, serving as examples, in the workshop, will focus to show the journey - that is, how to begin with rituals, then gradually move to practices, arriving at principles and eventually internalizing the values. Witnessing this gradual process of transformation will help participants discover for themselves their current progression. We hope this will serve as a guiding light during their Agile journey.

    Finally, we will leave the participants to ponder upon and discover for themselves their ideals in life and work as this is not only applicable to software development, but also to any discipline where humans are involved, including life itself.

     
  • 12 favorite_border Prafulla Girgaonkar 1forum

    The Art of SQL Database Refactoring

    45 mins
    Experience Report
    Intermediate

    "We've tested this feature thoroughly and it worked really well. But for some weird reason, it's really slow in production today...must be a network issue...or may be the server is having a bad day..."

    Do you often hear these kinds of comments in your development team? Let us guess, your application is very data-centric and churns big blocks of data on every user request. And under the hood, your application is most probably heavily dependent on long/complex queries with joins, temp-tables, case-statements, nested queries, etc.

    These SQL queries probably started-out very simple. But as your requirements evolved, iteration after iterations, the queries also grew in complexity. And most often, even if you test-drove your newer stories, the performance of these complex queries is not evident until you run them in production. 

    Given that our requirements will evolve and so will our database, how do you deal with the above problems?

    There are TWO essential parts to evolutionary database design:

    1. The art of refactoring your SQL queries.
    2. Figuring out the right balance of what processing is done in SQL on the DB sides and what is done on your service side in your App/Web Server.

    Join us as we take a tour of how we refactored our complex, non-performant queries and overall DB without hurting our time-to-market.

     
  • 5 favorite_border Alexey Ilyichev 1forum

    Skype goes agile: don't repeat our mistakes

    Alexey Ilyichev
    Alexey Ilyichev
    schedule 1 year ago
    45 mins
    Case Study
    Intermediate

    In 2011, I worked for Qik, a startup that got aqcuired by Skype. At that time Skype was in the middle of an agile transition. Аfter aquisition, Qik team was told to adopt the Agile process used by Skype. I worked with the team as an agile coach. After adopting Skype's "agile" process, our ability to deliver was brought down to almost zero. In this talk, I'll tell you the story as it happened, analyze the key problems that we faced and describe how we finally solved them. Come to this talk, if you want to avoid similar mistakes. If you are already through with your transition, I would be interested to know if you see any patterns. 

     
  • 5 favorite_border Thomas Gazagnaire 0forum

    Compile your own cloud with Mirage OS v2.0

    Thomas Gazagnaire
    Thomas Gazagnaire
    schedule 2 years ago
    60 mins
    Talk
    Intermediate

    Most applications running in the cloud are not optimized to do so. They make assumptions about the underlying operating system, resulting in larger footprints with increased costs and risks.  The open source Mirage OS represents a new approach where the application code is combined with the specific components of the operating system it needs into a single-purpose unikernel appliance. With Mirage OS, developers can create lean and efficient unikernels for secure, cost-effective and high-performance network applications. Mirage OS unikernels run directly on the Xen Project hypervisor, which allows them to be quickly deployed to many leading cloud platforms.

    Mirage OS is fully written in OCaml, from the device drivers and network stack to higher-level synchronisation protocols and databases. In this presentation I will explain how we developed Mirage OS and why we choose to do so in a strongly typed functional language with a powerful module langage. I will then present some of the new features of Mirage OS v2.0 such as: support for ARM devices, Irmin: a Git-like distributed database and OCaml-TLS: a comprehensive implementation of the TLS protocol in pure OCaml. 

     
  • 1 favorite_border DivyaTheja Pachipula 2forum

    Testing memory leaks for Eclipse based Java applications

    45 mins
    Case Study
    Intermediate

    Memory leaks are the most important area where almost every product breaks. Are you testing memory leaks in Eclipse? What is the tool you are using for this? Want to know more on this? Then attend this session to know about how Progress leveraged the best of all profiling tools to test the memory leaks in RCP applications. This session takes you through steps to make your job easy by integrating your tests and tool, that captures all memory leaks in your Java application that is running on Eclipse.

    This is a case study that explains an end to end scenario of finding possible memory leaks and  results will be written into an excel with complete statistics of your regression tests.

     
  • 3 favorite_border Sarika Sinha 1forum

    New and Advanced Debugging Tips And Profiling

    Sarika Sinha
    Sarika Sinha
    schedule 3 months ago
    45 mins
    Demonstration
    Intermediate

    Eclipse Platform Debug project provides the framework to enable debugging in projects. It adds the concept of Breakpoints, Console, Runtime, Process, Variable View, Expression View ....

    Eclipse JDT Debug project adds the Java specific feature for debugging on top of Platform framework with Java Stack frame, Java Stack trace Console ....

    There are many non obvious ways which can help us achieve effective debugging. Developers using Eclipse for long may not be aware of many of these tips-

    • New debugging features introduced in last two years
    • Advanced debugging tips - Step Filters, organizing breakpoints , Scrapbook, display of logical structure etc.
    • How to create memory dumps
    • How to profile Eclipse projects effectively with profilers like Yourkit
     
  • 1 favorite_border Syamkumar 3forum

    The Power of scripting

    Syamkumar
    Syamkumar
    schedule 1 month ago
    45 mins
    Talk
    Beginner

    EASE [1] is an advanced scripting framework which has been honoured with Eclipse Community Award for the Most Innovative Project 2016. It allows the execution of script code within the context of the running eclipse platform. As of today it supports scripts written in JavaScript (Rhino & Nashorn), Python, Groovy and JRuby.

    EASE is a module based framework where user can make use of any Java classes and wrap them as script libraries (modules). There are lots of built in modules available in framework which can be used as is by user from his scripts. For example there are modules for plotting live graphs, modifying workspace resources, accessing GIT etc.

    EASE also hosts a Junit like test framework to execute scripted tests. These tests can be run interactively or can be integrated into CI Environment.

     

     [1]: Eclipse Advanced Scripting Environment: https://projects.eclipse.org/projects/technology.ease

     
  • 1 favorite_border Neeraj Bhusare 4forum

    Eclipse Xtend - a better Java with less "noise"

    Neeraj Bhusare
    Neeraj Bhusare
    schedule 2 months ago
    45 mins
    Talk
    Intermediate

    Xtend is a fully-featured Java like language that is tightly integrated with Java. It has a more concise, readable and expressive syntax than Java, and provides additional features such as Type inference, Extension methods and Lambda expressions. It comes with state of the art IDE support for Eclipse and IntelliJ IDEA. It also provides interface for integration of text editors for your language in Web applications.

    Xtend itself is implemented in Xtext and it is a proof of concept of how involved a language implemented in Xtext can be.

    The objective is to introduce the audience to Xtend language and how it can be used to write cleaner code against any Java APIs and solve day-to-day challenges in much better ways.

     
  • 1 favorite_border DivyaTheja Pachipula 4forum

    A to Z of Internationalizing your Eclipse and testing challenges

    45 mins
    Talk
    Beginner

    "A person who speaks two languages is called bilingual. A person who speaks three languages is called trilingual. So what do you call someone who speaks/understands any language? ..called Multilingual" as such products called globalized products. Today, providing a software product solely in English is no longer acceptable from a usability, quality, marketing, and in some cases, legal standpoint. Enabling your product for the world market simply makes product reachable to all.

     

     
  • 2 favorite_border Venali Sonone 6forum

    Chatterbot: Computing Machinery and Artificial Intelligence

    Venali Sonone
    Venali Sonone
    Diksha Gurupawar
    Diksha Gurupawar
    schedule 1 month ago
    45 mins
    Tutorial
    Intermediate

    "In artificial intelligence machines are made to behave in wondrous ways, often sufficient to dazzle even the most experienced observer. But once a particular program is unmasked, once its inner workings are explained its magic crumbles away; it stands revealed as a mere collection of procedures.The observer says to himself, "I could have written that". With that thought he moves the program in question from the shelf marked "intelligent", to that reserved for curios. The object of this paper is to cause just such a re-evaluation of the program about to be "explained". Few programs ever needed it more."

    A chatterbot is a computer program which conducts a conversation via auditory or textual methods. Such programs are often designed to convincingly simulate how a human would behave as a conversational partner, thereby passing the Turing test. Chatterbots are typically used in dialog systems for various practical purposes including customer service or information acquisition. Some chatterbots use sophisticated natural language processing systems, but many simpler systems scan for keywords within the input, then pull a reply with the most matching keywords, or the most similar wording pattern, from a database.

    Usage in dialogue systems | Chatterbots are often integrated into the dialog systems of, for example, automated online assistants, giving them the ability of, for example, small talking or engaging in casual conversations unrelated to the scopes of their primary expert systems.

    Large companies such as Lloyds Banking Group, Royal Bank of Scotland, Renault and Citroën are now using automated online assistants instead of call centres with humans to provide a first point of contact.

    A typical AI Chatterbot can be efficiently implemented in Java using Eclipse environment and it is fascinating how little code is needed to be produced so as to get one started on creating on AI Chatbot. This talk elaborates on AI techniques and Chatbot

    Workshop:

    The hands-on tutorial on creating your very own AI chatbot. Have your eclipse working? No worried then as that is sole thing you need for your AI chat bot. Let's get writing and interacting with your creation!

    This talk will focus on :

    1. A brief introduction to Artificial Intelligence.
    2. Introduction to AI Chatter bots.
    3. Tutorial on AI Chatter bots.
    4. Explain techniques and terminology of AI Chatter bots




     
  • 3 favorite_border Sravan Kumar Lakkimsetti 6forum

    Release Engineering at Eclipse

    Sravan Kumar Lakkimsetti
    Sravan Kumar Lakkimsetti
    schedule 3 months ago
    45 mins
    Talk
    Intermediate

    Have you ever wondered how the results automatically appear in the website? This talk will take you through this journey from the code to the results –the multi-stage, multi-tech release engineering process internals.

    There two different streams producing three different regular builds ( not taking into account the special P and Y) with the final bits running four different platforms making it a gruesome 32 hour journey optimized by parallelization. This process has four pipelined stages, with each stage driven by separate owners – one of them being Maven-Tycho configuration and the rest being a combination of shell Scripts, Ant, Junit in sync with multiple Hudson servers (HIPP).

    To give a peek into the stages : The first stage has private as well as publicly visible parts, using two stage cloning with bare bones and normal git repos owned by Scripts. Second Stage, owned by Maven-Tycho, is responsible for three maven-tycho builds. This output feeds into the next phase, owned by shell-scripts, which does a few things resulting in a transient pseudo-private download zone which again feeds into the last stage owned by Hudson-Ant-Junit Config and is responsible for actual firing of the tests in multiple platforms. Finally you have the publicly viewable html based downloads and results.

     
  • 2 favorite_border Pradeep Balachandran 5forum

    Cloud development using Eclipse

    Pradeep Balachandran
    Pradeep Balachandran
    schedule 3 months ago
    45 mins
    Demonstration
    Intermediate

    Eclipse IDE is ubiquitous and the IDE of choice for application development no matter whether you are developing in Java/JEE or Python or Ruby or PHP - Eclipse IDE has a flavour that suits your taste. In recent times, the landscape of applications have undergone a significant change. More and more applications are developed by composing services and are deployed on specialized "Cloud" environments known as "Platform as a Service" - PaaS for short. 

    In this talk, we take a look at the various tools available in Eclipse Open Source ecosystem for developing applications for the cloud environment. We will traverse the journey of an app from conception to deployment. We will cover an online store application as an example. This talk will cover the tools that are best suited for each phase of the application development life-cycle - planning, work break down, coding, building and deployment. The tools include Eclipse Orion, Eclipse Tools for Cloud Foundry, Eclipse Tools for Bluemix, GitHub. We will also look at enabling continuous deployment using this tool set - practicing DevOps in true sense.

     
  • 4 favorite_border Vikas Chandra 2forum

    Evolving APIs and plug-in versions using PDE & More !

    Vikas Chandra
    Vikas Chandra
    schedule 3 months ago
    20 mins
    Talk
    Beginner

    An API is a way for services and programs to communicate with each other through a
    documented interface. It defines “contracts” for information exchange between programs. But over time,
    an API needs to evolve while maintaining the contract compatibility. In some circumstance,
    breaking changes has to be made and the clients of the API need to adapt effectively.

    For Java applications, there are some ground rules for evolving interface, classes and all other
    API elements. In eclipse, PDE tools provide most of the assistance needed for the developer to evolve
    APIs without having to say "I just added this. How did that break? "

    As plugins evolve, they must maintain the compatibility as far as possible. The nature of changes
    to the plugin should also be reflected in the plugin versioning. PDE's version management tools
    help developers to put the versioning correctly.

    In the talk, I will cover ground rules for API evolution and how PDE helps a developer in that.
    Also I will cover versioning guidelines and PDE's support for version management. I will also
    talk about other useful aspects of PDE.

     
  • 1 favorite_border Prabhat K 6forum

    Playing with models on the new EMFStore

    Prabhat K
    Prabhat K
    schedule 2 months ago
    20 mins
    Demonstration
    Intermediate

    We love EMF and the possibilities it provides. It is the lifeline of eclipse modelling tools. The number of tools built on EMF technology is staggering and keeps growing day by day. Some of the data models in these industrial tools turn out to be extremely huge and complicated.

    More so, these models are worked upon in a collaborative fashion requiring frequent exchanges, Git repositories, SVN etc. There is a problem here though, these repositories were not meant for models but for sources and textual files. They do not understand the underlying EMF models that we store in them and their data structures. The end result, EMF users are left with plain textual comparisons of the models they built over a period of time. This results in painstaking effort and errors.

    With the new EMFStore, developers can store, distribute and collaborate on EMF based entities. They can be shared with a server or a model repository and distributed client applications. Clients can modify the model and synch with the server. Clients can work offline too. Conflicts in concurrent changes between clients can be resolved. The server always keeps a history of the entities which can be queried to check the changes between versions.  

    In short, EMF Store provides a powerful collaborative and versioning system for EMF models. All it needs is the Ecore of your EMF model to achieve this. It also provides cool UIs with EMF Forms making playing with complex models a lot less complicated!

    In the demo, we will see how to utilize EMFStore for an EMF model and try to synch changes and compare it with its previous versions.

     
  • 2 favorite_border shankar 1forum

    Embedded Testing decompiled by Target Communication Framework

    shankar
    shankar
    Rahul Chandrashekar
    Rahul Chandrashekar
    schedule 2 months ago
    20 mins
    Talk
    Beginner

    When compared with normal stand alone applications or web applications, debugging Embedded Applications are relatively tough primarily due to the inherent complexity of real time computing. There are several factors that make the embedded applications complex:

    • the platform chosen specifically to optimise the target application,
    • embedded application are typically selected for small tasks and
    • in embedded system; memory, speed and tools are always time sensitive.

    Generally, embedded applications are debugged and tested for

    • logical or synchronisation problems in code,
    • design error in hardware and
    • information on operating states to boost performance and optimise.

    For debugging and testing different tools are carefully chosen based on the target platforms. Some of the available methods / tools are:

    1. Simulators
    2. In-circuit emulators
    3. JTAG/BDM debuggers
    4. Customed hardware
    5. LEDs and switches
    6. Serial or other communication ports

    The concern with the traditional methodologies are:

    • Most embedded systems cannot host a development environment, many cannot have host debugger
    • Development occurs on PCs and remote debugging is usually provided by the IDE / debugger to trouble shoot the target
    • Each software development tool has its own method of communication with targets
    • Communication methods conflict with each other, require individual setup, configuration and maintenance.
    • Most of the embedded system communication doesn't follow same protocols

    The above factors is amplified when an organisation works into automotive safety critical applications.

    Thanks to TCF from eclipse, which helps teams to address this complex challenge by providing the key to unlock the aforementioned issues.

    This session will provide a practical understanding of Target Communication Framework and will provide key inputs for the engineers working on real time systems.

     
  • 1 favorite_border Annamalai Chockalingam 2forum

    Unearth Eclipse Modeling Framework

    Annamalai Chockalingam
    Annamalai Chockalingam
    schedule 1 month ago
    480 mins
    Workshop
    Intermediate

    Eclipse Modeling Framework is and has always been a popular project within the Eclipse Community. Many a times EMF is compared to JAXB and called as a Bean or Pojo Generator from Class Diagram. But definitely its lot more than than. This talk is to explore and unearth the potential of using EMF in your Project beyond a Class Diagram to Java Model Generator. 

     

     
  • 2 favorite_border Paul Verest 3forum

    Changing Eclipse from outside, Nodeclipse way

    Paul Verest
    Paul Verest
    schedule 3 months ago
    45 mins
    Talk
    Beginner

    History of Nodeclipse from Node.js for Eclipse to Eclipse Node.

    What is happening within Eclipse from outsider view.

     
  • 5 favorite_border Deepu Xavier 2forum

    Preparing your code for JDK 9

    Deepu Xavier
    Deepu Xavier
    schedule 3 months ago
    45 mins
    Talk
    Intermediate

    Java 9 is packed with lot of new features aimed at improving developer experience and at improving Java applications. Apart from the widely talked about Jigsaw, Java 9 also features the Multi-Release JAR files for ensuring backwards compatibility while upgrading, decreased memory consumption through Compact String, Java 9 REPL- JShell, Version String upgrade and so on. In this session, we will touch upon some of these excellent features and on how to prepare your code so that you can make the best use of them while moving to java 9.

     
  • 3 favorite_border Niraj Modi 5forum

    Scaling Eclipse on high DPI Monitors

    45 mins
    Talk
    Beginner

    In the recent past the monitor technology has changed dramatically. There is a tremendous decrease in pixel size which resulted in high dpi monitors. The operating systems are designed with the assumption we have 72 dpi for Mac and 96 dpi for Windows and unix. Before the advent of "Retina" display this used to be the case. But with Retina displays the dpi started increasing. Now the application looks quite small on high dpi monitors to the naked eye. As the dpi increases the smaller the application looks. This presentation covers the challenges faced in resolving this problem.

     
  • 3 favorite_border Ankur Sharma 4forum

    IOT curry prepared with Eclipse and Edison

    Ankur Sharma
    Ankur Sharma
    schedule 1 month ago
    45 mins
    Demonstration
    Beginner

    Eclipse IOT provides an umbrella of projects addressing various needs on the domain. An overview of Eclipse Kura introducing this light weight OSGi container and its capabilities will help find the attendees a familiar footing in IOT domain. Apache Camel can be leveraged to provide an abstraction and easy to follow widely used Enterprise Integration Patterns. Used in conjunction with Eclipse Paho will allow developers to easily route the messages over MQTT. An integration with Apache ActiveMQ instance will just complete this IOT curry. This will take the attendees through a range of IOT project yet keep up in the flow.

    A demonstration will made with Intel Edison IOT kit showing all these in action.

     
  • 1 favorite_border Carlton Galbreath 1forum

    Positive Psychology in Sales and Customer Service

    Carlton Galbreath
    Carlton Galbreath
    schedule 1 month ago
    45 mins
    Talk
    Beginner

    Learn how to apply the breakthrough research and interventions being done in positive psychology to your efforts as a sales and/or customer service representative. This session will teach you how to develop individual strengths-based approaches to your work, how to manage your energy and organize your day to maximize both happiness and effectiveness, how to control potentially high-conflict situations with customers, and how to generate positive, high-quality connections during every human interaction.

     
  • 2 favorite_border Matt Ray 2forum

    Compliance as Code

    Matt Ray
    Matt Ray
    schedule 2 months ago
    20 mins
    Talk
    Beginner

    Compliance and security are the next steps after Infrastructure as Code and Test-Driven Infrastructure in expanding your DevOps workflow. Traditionally compliance has been the domain of auditors who are separated from the state of the infrastructure, disrupting development and operations periodically during audits. Chef's open-source InSpec language and audit cookbooks provide an accessible pattern for incorporating  compliance into your continuous delivery pipelines to ensure that compliance is always maintained and teams can move faster with less disruption.

     
  • 2 favorite_border Gireesh Punathil 10forum

    Nodejs Workshop

    Gireesh Punathil
    Gireesh Punathil
    Hage Yaapa
    Hage Yaapa
    schedule 2 months ago
    90 mins
    Workshop
    Advanced

    Node and Javscript have already gained massive popularity as a impressive web /cloud development platform and programming language respectively. Yet, it has certain perceived challenges and improvement opportunities - with respect to i) Enterprise grade deployment infrastructure, ii) Problem determination capabilities, iii) Elevation to all types of workload scenarios. In addition, JavaScript as a language has peculiarities from traditional declarative and object oriented languages, which makes it error prone, when used to develop large and complex software modules.

    The insight we gained by working closely within Node community and customers, suggests a workshop with the following theme will be of good benefit to the node developers:

    a. Introduction to Node programming

    b. Introduction, usage and main features of most common node subsystem modules: express, request, async

    c. Introduction, usage and main features of most common enterprise features: loopback, cluster, pm2

    d. Introduction, usage and main features of most common monitoring and debugging frameworks, techniques: google chrome dev tools, appmetrics, idde, heapdump

    e. Any other items which are relevant to node such as programming best practises etc.

    f. An Node clinic for open questions, discussions and live debugging.

     

     
  • 1 favorite_border Niranjan 1forum

    Eclipse IOT helps in Automotive Preventive Diagnostics

    Niranjan
    Niranjan
    schedule 2 months ago
    20 mins
    Talk
    Intermediate

    Having the ability to predict component failure in vehicle and provide timely service to car owners is a big advantage in automotive industry in terms of customer satisfaction. Preventive Diagnostics with real-time data analysis also used in component development, optimization, testing and reducing the time to market.

    We have developed a preventive diagnostics Demonstrator using Eclipse IOT projects (KURA, MQTT,COAP). Here we read the CAN data flowing out of ECU and use this as an input to compute various Diagnostic algorithms on a device as well as on cloud servers to predict failures.

    The component behavior is modeled with data generated from the vehicle at millisecond rates. It becomes important for the data to acquire the data accurately and then provide it to data models in real-time for effective modeling and analysis. The huge amount to data combined with unstable data link for the vehicles makes it a challenging task for the engineers to come up with effective and practical diagnostic algorithms.

    As part of this session we would like to demonstrate our prototype and explain on how we have used open source projects to stream data at high rates and develop such cost effective solution.