Make Your Software Development Team Agile

Agile seems to be the most popular set software development methodologies today.  But how do you actually implement agile? How do you ensure your software development team is running lean? Is your software being developed iteratively?

TeamPulse is an awesome product that is being released later this month that combines agile and lean best practices enabling your development team to plan software development projects in full detail. To take it a step further, the tool even lets to measure specific results so you can make improvements and enhancements to the project and your team. I personally love the project dashboards that’s give you a really quick snapshot view of your projects at a high level.

teampulse_dashboard

I could talk about this tool forever, but Joel Semeniuk, VP Telerik Team Productivity Division will actually be demonstrating the tool on July 27th, 2010 via live webinar.  With over 15 years of experience, Joel specializes in helping organizations around the world realize their potential through maturing their software development and information technology practices. This is going to be an awesome webinar.  Make sure your register and send the link to your friends.

Register for TeamPulse Demo here

Best of Software Development in the Real World

Miguel Carrasco with Erin Carrasco and Dominic Carrasco We’ve had a lot of new readers to the blog lately which is fantastic.  We now receive over 30,000 visitors a month, over 3,500 RSS Subscribers, 1,200 developers signed up for the Software Development in the Real World Newsletter, and nearly 200 members on TwitterDevs.  With new visitors comes a problem, mainly the fact that new readers might have missed some of the articles I have written on here over the last few years. 

I was actually adding up the software development blog posts the other day and used a tool to count the words.  Nearly 89,000 words on this blog.  That’s a fairly detailed book with about 300 pages if you add images.

I’ve enjoyed every minute of running this blog, and meeting some of the most interesting people from all over the world.  I want to say a special thanks to all the loyal readers, because without you I would simply be talking to myself, and that’s not a lot of fun.

Anyway, I hope you enjoy some of the best articles that have been posted on software development, team management, and performance tweaking.  While there hundreds of thousands of software development blogs out there, I’ve tried to focus this blog on making developers the best they can be by bringing up topics that you might not think about during your day to day development careers.

The Best of Software Development in the Real World

Technical Transformational Leadership

What kind of leadership do you follow with your team? How do you present yourself within your organization? Technical Transformation Leadership is kind of the word I’ve coined for myself which explains the type of leadership I try and follow on a daily basis.  It’s merger of two styles of leadership that I have found work extremely well within a software development and technical organization. It creates a really collaborative fun environment where everyone clearly understands the goals and objectives of the long term vision, and work extremely hard to achieve it.

How to Rate a Software Developer

How do you rate a software developer?  That’s a fantastic question!  There are so many theories out there, and there are so many forms that HR teams try and come up with to help you conduct performance review.  However, what really makes a great developer?  And if you are a Software Developer, how can you improve your career today!  Below is my bible for rating the developers on my team.  By following these tips and rules, you will improve your status from “good developer”, to “great developer”!

The One Minute Software Development Manager

Being a Software Development Manager is a great job, if you are the right person for the job.  You have to have a real passion for technology and leadership to excel in this role.  I have spent the better part of the last 5 years studying leadership and software development, and have really enjoyed the journey.  Below are some of the key things I try and focus on day to day as I interact with my team.  Hopefully some of these points can help you!

How To Finish A Big Software Project And Be The Hero

We’ve all been there! The huge beast software project that just won’t end/die. In fact Microsoft is constantly getting themselves into this trouble.  Vista, SQL Server, XP, all became these huge projects, that in the end, had to have massive features cut, and new leaders appointed to save the day and ship products!  At the end of the day, if you are constantly building and building, and never shipping, you’re sunk!  How do you get a big software project out of the water and become the software development hero?  I’ll tell you how…

What Makes Version 1.0 Software Hard

I’m always puzzled by how hard software can be to write the first version of any software product.  Software in itself is always hard, for more reasons than I can write in a blog entry. But what makes Version 1.0 so hard?  I’ll give you a hint, most of it has nothing to do with your developers. It has more to do with the process of innovation.

How To Kill Your To Do List, Developer Style!

