I am a software architect and developer, an Agile proponent, and a great believer in building valuable software that users will love to use. I build large back-end systems that require high-performance and high-reliability, and process vast amounts of data. I believe that successful software is created by strong teams, requires good engineering practices, and evolves in close collaboration with the users.
As a solutions architect and technical leader, I work with distributed teams on distributed software. As a team, we focus on technical excellence, close contact with the business, and rapid iterations.
Software architecture often comes in complicated charts and indecipherable UML drawings, involves cryptically named patterns, and requires both developers and users jump through multiple hoops to achieve desired results. Agile tries to get rid of software architecture thoughtfulness altogether, by advocating “emerging architecture” on the fly, in the course of writing code. This talk considers the goals of software architecture, the thought patterns used to arrive to architectural decisions, and ways to test architectural decisions. We will also look at the architectural pattern library that can make the work of an architect easier, more testable, and less mess-prone.
Many programmers are dedicated and even obsessed with writing “good” code. We believe the most important feature of good code is its usability for developers.Good code is readable, concise, and easy to navigate. In this talk we will discuss why good code is valuable, and how to write better code.
This presentation focuses on the quality of software code. We believe one most important feature of good code is its readability. Writing good, readable code takes effort and knowledge, it also takes time. As experience shows, good code is necessary for project success over time.
Code reviews are a great way to build better quality software, but they are complicated to implement well. Code reviews are as much about code and technical knowledge, as they are about people and culture. They improve team dynamic, help juniors & seniors grow in their careers.
Implementing great code review culture takes effort and determination. This presentation discusses how to set up and run better code reviews that the team will enjoy.
Tech industry dazzles us with exciting projects, challenging problems, and considerable compensation. But how do we choose the jobs that we do, responsibilities we take on, and where we focus our effort and learning?
In this talk we will discuss how to be happy at work, day after day. How to analyze whether an opportunity will let us enjoy our workdays and the tasks we do. And how to discover and create work roles that will make us look forward to every workday.
Software has a lot of power to influence people’s lives and to encourage social change. With great power comes great responsibility. It is up to individuals involved in building software to decide what is right, ethical and moral, and these are not easy decisions.
This presentation considers the Code of Conduct adopted by Association for Computing Machinery, and of raises a number of ethical questions related to the fields of IT and software development. We will discuss real-world cases of software producers facing ethical dilemmas, and how these dilemmas can be approached.
Do you know what data is being collected, the implications of cross-processing streams of data from different sources, the power of metadata? There are no more secrets.
In this session we will consider what data is being collected, the implications of cross-processing streams of data from different sources, and the power of metadata. There are no more secrets.
Estimates is the Holy Grail upon which projects thrive or perish. It is also high-risk, low-reward work that doesn’t get us any closer to DONE, can (and often does) gets us into trouble with the business, causes a big rush that leads to overtime, cutting corners and even team death marsh. So we all want to know: can we estimate better?
In this talk I want to consider what causes our estimates go terribly wrong. We will talk about what we can improve, what we may just have to accept, and discuss ideas from other industries regarding working with estimates.
This presentation references Standish Group CHAOS report, “The Mythical Man-Month: Essays on Software Engineering” by F.P. Brooks, and behavioral science research.
Remote teams have their advantages: skills not found in the local markets, lower turnover. At the same time, distributed teams are harder to manage and require special handling, compared to teams that spend a lot of face time together. This session talks about organizing and managing distributed teams. Setting up excellent communication and engagement, building social capital, and ensuring passionate performance for a team that rarely meets in person. We will talk about tools that help, and approaches that hinder. Different ways to overcome communication barriers, build trust and empathy, and create a supportive environment for a group of people who rarely, if ever, meet, yet work toward a common goal.
Executive management of companies large and small continue to ask: How much should I spend on technology? and How do I know I am getting my money’s worth?
These questions reflect an ongoing concern about how to measure IT performance. Though the internet is awash with articles about how much firms typically budget for IT … between 4% and 6% of revenue…the very notion of budgeting vs. investing sends organizations down the wrong track regarding IT spending.
Both for those who are asking the questions about IT performance and those who are tasked with answering, this presentation explains how a value-based framework for measurements provides greater insights into how IT is supporting the business.