Archive for the 'Lean IT' Category

So many revolutions, so little time.

Tim Bray is blogging about “inflection points” in the uptake of various technologies.

Python get’s a very positive review:

Today you’d be nuts not to look seriously at PHP, Python, and Ruby.

So, the rise of the so-called scripting languages is one of the inflection points, but it’s not the only one.

He singles out web-framework development as one place where there’s a lot of stuff happening, and a lot of new “rails-like” frameworks are cropping up all the time. TurboGears will live or die in the context of a much larger web-development revolution, and we need to be prepared to make our way forward in the midst of that.

What comes after rails will not be a rails clone. It will learn the right lessons from rails, avoid the pitfalls of rails, but it will also need to carve out something new and better than rails. For RDBMS users, I think the key difference between TG and Rails is the power and flexibility of SQLAlchemy. We need to “sell” this better.

There are a lot of other revolutions coming according to Tim. And I do think we’re looking at big changes in terms of everything from programming language choice, to web-development tools, to end-user desktops, and data persistence mechanisms. We’re also just beginning to see what the world of high-end javascript and other “rich” internet applications is going to do to our view of end-user software.

He doesn’t even mention the rise of EC2 and the Google App Engine as sea-changes in the way we buy computational resources, and I think that’s going to have a huge impact.

In the end my prediction is that the way we develop applications will change more in the next 5 years than it did in the last 5, and it’s time to start getting our heads wrapped around these issues, or we’ll be left behind.

An Agile Paradox: People over Process (part 1)

The agile manifesto says we focus on “people over processes”.

And I think that’s the right thing to do, people are ultimately more important than processes. But, at the same time, there’s a paradox to be thought through here, because focusing your management efforts on people can be counterproductive. flowchartIf you focus on people it’s easy to blame them for failures, to try to change them, and to loose sight of the processes which got you the wrong people, or which made it difficult or impossible for the right people to do the right thing.

In fact much of the benefit of the Lean/Six Sigma camps comes from the notion that you pretty much always get better results if you always assume it’s a process problem, and try to improve the processes.

The solution to the People over Process paradox is easy enough:

Good managers lead by creating an environment where people are empowered, in other words they lead by focusing on a different kind of processes. Processes which put people in charge, and which encourage learning and self-correction. That might sound hard, but really it’s not as complicated as you think. For, example Toyota has thrived by creating a “metaprocess” which gives every employee power over the day to day processes of their job. These meta-processes which make standards of work clear, and make it the team’s responsibility to relentlessly and ceaselessly continue to improve those standards. Employees are expected to think, and to act on a regular basis to improve the way things are done. And they are ultimately “in control” of the processes which govern their work.

If you focus on the right metaprocess, you won’t get into the kind of “process problems” that the agile manifesto was written to combat. Processes will be owned by the people doing the work, not imposed from above, and they will be adjusted continuously to meet the daily needs of the project.

Processes must serve people. But at the same time people following good processes — and even more importantly good process improvement processes — are more productive than people with no process. So, removing process isn’t the answer to “People over process” it’s providing people with control over the processes, and with a well defined way to improve those processes.

Bar Camp Ann Arbor?

I’ve been toying with the idea of putting together a Bar Camp later this summer. I’ve got a potential venue, and some interested people. But I’m looking for some feedback, and some people who might be willing to help with some of the organizational details.

If you’re interested, or want to help out, drop me a comment or e-mail me at mark at compound thinking.com

Why MBA “Stars” Don’t Necessarily Make Good Managers

I was reading Bob Sutton’s blog and I was reminded of another reason why top notch MBA candidates are not always the best team members let alone managers.

Unfortunately, the students who get into fancy schools like MIT and Stanford and are evaluated both before and after they arrive largely on their individual performance: BUT then life plays a cruel trick on them, forcing them to work in groups, to deal with the messiness and sometimes craziness of human groups — and their individual brilliance is no longer enough and they have all those damn people, with different needs, opinions, priorities, and skills, and different schedules too, to deal with.

If you’ve been selected and groomed based on one set of standards (individual performance) it’s hard to accept that those old standards don’t work any more and your success will be based on a new standard: the ability to work with a group to create, innovate and ultimately produce results as a team.

Individual performance is based on a different set of skills, talents, and motivations than group collaboration. So even if you can make the internal switch to accept the new standards, you aren’t necessarily going to have the right kind of motivation, the right skills, or the right talents to succeed at collaborative work.

Management isn’t easy, it’s hard work that requires really understanding people, their individual strengths and weaknesses, and creatively organizing them to accomplish things as a group that none of them could accomplish on their own. Unfortunately that’s just not what they teach in school, so you have to learn it somewhere else.

Code Mash

CodeMashLogoSome friends of mine are putting together a non-denominational developers conference called code-mash in Ohio this January.

Looks like Python and Ruby are both going to have a good number of talks. I’ll be talking about SQLAlchemy, which is the best object relational mapper I’ve ever seen. There’ll be talks about Test Driven Development in Python, Enterprise Architectural Patterns for Python developers, along with lots of cool talks about Lean Software Development, the side benefits of Test Driven development.

You can still submit a talk proposal before November 30th, and you’ll get free room and board. I think it would be great to see somebody talk about Dabo and Desktop application Development in Python, and they seem to be missing any talk about OSX/Cocoa stuff, which I’m sure is because they haven’t had any proposals yet.

It would also be nice to see a good cross platform development with Mono talk…

I’m really excited by the opportunity to get developers of all kinds together and talk about how to be productive and learn more about the strengths and weaknesses of the various tools/frameworks people are using.