Are you one of those people that creates to do list’s, action plans, project plans, and seems to have millions of things to do?  There is actually a simple “Hack” you can use today to get your life back on track.  I just finished reading David Allen’s book Getting Things Done: The Art of Stress-Free Productivity: Books: David Allen, and have taken some great ideas from the book!  I highly recommend reading it. Follow along with me on this journey to getting more stuff done than you ever imagined, developer style!

7 Key Attributes of High Performance Software Development Teams

There are so many people out there writing books about the best software development processes, tools, architectures, and so much more.  I woke up this morning wanting to concentrate on writing about the lower level as I see it to a High Performance Software Development team.  I truly see this as the essence to great teams, and great companies.  It’s simply not enough anymore to have the smartest people working for you.  You need to have smart people that embody the essence of your company.

How To Win Friends and Make Developers Happy

How to win friends and make software developers happy!  Sounds simple, however, as most of you will know, managing software developers is tricky business.  Making them happy day to day is even harder. It is true that just because you are a great software developer doesn’t mean you should be promoted to a manager. However, I strongly feel that if you have not been in the trenches, on death march projects, or simply do not understand the developer’s mentality inside out, you will be at a loss when trying to figure out this “special” bunch of people.

Software Development Top 30 Mistakes

I have been developing software and web applications for nearly 11 years now.  Software development has come a long way since the days of Binary, Cobol, etc.  What still fascinates me about software development is the same mistakes made before, are still made today.  Below are the top 30 Mistakes that are made within the software development process.  It’s amazing to see that none of these have anything to do with the language itself.

Who Wants To Beat Google?

How Microsoft can beat Google and win the Search Game.  It sounds like everyone wants to beat Google these days.  Great goal, but how do you do it?  Everyone seems to think they have the magic bullet! Microsoft was about to buy Yahoo! for over 44 billions of dollars!  They are investing billions in R&D.  But do they have the right approach?  Some people think you need more web pages indexed.  Some believe you need a better interface. I tend to think the answer is right under everyone’s noses, they just need to use a little bit more passion, focus, to get the job done.  But what should they be focusing on?  What should the vision be?

The 10 Commandments of Great User Experience Design

Starting a new software development project in the next little while?  Praying and hoping that it goes well?  Are you worrying about all the little software development intricacies like: Making sure you have a proper source control, ensuring you have a continuous integration environment, making sure you have great developers and making sure they are happy?  If you are, you probably haven’t remembered to pay attention to the most important part of the software development process.  The User Interface and the User Experience.

Creating Powerful PowerPoint Presentations

A word of caution for software developers that do not like presenting:  Do not read this article.  This article is meant to help the developers out there that have to deal with software presentations!  To those that get to go through the joys of presenting to large crowds, or small crowds, I really hope this guide helps you on your journey through creating a high impact PowerPoint presentation.

20 Tips to Improve ASP.net Application Performance

There are certain things you should take into account when you are developing your applications.  Over the last 12 years or so of working with asp and asp.net, I have learned to avoid and do certain things that increase your application performance by a massive amount!  Below are my top 20 tips to improving ASP.net application Performance.

The Complete List of Software Development Frameworks, Process’s, Methods, or Philosophies

There are so many software development processes, best practices, philosophies, and frameworks out there that I just wanted to create a complete reference list of valuable things to remember.  Note that some of these I recommend NOT using, however I have listed them so that we can ensure to remember what not to do.  However, you would be surprised how in some cases some of these practices are valid, even though they might see ridiculous.  Anyway, here is the list, and as always feel free to post your comments and I will try and review them and add the ones that are valid!

Ultimate Server-Side Web Development Cheat Sheets

Even before the other Ultimate Web Development Cheat Sheet Guide became popular on Digg and del.icio.us, I was working on another version focused around Server-Side technologies.  I was going to add them into the other list, but removed them.  I wanted to have a list that was more focused, and only had the best Server-Side Cheat Sheets.  Also please note while there are hundreds of cheat sheets for each area, I try and only list at most the top 10 in each area, otherwise it makes the guide useless with repeated data. This makes these guides much more useful than the old guides out there.

The Complete List of Ajax Tools

