Agile Engineering Javascript with Jasmine & AngularJS, Karma & Jenkins

schedule Feb 28th 10:30 AM - Jan 1st 12:00 AM place Sigma

Agile & Test Driven Development of frontend JavaScript User Interface code is often passed over using the excuse that the UI code is "declarative" (What you see is what you get) and therefore does not 'need' to be tested. Others, will dismiss testing frontend AJAX code as too difficult to maintain or unnecessary because it is only important in context with the server. We will show how these misconceptions are false. 

We will cover several popular JavaScript tools and technologies that make Agile frontend web development easy. We will show how these front end technologies cannot only be functionally tested, but Unit Tested. If time is available will cover Continuous Integration, Dependency Injection, & Mock objects.  

By including your front-end code in your automated testing process you can prevent the inclusion of bugs that are usually only caught with manual testing.

 
4 favorite thumb_down thumb_up 5 comments visibility_off  Remove from Watchlist visibility  Add to Watchlist
 

Outline/structure of the Session

Discuss the concept of Agile Engineering processes vs Agile Management & Agile Business processes.

Focusing on TDD/BDD, Iterative Develpment & Continuous Integration, discuss the individual tools and frameworks used to achieve our goals.

Go over explicit examples of testing individual modules of testing JavaScript.

Show how to automate running those tests from within an IDE & from command line.

If there is time: Go over Continuous Integration techniques

Question/Answer period

Learning Outcome

You will get the foundation of several JavaScript frameworks important for Agile web development:

  • AngularJS
  • Jasmine
  • Karma
  • Jenkins CI

And, more importantly we will go over concepts and methodologies of the iterative development process of frontend TDD & BDD. Including Validation & Regression testing.

You will be prepared to test drive your UI development and provide adequate test coverage to adapt to change.

Target Audience

JavaScript developers and their managers wishing to stay agile on both frontend as well as backend development.

schedule Submitted 4 years ago

Comments Subscribe to Comments

