Tagged with Working
I've spent a lot of time the last few weeks looking at some of the new buzz words in software development. Domain specific languages, dynamic languages, TDD, DDD, *DD, etc.. Most of these ideas have definite benefits to the work of software development but I think they miss the mark on what is really hard in software.
In most projects I've worked on the past twenty some-odd years, the hard part is not how to architect a project, not how to tune a database and not how to eke out every CPU cycle of a function call. In fact the hardest part has always been in understanding how a business does business. There are many names for this but I like to think of this as domain specific knowledge. It's the time in the meeting room with the business veterans (stakeholders of one sort or another) that understand how it really works. Whether that is how freight is shipped across country, how users register with forums or how those scanners at the grocery stores actually work; in all cases these stake holders already know how they do or want to do their job. It is our work as developers into transitioning that into actual software.
Eric Evans talks about this in his Domain Driven Design book, but I think some readers of his book seem trapped into thinking that the magic of the domain is the top-down design of a system. In my opinion they are missing the point. Turning domain knowledge into a system is hard work, no matter what design methodology you use.
It's been a good time with Magenic these last eleven months. I have thoroughly enjoyed the client's I have dealt with and really got a kick out of the community of consultants, both in Atlanta and nationally.
But I have been itching to go back to being independent. Starting June 1st, I am putting my slate back out and becoming an independent again. I look forward to being able to do more user group talks, training sessions and hopefully more writing in the coming months.
I wasn't too surprised to read that tech executives were getting tutoring on technology. What really surprised me is that they wanted to keep it so quiet.
Who do they think they are kidding. Their job isn't to understand the technology, but to get people excited about the possibilities of the technology. Anyway, are Palm Pilots that difficult to figure out?
I finally finished downloading Office (System) 2003 from MSDN and found out that it did *not* include OneNote. It is like breaking a toy on Christmas morning. I admit I am one of the converted. I just love using it for a multi-tasking note taker. I don't just use it in meetings (which I have very few of any more), but all day. As I get an idea about something I am not working on immediately...it goes in OneNote. I just noticed that the MSDN website says the rest of the Office System will be available October 1st. Arg!
I have been spending a lot of time writing about technology lately. After a phone conversation with Tim Ewald, it got me thinking. During the first half of writing the book, I was working full-time writing ATL/C++ apps mostly and trying to get up to speed with ADO.NET at night. While my girlfriend minds, I don't really.
While in this phase of the project, I learned a lot about the technology and the class signatures, but it was very hard to grasp the big picture of the real problems that people will/are facing.
Soon after I got a full-time position developing a large scale .NET application. This really helped me appreciate the nature of the techology. I started to get really excited about how ADO.NET would help people solve these problems. Later on I started doing a tour of .NET User Groups to talk about ADO.NET and this was enlightening as well. People were asking me real-world questions that I did not always have great answers for. In the end, both of these experiences definitely helped me write a better book IMHO.