Ajax has really taken off over the last two years.  Ajax is really just the combination of Asynchronous JavaScript and XML.  I actually remember almost over 5 years ago now working with XML and JavaScript to auto-magically update navigation bars from the database.  With the advancement of Ajax, new frameworks, utilities, and software packages have been built to make the production of Ajax web sites much easier.  Below is the complete list of these tools, and the only list you will ever need!  Please feel free to submit more sites in the comments below as they will be added!

10 Things You Didn’t Know About Twitter

Want to improve your Twitter Ninja skills?  Want to impress all your friends with your twitter abilities? Ever wondered how some of the Twitter elite do some of the crazy things they do with twitter? Whether you are new to twitter, or have been using twitter for a while, you are guaranteed to learn something new and cool in the next 5 minutes.

7 Key Attributes of High Performance Software Development Teams

Software Development High Performance 
Kids playing High Performance Soccer on an interactive video projection system at COEX in Seoul 

There are so many people out there writing books about the best software development processes, tools, architectures, and so much more.  I woke up this morning wanting to concentrate on writing about the lower level as I see it to a High Performance Software Development team.  I truly see this as the essence to great teams, and great companies.  It’s simply not enough anymore to have the smartest people working for you.  You need to have smart people that embody the essence of your company.

You need teamwork!  Take a look at the little kids playing soccer.  One of them is playing the goalie, and happy to do so, while the other is playing forward trying to score a goal.  They aren’t both fighting to score a goal are they?  Here are the 7 Key attributes of High Performance Software Development Teams

Software Development Team Purpose

Does your team actually understand how it fits into the overall business objectives of your company?  If you are a software developer ask yourself when the last time was that your manager sat down with you to talk about the actual purpose of your team, and your role within that team to help the company succeed.  If the answer is "never" or "a long time ago", you might want to talk to them about it.  A team with a sense of purpose and conviction will outperform a team without purpose any day.  And I don’t just mean:  “Your purpose is to ship this software on time and make it awesome, here is the architect you will work with, here is the team, go at er!”.  I’m talking about “Your team is critical to the success of our business. With the ongoing threat posed to us by our competitors, your team is building the foundation for future applications built on our platform.  Your key component will drive business for the next 20 years.”

Team Member Involvement

The individual team members must be involved with each other at every level.  Everyone has a role on the team.  Although your team might consist of software developers, quality assurance team members, business analysts, and software architects, it is critical that everyone on the team feel a sense of involvement in the project.  This is achieved by focusing on two things.  Ensure that each team member understands how valuable they are with their unique skill set, and two, make sure that they understand that without their involvement on the project, without them bringing that special “secret sauce” to the table, the team would not function as well!

Commitment to the Software Development Team’s Goals

Everyone on your team must be committed to the group’s goals and direction.  Nobody on your team should be looking out for #1.  The level of commitment in a high performing software development team goes far beyond personal goals and agendas.  If your team seems to be having a lot of turmoil, or things aren’t getting done, chances are one or many individuals on the team have forgotten what it means to be a part of the team, and have become more concerned about themselves.  One has to question the commitment level of every individual when projects fail.  Not always, but a big factor in the failure can be the level of commitment of individuals on the team.

Be very careful with this one, as when commitment falls in a few members, or even just one, it can spread like a wild fire across your team.  Not putting out that one burning bush quickly, might cause you to lose more than one or two trees.

Trust in Everyone

Just like in any good family, your team must trust each other, the company, and the leader.  Everyone on the software development team must have trust in each other to honour commitments, timelines, and goals for each other.  Trust within your team comes extremely handy when trouble arises, or objectives seem far too challenging to achieve.  Having those relationships will ensure things keep moving.  If you are a software developer and are feeling the pressure, having the trust in your quality assurance team to properly test and provide you with feedback is huge in a high stress project.

Process Orientation Critical to the Software Project Success

Software development teams that are extremely high performing are masters of process.  When they work on projects, that have an arsenal of proven best practices and process’s to rely on to help them get the job done.  They are usually the ones with the best tools to develop the software, as well as the knowledge that is needed to get the best out of the tools they are using.  For example, some tools that our team uses include Visual Studio 2008, Cruise Control Continuous Integration, Subversion, Team Systems, and other tools.