comment Comment on this Proposal
  • Naresh Jain
    By Naresh Jain  ~  4 years ago
    reply Reply

    Daniel, Thank you for your proposal. I think this is a very important topic. Would you consider converting this into a semi-hands-on session of 90 mins? It would be nice if at least some of the participants can try to follow along and do it on your own machines.

    If yes, request you to please update the proposal to reflect the same.

    • Daniel Zen
      By Daniel Zen  ~  4 years ago
      reply Reply

      I would gladly make this a hands on tutorial that could also just be followed. I have updated the proposal accordingly.

  • Sachin goel
    By Sachin goel  ~  4 years ago
    reply Reply

    Hi Daniel

    It would help if you can also connect to agile theme of Continuous Integration, Automation and Functiona Testing.

    Also as TV mentioned, worth highlighting the current challenges / shortcomings to signify need of this session.

    Thanks

    Sachin

  • Tathagat Varma
    By Tathagat Varma  ~  4 years ago
    reply Reply

    Hi Daniel -

    I am not sure if "Beyond Agile" is the best home for your proposal. You might want to check if another track, perhaps "agile Lifecycle" is more suited?

    Secondly, as a learner, I get to learn how to apply principles of agile development in frontend Javascript development, which might be a specific technical need. Can you help understand what is so unique, or perhaps difficult about the problem that you are addressing that makes your proposal both relevant as well as interesting?

    -TV

    • Daniel Zen
      By Daniel Zen  ~  4 years ago
      reply Reply

      Tathagat,

        Thank you for the comments I am in the process of updating the proposal now. 
      I will change the track, and address the question of difficulty and relevance.

      Daniel


  • Liked Ryan Martens
    keyboard_arrow_down

    Ryan Martens - Beyond Agile Execution: Agility for Business and Impact

    Ryan Martens
    Ryan Martens
    CTO
    Rally Software
    schedule 3 years ago
    Sold Out!
    60 Mins
    Keynote
    Beginner

    Agile is not just a process change, its a mindset change for most. With faster time to market, better feedback and highly functioning teams, the Agile mindset opens our eyes to a better way of working as humans on large complicated and complex problems. Combining it with the concepts of Lean Startup, delivers another leap in team capacity and capabilities. It also opens the possibilities of using agility for more than just software development.

    Do you wonder how can we drive innovation in a disciplined way to tame our world's toughest problems? Can we apply the lessons learned from Agile and Lean Startup? Over the past three years, we've been able to apply agility at a new level, beyond business impact. Through our corporate social responsibility effort, "Rally for Impact", we aim to apply the agile mindset to mobilize citizen engineers to serve our communities and protect the planet. I want you to consider this growth path for yourself and your agile teams.

    Let's open the worlds mindset to a better way to empathize, explore and execute in these complex times.

  • Liked Jim McCarthy
    keyboard_arrow_down

    Jim McCarthy - Culture Hacking: The Prospect of Magnificence

    Jim McCarthy
    Jim McCarthy
    Founder
    McCarthy Technologies
    schedule 4 years ago
    Sold Out!
    60 Mins
    Keynote
    Beginner

    A culture is the set of shared attitudes, values, goals, and practices that both describes and shapes a group. The unique challenges of creating software have demanded totally new types of corporate culture. In response, we have created Agile, Scrum, and XP and many other cultural disciplines. These represent the birth of culture engineering and, although significant, are primitive compared to what will follow. Jim McCarthy introduces "culture hacking," a kind of cultural engineering that focuses on protecting personal freedom, extending openness, and embodying rationality. In the near future, a system made up of shared commitments and interpersonal protocols for hosting cultural innovations is likely to become available and standardized, leading to enormous personal and collective cultural and productivity gains. Happily, these gains will be based on culturally designed nobility of purpose, and a potent and virtuous cycle will continue to emerge, whereby profit derives from ennobled behavior. This cycle will lead to an era of widespread and abundant greatness - an era of unparalleled magnificence.

  • Liked Dave Thomas
    keyboard_arrow_down

    Dave Thomas - Unknown Knowns

    60 Mins
    Keynote
    Advanced

    In 2002, Secretary of Defense Donald Rumsfeld introduced us to the concepts of known knowns, known unknowns, and unknown unknowns. But he left out Unknown Knowns, things that we know without knowing it. And it turns out that these Unknown Knowns are actually the biggest category of knowledge - tacit knowledge.


    As developers, we work with knowledge: knowledge of the problem domain, knowledge of our tools, knowledge of our techniques, and knowledge of each other. So getting good at accumulating tacit knowledge is important.

    This talk will look at how we are poorly served by most of the current ways we are taught to be better developers. Can we do better? Only if we stop talking and start showing. Let's see why.

  • Martin Fowler
    Martin Fowler
    Chief Scientist
    ThoughtWorks
    schedule 3 years ago
    Sold Out!
    60 Mins
    Keynote
    Intermediate

    In the last decade or so we've seen a number of new ideas added to the mix to help us effectively design our software. Patterns help us capture the solutions and rationale for using them. Refactoring allows us to alter the design of a system after the code is written. Agile methods, in particular Extreme Programming, give us a highly iterative and evolutionary approach which is particularly well suited to changing requirements and environments. Martin Fowler has been a leading voice in these techniques and will give a suite of short talks featuring various aspects about his recent thinking about how these and other developments affect our software development.

  • Liked Rae Abileah
    keyboard_arrow_down

    Rae Abileah - Engendering Justice: Women, War and Peace

    45 Mins
    Keynote
    Beginner

    One in three women will be raped or beaten in her lifetime. Half of the seven billion global population are women so that means one billion women alive now will, or have been, beaten or raped or beaten. Women and children are disproportionately affected by war and occupation as well. And yet numerous studies illustrate how uplifting women's work and leadership can strengthen the whole society and economy. Women are at the forefront of global campaigns challenging militarism and violence, and working to redirect resources into health care, education, green jobs and other life-affirming activities. What can we learn from these women and their successes thus far? How can the technology sector support this crucial work? How do these social movements stay agile to rapidly respond to breaking news while building a long-term progressive movements for deeper social, economic and environmental justice? As Arundhati Roy said, "Another world is not only possible, she is on her way. On a quiet day, I can hear her breathing." In this talk, Rae Abileah will share visionary examples of women-led work for peace and justice and explore the paradigm shift needed for equality, human rights, and justice for all.

  • Liked Todd Little
    keyboard_arrow_down

    Todd Little - Leveraging Global Talent for Effective Agility

    Todd Little
    Todd Little
    Executive Consultant
    Accelinnova
    schedule 3 years ago
    Sold Out!
    60 Mins
    Keynote
    Intermediate

    A major challenge in agile development is the ability of test teams to keep pace with ongoing development while simultaneously ensuring that new development has not created regression failures. This case study from Halliburton shows how together with two globally distributed outsourcing partners they developed a comprehensive test automation strategy for their agile teams that effectively leveraged both in house and outsourced activities. This approach resulted in a significant quality improvement from prior releases.

  • Liked Ash Maurya
    keyboard_arrow_down

    Ash Maurya - How To Build Features People Will Want

    Ash Maurya
    Ash Maurya
    Founder
    Spark59
    schedule 3 years ago
    Sold Out!
    60 Mins
    Keynote
    Intermediate

    Most products fail. Not because we fail to build what we set out to build, but because we waste time, money, and effort building the wrong product.

    In this talk, I'll share our lean product development process that utilizes continuous customer feedback loops to ensure you don't go astray and instead build products people (will) want.

    What you'll learn:

    - How to track your your feature lifecycle on a validated learning kanban board
    - How to use qualitative testing techniques for early validation during the design and test phases
    - And then follow up with cohort based quantitative metrics to verify you have built something people wanted.

  • Naresh Jain
    Naresh Jain
    Founder
    ConfEngine.com
    schedule 3 years ago
    Sold Out!
    45 Mins
    Workshop
    Advanced

    As the popularity of Agile methods have grown, so have the misconceptions or myths associated with Agile also grown. These myths get even more glorified when we talk about them in the offshore or distributed context. And to make matters worse, you can throw in a fixed-price contract spanner into the engine.

    Worry not! In this fun-filled activity, we'll collect facts from the participants that they believe are true and then we'll declare them as confirmed or busted after an interactive (heated) discussion.

  • Corey Haines
    Corey Haines
    CTO
    Wavetable
    schedule 3 years ago
    Sold Out!
    45 Mins
    Tutorial
    Beginner

    Everyone has acronyms, mnemonics, and a list of rules to guide their everyday software design. In order to get the most out of these age-old gems, one needs to deliberately practices them. Rules are a good way to remind ourselves of these gems.

    Corey Haines emphasies his design guidelines in form of the "4 Rules of Simple Design." Attend this talk to understand the four rules and their importance in everyday programming.

  • Liked Corey Haines
    keyboard_arrow_down

    Corey Haines - Stories from 10 Years of Extreme Programming

    Corey Haines
    Corey Haines
    CTO
    Wavetable
    schedule 3 years ago
    Sold Out!
    45 Mins
    Talk
    Intermediate

    10 years ago I was introduced to Extreme Programming. Since then, I've been an avid practitioner, applying the techniques and values to my life as a software developer. Over that time, I've bounced between many extremes, learning and reflecting on the value that I get when building systems both for myself and for others.

    In this talk, I'll share some of those learnings and how my life as a software developer has changed with the times.

  • Liked Mukesh Bhangria
    keyboard_arrow_down

    Mukesh Bhangria - Continuous Refactoring at Amazon: A Case Study

    45 Mins
    Talk
    Beginner

    Between the project deadlines, we always feel there is code which needs to be improved

    Usually Developers have the following 3 options:

    - Bite the bullet and do the refactoring as they go along.
    - Park the issue and address it later.
    - Allocate special time when the project gets out-of-control.

    As customer facing stories take higher priority, usually Developers are forced to choose the last option.

    However a team at Amazon took a different approach. Attend this session to listen to their first-hand story of how they changed this typical behavior to achieve Continuous Deployment on a critical service.

  • Liked Victoria Schiffer
    keyboard_arrow_down

    Victoria Schiffer - Agile Coaching? Sure thing! What about Life Coaching in Agile Thinking?

    Victoria Schiffer
    Victoria Schiffer
    Agile Coach
    SEEK
    schedule 4 years ago
    Sold Out!
    45 Mins
    Talk
    Beginner

    I love being around awesome people, who build great products customers desire. 
    I love learning from and together with these amazing minds. 
    I love creating the right environment for teams to flourish. 
    I love change, and learning from new experiences. 
    I love working in Agile environments.

    How about you? 
    I bet there are some elements of this list why you're in Agile, too. And you can probably add even more elements to it.

    The Agile Manifesto states amongst others individuals and interactions, customer collaboration and responding to change.

    In our everyday life doing Agile we already respect these aspects in many ways. 
    But do we practice what we preach as best we can?

    I'd like to challenge your current way of thinking about people and processes. 
    I'd like to challenge you to focus on you, before you focus on others. 
    I'd like to challenge your current way of reflecting. 
    I'd like to inspire you to go different ways. 
    I'd like to inspire you to inspire others.

    In Agile we're already good in improving our processes and creating well performing teams and hence building the right things in the right way. And in the Agile Manifesto's communication and collaboration piece we can even get better.
    "You have not yet reached the limit of what you're capable of!" means we can always further improve. And we do follow this idea in our Agile processes, too, through continuous feedback (Retrospectives) and improvement.

    And why not take it even further? Why not go "Beyond Agile"?!

    Here's where aspects of Life Coaching come in handy: through also understanding and improving ourselves (how do we interact with people due to how we perceive our environment) we will even further improve communication and collaboration.

    Life Coaches believe our clients know the answer. And even if Agile Coaching is slightly different than Life Coaching, I see it as very relevant in Agile Coaching, too. If we apply this in Agile, instead of giving our clients (team, colleagues) the answers, asking them powerful questions to help them be more aware of what's happening at the moment, they will find their answer for it and will have a much better commitment to making the change for themselves, their teams and the company. It's not for us to TELL them what to do, but to ASK them what's going on for themselves. Here's where I see a huge chance for improvement.

    In my session I give lots of examples on how to link Life Coaching ideas to our Agile work environments. I've given the session at LAST Conference Melbourne and at the Agile Coaching Circles Meetup Melbourne. The audience was engaged and the attendees were very happy about having some new ideas on how to improve their daily work life.

    Come along to be inspired by Life Coaching and thus to benefit our Agile Thinking!

  • Liked Naresh Jain
    keyboard_arrow_down

    Naresh Jain - Scaling XP Practices inside your organization using Train-the-Trainer Model

    Naresh Jain
    Naresh Jain
    Founder
    ConfEngine.com
    schedule 4 years ago
    Sold Out!
    90 Mins
    Workshop
    Advanced

    How do you effectively scale skill-based, quality training across your organization?

    Over the years, I've experimented with different ideas/models to scaling skill-based training across an organization. In the last 4 years, I've pretty much settled down on the following model. Its very useful when mentoring teams on skills like Test-Drive-Development (TDD), Behavior-Driven Development (BDD), Product Discovery, Writing User Stories, Evolutionary Design, Design Patterns, Problem Solving, etc. I've successfully implemented this model at some very prominent fortune 500 enterprises.

    The goal of this workshop is to explore what other successful models organized have used to scale skill-based training in their organization.

  • Naresh Jain
    Naresh Jain
    Founder
    ConfEngine.com
    schedule 4 years ago
    Sold Out!
    45 Mins
    Demonstration
    Intermediate

    "Release Early, Release Often" is a proven mantra and many companies have taken this one step further by releasing products to real users with every commit a.k.a Continuous Deployment (CD).

    Over the years, I've built many web/infrastructure products, where we've effectively practiced CD. However at Edventure Labs, when we started building iPad games, we realized there was no easy was to practice CD, esp. given the fact that Apple review takes a few days.

    Our main question was: As mobile app developers, how should we architect/design our apps for CD?

    We were a young startup, learning new behavior about our users (kids aged 5-8) everyday. We could not afford any delay in releasing latest, greatest features to our users. To solve this problem, I believe we've built an innovative solution to enable any mobile app developer to achieve CD.

    If you are building real products, which have platform/3rd-party dependencies and you want to practice CD, this session is for you.

  • 45 Mins
    Experience Report
    Intermediate

    Agile processes are the new order of IT implementations. These talk will elaborate on our experience and learnings during agile process implementation at Walmart. 

    We will touchupon following 3 key areas and our learnings that helped us scale agile in large enterprises.

    • Process Visualization - Our learnings related to visualization of existing processes and practices and how it helped us identify signals from noise

    • Product Backlog Elaboration - In a complex and large programs product backlog management and role of product owner needs to be revisited.

    • Team Working Agreement - This is particulary crucial for scaling agile as dependency management is one of the key aspects of enterpsie agile implementation.

    We will conclude with our key learning of how processes needs to be continuously evolved in large scale implementation.

  • Liked Pramod Sadalage
    keyboard_arrow_down

    Pramod Sadalage - Ten Patterns of Database Refactoring

    Pramod Sadalage
    Pramod Sadalage
    Software Developer
    ThoughtWorks
    schedule 4 years ago
    Sold Out!
    45 Mins
    Talk
    Beginner

    Over the life of an application as requirements change, application usage patterns alter, load and performance changes the need to change database and database architecture is inevitable. There are patterns of these changes such as

    1. 1. Encapsulate Table with View
    2. 2. Migrate method from database
    3. 3. Replace method with views
    4. 4. Introduce Read only table
    5. 5. Split table
    6. 6. Make column non-nullable
    7. 7. Drop column
    8. 8. Add foreign key constaint
    9. 9. Merge columns
    10. 10. Replace columns

    In this talk we will discuss the above database refactoring patterns and different implementation techniques to enable blue, green deployments, allow for legacy applications to work with fast changing database and enable the teams to effectively refactor the database to fulfill the changing needs of the organization.

  • Liked Johannes Brodwall
    keyboard_arrow_down

    Johannes Brodwall / Niruka Ruhunage - Remote Pair Programming

    45 Mins
    Demonstration
    Beginner

    Can you maintain agile engineering practices with a distributed team?

    Johannes is the Oslo based Chief Scientist for the Sri Lanka based company Exilesoft. In order to promote agile engineering practices, he uses remote pair programming to connect with teams halfway across the world.

    In this talk, we will go through a practical approach for remote pair programming adopted for high-latency situations. We will demonstrate remote pair programming with a live example and we will discuss the advantages and usages of the approach. We will also cover the practical parts of remote pair programming, such as tools and setup.

    After seeing this talk, the audience should be able to remotely pair with members of their distributed team. They will also get a lot of tips on how to use pair programming effectively in both local and remote settings.

  • Liked Ellen Grove
    keyboard_arrow_down

    Ellen Grove - Build Your Dreams: User Requirements Gathering with LEGO Serious Play

    90 Mins
    Workshop
    Beginner

    Let your hands be the search engine for your brain! LEGO® Serious Play® is a powerful thinking, communicating and problem solving technique that can help you and your team do serious work through structured play activities using a popular and playful 3D modeling toy. Through a facilitated process of building models that, storytelling and reflection, every person at the table is engaged and actively participating in the discussion, whether the topic is individual aspirations, team relationships, developing a new product or solving a wicked organizational problem. Everyone builds and everyone tells their story – all participants have equal opportunity to put their own points of view on the table, unlocking new perspectives and exposing the answers that are already in the room.  LEGO Serious Play has been used successfully for team-building and problem solving in a variety of organizations, from NASA to RBC to academic settings and public utilities.  

    This presentation provides a hands-on introduction to LEGO Serious Play, so that you can experience firsthand how using LEGO to do real work unleashes creativity and enables meaningful conversations in a very short time. We will explore how to use this playful technique to collaboratively elicit information about user requirements and strategic design issues using the open source User Requirements with Lego methodology developed by a team at the University of Lugano, Switzerland.  This approach is particularly suited to Agile teams that want to get team members and stakeholders sharing their different perspectives on common goals in an open and light-weight manner.

  • Liked Jason Yip
    keyboard_arrow_down

    Jason Yip - Think Like an Agilist: Deliberate practice for Agile culture

    Jason Yip
    Jason Yip
    Principal Consultant
    ThoughtWorks
    schedule 4 years ago
    Sold Out!
    90 Mins
    Workshop
    Intermediate

    If I say, culture is important to adopting Agile, most people will just agree without even thinking too much about it.  But what is meant by "culture"?  Why is it important?

    Culture is not typical behaviour; it is not what we say we value (but don't actually do).  Culture is our basic assumptions of how things work.  Culture is the logic we use to think through and respond to any particular situation.

    If you imagine a pyramid, Agile practice and any other visible behaviour is on the top, stated or written Agile values and principles are in the middle, fundamental assumptions (aka culture) is at the base.

    My session is intended to expose people to the base of that pyramid.

    If culture is assumptions, then to understand Agile culture, we need to understand the basic assumptions of Agile.  To do this, I have created an approach called "Think Like an Agilist" that both exposes how we think through an "Agile situation" and allows us to deliberately practice "Agile culture".

    The general idea is that I won't just talk about Agile culture and values, what I'll call "culture theatre", but rather expose people, who nominally consider themselves part of the Agile culture, to their underlying thought processes and assumptions, given a relatively difficult scenario.  Those thought processes and assumptions are the essence of culture (reference Edgar H. Schein).  What is interesting is noting when the thought processes and assumptions are different which indicates that there is a different culture at play.  What I've noticed is that this difference is common between novice vs expert Agilists.

    Note that it isn't even about analyzing vs doing it mechanically but more about exposing what assumptions are being used to respond.

    NOTE: I will be updating the attached slides as when I created them, I was framing it more as "doctrine" rather than "culture", defined as fundamental assumptions"

  • Liked Phil Abernathy
    keyboard_arrow_down

    Phil Abernathy - The Sixth Force

    45 Mins
    Talk
    Intermediate

    Over the last 2 years, in small pockets all over the world, people have been experimenting with the use of Agile and Lean in formulating and executing corporate strategy.

    The finding will astound you and lay the foundations for what may become the next wave of ‘Agilean’ transformations, thus paving the way for vertically transformed ‘Agilean’ organisations that deliver outstanding profitability.

    The ‘Lean Startup’ mentality or ‘Management 3.0’ are tips of the iceberg in recent strategic thinking.

    This talk draws on experience and real life examples to outline how Agile and Lean, and not just Porter’s 5 forces, can be used effectively to not only formulate and execute corporate strategy but also to enable transformation throughout the organisation.