Software as Craft 2009 - Talks
-
Agile Project Management: What Does it Look Like from a Developer's Perspective (Eng)
In the Agile Manifesto one of the core values is: 'Working software is the primary measure of progress'. This presentation will discuss how an Agile Project Manager uses the measure of working software to manage the risks on a project, risks such as scope creep, technical challenges like implementing new technologies and complex integrations and delivering quality software. The presentation will focus on how this affects the daily work of the developers on an Agile project.
-
The Agile Wall Chart: How the Principles of Lean, Theory of Constraints and Agile are Applied on a Daily Basis (Eng)
Agile is an aggregation of many other management disciplines such as Lean Manufacturing , the Theory of Constraints and even Dr. Deming's work in Japan in Total Quality Management. One of the best tools for managing an Agile project and thus for teaching how these disciplines relate to the work done on an Agile project is the Agile Wall Chart or Story Card Wall. A Story Card Wall, similar to a Kanban Board in Lean Manufacturing, gives a snapshot of the project's status by displaying the status of each Story Card that makes up the backlog of the project.
This presentation illustrates, using an animated Agile Story Card Wall, the concepts of Lean’s Work in Progress, Drum–Buffer–Rope from Theory of Constraints and Systemic Thinking from Peter Senge’s The Fifth Discipline. The presentation, originally inspired by the MIT Beer Game, uses Flash animation to show the flow of story cards across a Story Card Wall over 10 iterations, demonstrating the effects on the team’s throughput as a result of a staffing decision made during the project. The presentation also includes an Excel spreadsheet to do ‘What If’ scenarios.
-
The Purpose of Daily Standups and Retrospectives on Agile Teams (Eng)
An Agile approach to software development is considered to be light-weight. For example, there are few status meetings in the approach. Our focus is more on continuous planning and learning activities that are included in each iteration cycle. Two such highly effective activities are the Daily Standup, which is a daily planning session, and the Iteration Retrospective, a learning exercise to identify what has gone well and what could use improvement in the system. This presentation will talk about the value of each and how to make the most effective use of each for improving the delivery of value added software to the business.
-
The Evolution of Social Media (Eng)
Since the first release of Delicious in September of 2003, Web 2.0 and social networks have been in vogue. In this session, Chris Andrasick explores how these concepts are being applied to businesses from small to large. Topics discussed include the use of viral tools, the application of game theory, behavioral classifications, growth and traffic patterns, and the technical designs behind such solutions.
-
Introduction to Agile (Rus)
Traditional approaches of development process today are not an easiest way to estimate and prioritize the work in modern fast-changeable, dynamic projects. Agile methodology is a key for making software development easier and more flexible. It comes from real practical experience, you probably used a lot of things in your day to day work, not surmising that a whole methodology was already born, and a lot of people bring it to perfection in practice.
Whether you are a beginner or experienced developer, you can improve your work right away with the efficient principles of Agile methology. The presentation will help you to get used to Agile ideas, basic principles and first steps to successful and productive work. -
Test Driven Development (Rom)
Although the tools and languages that are available for developers today are very advanced and keep improving the quality of the code still remains a concern. The reason for that is both the amount of code written and the speed required for a successful project. Unit testing and refactoring have a major importance in keeping a high quality code base of a project.
Test driven development is a new development process that combines unit testing and refactoring in a unique way that has multiple advantages like: minimizes the number of bugs, saves time, improves design and maintainability. We'll discuss this process as well as will apply it to a concrete non-trivial example. -
Ways of Parallel Programming (Rom)
Scaling clock speed is no longer the way to increase the processing power. The advent of multi and many-core processors are a signal that another large industry change is happening right now. Currently adopted tools and frameworks are not adapted for this shift. We will have to use programming models and languages that enable us to successfully design, develop, and debug parallel software. Is there an easy way?
-
Domain-Driven Design: from theory to practice (Rom)
Domain Driven Design (DDD) – is a buzzword nowadays, and is more and more widely adopted and applied, why? Because nowadays more and more often are automated complex business domains to reduce human work or expand it in order to compete for market place, so DDD is a proven set of patterns and practices that makes a manageable shape for complex business domains. Instead of going inevitably with each change or feature to the legacy software, applying DDD you will discover and open new patterns and practices horizons in dealing with software complexity. “The key to controlling complexity is a good domain model.” – Martin Fowler, in foreword for the book “Domain-Driven Design: Tackling Complexity in the Heart of Software” written by Eric Evans.
-
The Perspectives of Android Platform for Java Developers (Rus)
The long awaited open and hardware independent mobile software platform. With Linux in it's core and Google's very own Virtual Machine to run the applications called Dalvik. With Java as the main development language and XML based UI it makes developing application as easy as breathing. Have the application talk to each-other and publish their data through built-in mechanics. Relational database for each application. Rich network capabilities, geo-positioning, compass, accelerometer, camera, touchscreen, ... e.t.c. This presentation aims to familiarize Java developers with the benefits of this platform and welcome them to implement their ideas about mobile software with Google Android.