Continuous Improvement

This is a huge one.  Your team needs to understand how to constantly improve.  They need to love and thirst for feedback.  A team that has decided they are “good enough” and happy with the way they perform are going to get lazy and start failing.  A lot of people believe that once you get to a certain level, learning stops (used to be the case anyway).  In today’s fast spaced world you have to be constantly learning new skills, improving yourself, and taking your game to the next level.  If you don’t, you are not staying where you were, you are actually sinking.

Taking time for yourself to improve yourself is one thing, but your team also needs to take time to improve itself!  Hold post-mortem sessions, have lunch and learns, promote continuous education through local colleges, and much more.  While much behind lifelong learning is about the individual, the company that you work for needs to take care of its employees as well and promote continuous improvement.  This doesn’t just mean just telling everyone “Always learn and take criticism well”.  It means allowing the software development team to learn and take time.  Give them time!

Communication

I’ve written about communication in the past.  Communication in the software development process and in the software development team is extremely important.  Extend that to within the organization, and any client you are working with.  Yes that age old statistic of nearly 80% of the software development projects fail is true.  I would lay a big bet however that had communication been at the forefront of the project, and excellent throughout the entire process, that number would be astronomically lower.  With the fantastic tools and process’s we know have at our disposal as software developers, communication will be one of the major contributors to the success of the project, or the failure.

And there you have it!  Now you may think to yourself “I know all this already”.  If that is the case I have a few questions.  Are you fostering an environment within your organization that will allow these kinds of attributes to shine through and be rewarded?  If you are an employee, “Does the company you currently work at have these high performance teams?”.  Everyone can effect change.  And if you can’t seem to make change stick, you can always leave and try somewhere else!

Software Development Team Management

I’ve written a lot of articles in the past on leadership in the software development field.  Here are some of the highlights from the last several months.  Your not going to find detailed essays here.  In fact, most of my articles are practical advice from the real world of software development.  Throughout the articles I try and get right to the point and give practical guidance on how to be a good manager and how to build a competitive software team.

To be clear, these articles are not just for software development managers.  If you work on a software development team that has high expectations to get a lot done, with not as many resources as you’d like to have, these articles are for you.

Technical Transformational Leadership

How To Rate a Software Developer

The One Minute Software Development Manager

How To Win Friends and Make Developers Happy

How To Finish a Big Software Development Project and be the Hero

Software Development Top 30 Mistakes

Software Development Mistakes – Not Understanding User Requirements

The Ultimate Guide To Not Choking Under Pressure

Headed to the Web 2.0 Expo in San Francisco

imageThe Web 2.0 Expo is coming!  If you are in the San Francisco area the week of April 21st, 2008, make sure you ping me and come check out the Web 2.0 Expo.  The Web 2.0 expo is a combined conference and tradeshow.  Last year’s event drew over 8,500 people.  This years event promises to be even bigger.

There are nine different tracks you can choose from in the conference including:

  • Strategy and Business Models
    Marketing and Community
    imageDesign and User Experience
    Fundamentals
    Development
    Focus on Mobile Web
    Focus on Web Operations
    Focus on Social Platforms
    Sponsored Sessions

What really sets this expo apart besides all the different tracks, is the level of interaction you can have with everyone at the event.  It also has vendors and companies from all different platforms, which makes this conference so appealing.

You can check out all the speakers, join the facebook group, join the crowdvine, and download the Web 2.0 Expo San Francisco Brochure.

Conference Speakers I Will Not Miss!

Marc Andreessen – A Conversation

Multi-millionaire software engineer and Silicon Valley “whiz kid” entrepreneur best known as co-author of Mosaic, the first widely-used web browser, and co-founder of Netscape Communications Corporation. He was the chair of Opsware, a software company he founded originally as Loudcloud, when it was acquired by Hewlett-Packard. He is also a cofounder of Ning, a company which provides a platform for social-networking websites.

Max Levchin – A Conversation

Max is the visionary behind Slide, the largest social software company in the world. He is also renowned as the co-founder of PayPal, an expert in combating online fraud and one of the hardest working entrepreneurs in Silicon Valley. Before starting Slide, he incubated several other start-ups, including Yelp, where he currently sits as Chairman of the Board. Max started PayPal in 1998, immediately after graduating from college, and sold it four years later to eBay for more than $1.5 billion at the age of 26. Originally from Kiev, Ukraine (then part of the Soviet Union), Max moved to Chicago at the age of 16 and later received his Bachelor of Science degree in Computer Science from the University of Illinois at Urbana-Champaign. Max sits on the board of several other companies and trains for triathlons when he’s not obsessing over Slide’s business.

Rob Bagby – Building a Microsoft RIA from the ground up

A Developer Evangelist for Microsoft. Rob works with customers, as well as delivers presentations at numerous regional and national conferences, to illustrate how to take advantage of Microsoft’s developer technologies to deliver performance and secure applications faster. Rob bases his discussions on over 10 years of consulting experience, along with a Masters Degree in International Business from Thunderbird.

Mitchell Baker – Opening the mobile Web

Chairman of the Mozilla Foundation and Chairman and former Chief Executive Officer of the Mozilla Corporation, a subsidiary of the Mozilla Foundation that coordinates development of the open source Mozilla Internet applications, including the Mozilla Firefox web browser and the Mozilla Thunderbird email client. Trained as a lawyer, Baker coordinates business and policy issues and sits on both the Mozilla Foundation Board of Directors and the Mozilla Corporation Board of Directors. In 2005, Time magazine included her in its annual list of the 100 most influential people in the world and she has been affectionately given the title of “Chief Lizard Wrangler” at the Mozilla Corporation.

Dan Lyons aka Fake Steve Jobs

Dan Lyons is a senior editor at Forbes and the author of the The Secret Diary of Steve Jobs. In the persona of Fake Steve he authored “Options: The Secret Life of Steve Jobs,” a novel. He has published two previous works of fiction, a novel and a collection of short stories. Dan joined Forbes in 1998 and before that wrote for various computer trade publications including CRN and VARBUSINESS. He’s been a journalist for 25 years and has a master’s degree in fine arts from the University of Michigan in Ann Arbor.

Tim O’Reilly – O`Reilly Radar

Tim O’Reilly is the founder and CEO of O’Reilly Media, Inc., thought by many to be the best computer book publisher in the world. O’Reilly Media also publishes online through the O’Reilly Network and hosts conferences on technology topics, including the O’Reilly Open Source Convention, the O’Reilly Emerging Technology Conference, and the Web 2.0 Conference. Tim’s blog, the O’Reilly Radar “watches the alpha geeks” to determine emerging technology trends, and serves as a platform for advocacy about issues of importance to the technical community. Tim is on the boards of MySQL, CollabNet, Safari Books Online, Wesabe, and ValuesOfN, and is a partner in O’Reilly AlphaTech Ventures.

John Allspaw

John has worked in systems operations for over ten years in biotech, government and online media. He started out tuning parallel clusters running vehicle crash simulations for the U.S. government, and then moved on to the Internet in 1997. He built the backing infrastructures at Salon.com, InfoWorld.com, Friendster.com and Flickr.com, where he currently manages the Operations Engineering group.

Ari Balogh – Yahoo! and Open Platforms

Aristotle “Ari” Balogh is currently Chief Technology Officer at Yahoo!. He is responsible for company-wide product development which includes optimizing resources, speeding innovation, and ensuring the quality of Yahoo!’s products and services. He is focused on establishing a common architecture and building blocks to drive development aligned with corporate strategy and on improving the overall effectiveness of Yahoo!’s engineering efforts. All of Yahoo!’s engineering functions, including technical operations, infrastructure, and internal IT support groups, report into Balogh.

Blaine Cook – Building the Real-time Web

Blaine Cook is the Architect at Twitter. He is currently building and maintaining Twitter’s Jabber-based real-time backend infrastructure that tracks and distributes millions of updates every day to users on the Web, instant messaging, and SMS.

 techweb Network image

 

Technorati Tags: ,